Error con combobox dependientes

Buenas tardes expertos, estoy haciendo un formulario en vba con excel, el formulario recibe los datos y los guarda en dos hojas de un libro diferente, en una sección de formulario quiero ligar los nombres de los usuarios con el departamento al que pertenecen.

El código que tengo es este:

Private Sub UserForm_Activate()
ComboBoxDestinatario.Clear
Sheets("Personal").Select
Range("a1").Select
Do While ActiveCell.Value <> ""
ComboBoxDestinatario.AddItem ActiveCell
ActiveCell.Offset(0, 1).Select
Loop
End Sub
Private Sub ComboBoxDestinatario_Change()
ComboBoxDestinatarioNom.Clear
indice = ComboBoxDestinatario.ListIndex + 1
Sheets("Personal").Cells(2, indice).Select
Do While ActiveCell.Value <> ""
ComboBoxDestinatarioNom.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Loop
End Sub

El problema es que al ejecutarlo me saca error 1004 por esta línea Sheets("Personal").Cells(2, indice).Select

Podrían ayudarme?

Muchas gracias.

2 respuestas

Respuesta
1

Un favor podrías subir tu archivo para poder trabajar sobre.

Hola, te paso la dirección donde los subí

https://www.dropbox.com/sh/8qx2ubyrmxzg1nq/AADykPIiVpbWQGKNODhssGpMa 

Muchísimas gracias por tu ayuda :)

Hola, buenas tardes.

De casualidad encontraste alguna solución, ya estoy un poco desesperado je je.

Muchas gracias.

Disculpa por demorarme en la respuesta.

En tu Botón "Generar reporte" en una línea tienes este código.

Reporte.ComboBoxDestinatario.Value = "Departamento"

El cual hace que una vez que termines de generar el reporte el texto del ComboBoxDestinatario sea "Departamento" y esto activa el evento change y hace que tu valor de indice sea =0 y por ese motivo sale error.

En conclusión borra ese código coméntalo.

Respuesta

Prueba lo siguiente:

Agrega esta línea antes de la línea que tiene error

Sheets("Personal").Select

Quedaría así

Private Sub ComboBoxDestinatario_Change()
    ComboBoxDestinatarioNom.Clear
    indice = ComboBoxDestinatario.ListIndex + 1
    Sheets("Personal").Select
    Sheets("Personal").Cells(2, indice).Select
    Do While ActiveCell.Value <> ""
        ComboBoxDestinatarioNom.AddItem ActiveCell
        ActiveCell.Offset(1, 0).Select
    Loop
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas