Actualizar formulario al cambiar de libro

Hola, tengo un formulario que al ejecutarse llena un ListBox con los nombres de todas las hojas del libro de excel abierto; el formulario lo ejecuto "formulario.show" para que me permita cambiar entre cada libro abierto y poder "actualizar" la lista de nombres "del nuevo libro seleccionado". Mi pregunta es: ¿Hay algún evento que haga esto automáticamente? Para no tener que darle clic a un botón cada vez que "cambio de libro"
Gracias.
Jorge Luis.

1 Respuesta

Respuesta
1
Podrías probar lo siguiente:
supongo que inovcas el form desde un modulo de esta forma:  UserForm2.Show 0
es decir "no modal"
Ahora debes declarar una variable boleana de alcance global para el form
Option Explicit
Dim nuevo As Boolean
Ahora utilizando el evento UserForm_MouseMove
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' by Calvuch
Dim i As Integer
nuevo = False
If Caption <> ActiveWorkbook.Name Then nuevo = True: Caption = ActiveWorkbook.Name
If nuevo = True Then
    ComboBox1.Clear
    For i = 1 To ActiveWorkbook.Sheets.Count
        ComboBox1.AddItem ActiveWorkbook.Sheets(i).Name
    DoEvents
    Next
End If
End Sub
Así, si cambiaste de libro y pasas luego el mouse sobre el form, el sub evalúa si el nombre del libro activo es distinto al ultimo que utilizo, si es diferente, pues toma el nombre del libro como su caption, limpia el combo y carga el nombre de cada hoja de ese libro en el combo.
ahora para seleccinar las sitintas hoas del libro activo, utilizas esto:
Private Sub ComboBox1_Change()
     Sheets(ComboBox1.Text).Select
End Sub
Lo probé y funciona, aunque no tiene por que ser igual, ahí tu lo adaptas a tus necesidades

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas