Apoyo con fórmula vba excel

Quisiera saber si me pueden ayudar con esta fórmula de Vba excel, el problema es que cuando ocultó las hojas donde tengo los datos solo me carga los datos de la combobox departamento y las restantes no cargan, peroa si las mantengo visibles si muestran datos que campo tendría que corregir para que carguen estando ocultas

Gracias y saludos

Private Sub departamento_change()

On Error Resume Next

'apagar los parpadeos de pantalla'

Application.ScreenUpdating = False

municipio.Clear

'cargaremos la lista de departamentos en municipio'

lista_corresp = departamento.List(departamento.ListIndex)

'seleccionaremos la hoja(departamento)elegida'

Sheets(lista_corresp).Select

'posicionaremos en 1° celda de los encabezados'

Range("A1").Select

'Añadir los items de la columna a municipio'

Do While Not IsEmpty(ActiveCell)

municipio.AddItem ActiveCell

ActiveCell.Offset(0, 1).Select

Loop

End Sub

Private Sub departamento_enter()

On Error Resume Next

'apagar los parpadeos de pantalla'

Application.ScreenUpdating = False

'limpia la el combobox departamento

departamento.Clear

'nos indica desde que numero de hoja va a contar

For h = 9 To Sheets.Count

departamento.AddItem Sheets(h).Name

Next h

End Sub

Private Sub municipio_change()

On Error Resume Next

'apagar los parpadeos de pantalla'

Application.ScreenUpdating = False

referido_a_ipss.Clear

celda = municipio.List(municipio.ListIndex)

'buscaremos el estado elegido de los encabezados

'de la tabla de las ciudades y posicionarce

Cells.Find(what:=celda, lookat:=xlWhole).Select

'añade todos los items(ipss)

'a la lista reperido a ipss

ActiveCell.Offset(1, 0).Select

Do While Not IsEmpty(ActiveCell)

referido_a_ipss.AddItem ActiveCell

ActiveCell.Offset(1, 0).Select

Loop

End Sub

2 Respuestas

Respuesta

El problema es que la gran mayoria tiene como referencia "ActiveCell", por lo que una celda de una hoja oculta no se puede ocultar por eso no te arroja datos.
En lugar de cambiar toda la macro yo te recomendaria agregar:

 Sheets("Hoja2"). Visible = True

al inicio de la macro para mostrar la hoja oculta y simplemente al final:

 Sheets("Hoja2").Visible = False

Para ocultarla nuevamente al finalizar la macro.

Por cierto, puse "Hoja2" como referencia de hoja por lo que tu tendras que cambiarlo a la hoja que quieres ocultar.

resulta que son múltiples hojas  por eso utilice For h = 9 To Sheets.Count

Igualmente puedes usar un for para mostrar las hojas sacar los datos que quieres y volverlos a ocultar posteriormente

Respuesta

La lista de Departamentos se te llena bien porque no seleccionas la hoja.

En la otra subrutina te hice algunos cambios. Solo ajusta el nombre de la hoja desde donde se tomarán los datos de tabla de ciudades.

Private Sub municipio_change()
On Error Resume Next
'apagar los parpadeos de pantalla'
Application.ScreenUpdating = False
referido_a_ipss.Clear
celda = municipio.List(municipio.ListIndex)
'buscaremos el estado elegido de los encabezados
'de la tabla de las ciudades y posicionarce       'en qué hoja está ??
Set hoc = Sheets("Ciudades")     'AJUSTAR NOMBRE DE HOJA
Set busco = hoc.Cells.Find(what:=celda, lookat:=xlWhole)    'Select dará error si el dato no se encuentra
'si encuentra el dato
If Not busco Is Nothing Then
'añade todos los items(ipss)
    filx = busco.Row + 1: colx = busco.Column
        'ActiveCell.Offset(1, 0).Select
    Do While Not IsEmpty(hoc.Cells(filx, colx))
        referido_a_ipss.AddItem hoc.Cells(filx, colx)
        filx = filx + 1
            'ActiveCell.Offset(1, 0).Select
    Loop
End If
End Sub

En video 16 de mi canal explico el porqué generalmente falla la instrucción Cells.Find.....Select 

Sdos y no olvides valorar las respuestas si el tema queda resuelto.

Te recuerdo que la consulta sigue aún como pendiente... no olvides valorarlas para darla por cerrada.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas