ComboBox Exccel VBA

Son dos preguntas
Primera
Quiero ocupar un combobox en excel para hacer una evaluación, ya dibuje el combobox y le anexe las opciones en base a un rango de excel, pero quisiera saber como agregarle una macro para que automáticamente seleccionando una opción esta se bloquee y ya no me deje cambiar la opción
Segunda
Como le hago para que inmediatamente tomando una selección de la lista desplegable del combobox esta info se refleje en otras celdas para hacer una gráfica
Respuesta
1
Ante todo recibe mis cordiales saludos. Con respecto a tu primera pregunta la instrucción de código que estas necesitando es la siguiente: Te lo explico con un ejemplo:
En una hoja de excel tengo el siguiente rango de datos:
Nrofila Columna
1 Detergente
2 Ariel
3 Ace
4 Opal
5 Magia blanca
Para que se cargen estos datos en un combobox, cada vez que abres el libro de excel y se encuentre activa la hoja de excel donde tienes estos datos, debes programar el evento Activate de la hoja (Worksheet), si has insertado el combobox en la hoja, en caso que el combobox, lo has insertado en un formulario debes activar el evento Activate del formulario (UserForm):
Hoja: Worksheet_Activate
Formulario: UserForm_Activate
Asumiendo que has insertado el objeto combobox, en una hoja, entra al editor de visual basic, y programa el evento Activate de la hoja de la siguiente manera:
Private Sub Worksheet_Activate()
Dim productos As String
'productos va a guardar los Items(Elementos) de las celdas de la fila 2,3 ,4 y 5.
ComboBox1.Clear ' Cada vez que la hoja este activa se va a limpiar el combobox.
Dim j, i As Double
For j = 1 To 4
i = j + 1
'i = 2 y va a correr todo el rango de filas hasta la fila 4 y almacena cada dato de la fila en la variable producto.
productos = Cells(i, 1)
'cuandos i =2 el valor que almacenara producto sera ariel.
ComboBox1.AddItem (productos)
' el producto ariel sera agregado al combobox, asi sucesivamente agregara todos los producto hasta que termine de hacer el recorrido hasta la fila 4
Next
ComboBox1.Enabled = True
' la propieda enable=true , permite que el objeto combobox se encuentre activo cuando inicies la macro
End Sub
Private Sub ComboBox1_Change()
' evento change ocurre cuando selecionas un elemento de la lista , al seleccionarlo se un elemento de la lista se desactiva el combobox
ComboBox1.Enabled = False
End Sub
Espero haber contruibuido con tu aprendizaje, cualquier consulta me escribes, con respecto a la segunda pregunta, fórmula mediante un ejemplo para poder entenderte mejor. Suerte
Espero que el código que te envíe haya sido de tu ayuda, no te olvides de finalizar la respuesta si realmente te ha servido.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas