.
El ejemplo que puede descargarse GRATUITAMENTE desde el final de la página tiene por objeto llenar un combobox dependiendo de otro combobox y a su vez de este combobox depende un listbox. Al cargar el formulario se carga en el primer combobox un listado de productos, los cuales los filtra para que salgan solo productos únicos y evitar duplicados; dependiendo del dato seleccionados en este combobox se llena el segundo combobox a su vez de los datos seleccionados en el segundo combobox se llena un listbox.
Agregando la fecha de entrega del producto, y presionado el botón registrar, la macro busca el dato respectivo y agrega la fecha de entrega del producto correspondiente.
El ejemplo de macro que llena combobox dependiendo de otro combobox y a su vez controla los datos de un listbox, se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice «Ejecutar Macro» y se ejecuta la macro realizando la el llenado del primer combobox, luego del segundo combobox en base a los selecionado en el primer combobox; por último el listbox depende de lo seleccionado en el combobox anterior.
El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.
if (payload.eventType == ‘subscribe’) {
// Add code to handle subscribe event.
} else if (payload.eventType == ‘unsubscribe’) {
// Add code to handle unsubscribe event.
}
if (window.console) { // for debugging only
window.console.log(‘YT event: ‘, payload);
}
}
Código que se inserta en un módulo
Sub Botón1_Haga_clic_en()
UserForm2.Show
End Sub
Public dir
Private Sub ComboBox1_Change()
Dim fila As Integer
Dim uf As Integer
Dim d1, d2 As String
fila = 2
uf = Sheets(«hoja2»).Range(«A» & Rows.Count).End(xlUp).Row
ComboBox2.Clear
While Sheets(«hoja2»).Cells(fila, 1) <> Empty
d1 = ComboBox1
d2 = Sheets(«hoja2»).Cells(fila, 1)
If d1 = d2 Then
ComboBox2.AddItem Sheets(«hoja2»).Cells(fila, 4)
End If
fila = fila + 1
Wend
End Sub
Private Sub ComboBox2_Change()
‘Evito movimientos de la pantalla
Application.ScreenUpdating = False
Dim fila, a As Integer
Dim dato, var As String
‘On Error Resume Next
‘Borra datos del listbox
ListBox1.Clear
ListBox1.ColumnCount = 6
a = 0
fila = 2
‘Bucle mientras la fila no esté vacia
While Sheets(«hoja2»).Cells(fila, 4) <> Empty
dato = ComboBox2
‘Si el dato de la fila coincide con textbox carga los datos al listbox
var = Sheets(«hoja2»).Cells(fila, 4)
If var = dato Then
dir = Sheets(«hoja2»).Cells(fila, 4).Address(False, False)
‘Copia los datos de la celda list box
a = ListBox1.ListCount
ListBox1.AddItem
ListBox1.List(a, 0) = Sheets(«hoja2»).Cells(fila, 1)
ListBox1.List(a, 1) = Sheets(«hoja2»).Cells(fila, 2)
ListBox1.List(a, 2) = Sheets(«hoja2»).Cells(fila, 3)
ListBox1.List(a, 3) = Sheets(«hoja2»).Cells(fila, 4)
ListBox1.List(a, 4) = Sheets(«hoja2»).Cells(fila, 5)
ListBox1.List(a, 5) = Sheets(«hoja2»).Cells(fila, 6)
End If
‘Aumento la fila para que pase a la siguiente
fila = fila + 1
Wend
‘Devuelvo movimientos de la pantalla
Application.ScreenUpdating = True
End Sub
Private Sub CommandButton2_Click()
If ComboBox3 = Empty Then
MsgBox («Debe cargar fecha de salida»), vbCritical, «AVISO»
ComboBox3.SetFocus
Exit Sub
End If
Sheets(«hoja2»).Range(dir).Offset(0, 2) = ComboBox3
ComboBox1.Clear
ComboBox2.Clear
ListBox1.Clear
ComboBox1.SetFocus
MsgBox («El registro se guardó con éxito»), vbInformation, «AVISO»
ComboBox3.Clear
End Sub
Private Sub CommandButton3_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim sd As New Collection
Dim celda As Range
Dim dato
Dim r As String
Dim uf As Integer
Application.ScreenUpdating = False
On Error Resume Next
ComboBox1.Clear
Sheets(«hoja2»).Select
Range(«A2»).Select
uf = Range(«A» & Rows.Count).End(xlUp).Row
r = «A2:A» & uf
For Each celda In Range(r)
sd.Add celda.Value, CStr(celda.Value)
Next celda
For Each dato In sd
ComboBox1.AddItem dato
Next dato
Application.ScreenUpdating = True
End Sub
amzn_assoc_placement = «adunit0»;
amzn_assoc_enable_interest_ads = «true»;
amzn_assoc_tracking_id = «pevmpe-20»;
amzn_assoc_ad_mode = «auto»;
amzn_assoc_ad_type = «smart»;
amzn_assoc_marketplace = «amazon»;
amzn_assoc_region = «US»;
amzn_assoc_textlinks = «»;
amzn_assoc_linkid = «dd6af26f8beece4d0990598f92dbfebd»;
amzn_assoc_emphasize_categories = «16261631,51569011,2619525011,2617941011,15684181,165796011,3760911,1000,13900861,2335752011,36632,9003130011,13900871,130,172282,5088769011,979455011,2238192011,16310101,3760901,1055398,16310091,3367581,133140011,284507,195209011,599858,10272111,301668,51575011,1064954,2972638011,2619533011,672123011,229534,3375251,3250697011,228013,165793011,404272,468642,377110011»;
amzn_assoc_rows = «1»;
amzn_assoc_fallback_mode = {«type»:»search»,»value»:»fone, shoes, accesories»};
amzn_assoc_default_category = «All»;
.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends