Asignar datos a un combobox (activex), no se puede ?

A tod@s,

Estoy intentando asignar a un combobox (activex) datos al ListFillRange pero es imposible, he probado con una lista definida en nombre y asignando ( =DESREF(Empresas!$A$5;0;0;CONTARA(Empresas!$A$5:$A$1000)) ), pero luego no me deja poner el nombre de la lista en las propiedades del combobox, también he probado con algún ejemplo que he visto en las respuestas y agregándola a un evento change() de la hoja o del combo y nada, algo estoy haciendo mal pero no tengo ni papa, algún maestro que me ayude please.

Esto también lo he probado:

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.ComboBox1.ListFillRange = Empresas!A5: A300
End Sub

PD. La lista me funciona perfectamente con una celda verificada.

Respuesta
2

H  o l a:

Una opción es que lo pongas en la propiedad ListFillRange


Otra opción es que cargues el combo cuando abres el libro, suponiendo que el combo lo tienes en la hoja "Hoja3", entonces en los eventos de ThisWorkbook pon la siguiente macro:

Private Sub Workbook_Open()
'Por.Dante Amor
    Call ActualizarCombo
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

En un módulo pon la siguiente macro:

Sub ActualizarCombo()
'Por.Dante Amor
    u = Sheets("Empresas").Range("A" & Rows.Count).End(xlUp).Row
    Sheets("Hoja3").ComboBox1.ListFillRange = "Empresas!A5:A" & u
End Sub

Sigue las Instrucciones para poner la macro en un módulo

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro


Ahora, si agregaste o cambiaste datos en la columna A de la hoja "Empresas", tendrás que actualizar el combo de la "Hoja3", entonces simplemente ejecuta macro ActualizarCombo; si lo quieres de forma automática, entonces en los eventos de la hoja "Empresa" pon la siguiente macro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Columns("A")) Is Nothing Then
        Call ActualizarCombo
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas