Como programo un comboBox en macros para Excel

Necesito programar un comboBox en macros para Excel, pero no se como hacerlo, ¿alguien qué me puede ayudar? Realmente me urge.

1 respuesta

Respuesta
1
Ante todo recibe mis cordiales saludos, el objeto de tipo combobox, en excel lo puedes programar a nivel de Sheets(Hoja) o a nivel de winform a través de eventos, cuando insertar un combobox en una hoja, o cuando insertar un combobox en un formulario de windows.
El código es el mismo, así sea a nivel de hojas o a nivel de formulario de windows, este ejemplo carga(llena) datos en un combobox.
Inserta un combobox, en una hoja, a continuación presiona doble clic en el botón, la propiedad que permíteme cargar datos en un combobox es la propiedad ADDITEM del objeto combobox, veras que se activado el evento change(sirve para seleccionar un elemento del combobox) de la siguiente manera:
Private Sub ComboBox1_Change()
ComboBox1. AddItem "manzana"
ComboBox1. AddItem "pera"
ComboBox1. AddItem "naranja"
End Sub
Si deseas que que al abrir el libro o el formulario se cargue datos el combobox, a nivel de hojas puedes usar el evento Activate de una sheet(hoja) o winform tienes que usar el evento activate, de la siguiente manera:
Private Sub UserForm_Activate()
ComboBox1. AddItem "manzana"
ComboBox1. AddItem "pera"
ComboBox1. AddItem "naranja"
End Sub
Private Sub Workbook_Activate()
ComboBox1. AddItem "manzana"
ComboBox1. AddItem "pera"
ComboBox1. AddItem "naranja"
End Sub
Ya lo pude hacer!... Gracias!.. El único inconveniente que veo, es que me salen repetidas varias veces mis opciones (las mismas 2 opciones se me repiten varias veces), lo tengo así:
Private Sub ComboBox1_Change()
Range("a3").Activate
ComboBox1.AddItem "Sol"
ComboBox1.AddItem "Mar"
End Sub
Como lo podría hacer para que al momento de visualizarse solo se vean dos veces, y no como ahora que me salen:
Sol
Mar
Sol
Mar
Sol
Mar
Etc.. Y si me puede ayudar a ponerlo para que no puedan escribir otra cosa que no sea algo que hayan elegido de las opciones fijas, te lo agradeceré muchísimo!
El problema se soluciona de la siguiente manera: En el evento activate de la hoja escribe la siguiente linea de comando.
Private Sub Workbook_Activate()
ComboBox1. Clear 'Cuando el libro este activo, limpiara el objeto de combobox, cargándolo nuevamente de datos.
end sub
Private Sub UserForm_Activate()
ComboBox1. Clear 'Cuando el ejecutes el formulario, limpiara el objeto de combobox, cargándolo nuevamente de datos.
end sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas