8 combobox dependientes enlazados
Estimados expertos tengo el sigiente problema quiero realizar una macro en donde tenga 8 combobox en los cuales quiero desplegar la siguiente informacion
tengo el sgte codigo
Public ufila As Integer
Private Sub ComboBox1_Change()
ComboBox2.Clear
'Por.dam
codigo = ComboBox1.Value
Dim rnData As Range
Dim vaData As Variant ' ,la lista, almacenada en una variante
Dim ncData As New VBA.Collection ' la lista, guardar en una colección
Dim lnCount As Long 'la cuenta utilizada en el On Error Resume bucle Siguiente
Dim vaItem As Variant 'una variante que representa el tipo de artículos en ncData
'Uso, recuperar el rango de la lista en la columna b.'Uso, Recuperar el Rango de la Lista en La Columna b.
With ThisWorkbook.Worksheets("Hoja1")
Set rnData = .Range(.Range("B1"), .Range("B" & Rows.Count).End(xlUp))
End With
'Coloque los valores de lista en vaData.Coloque los Valores de Lista en vaData
vaData = rnData.Value
'Coloque los valores de lista de vaData en el VBA.Collection.
On Error Resume Next
For lnCount = 1 To UBound(vaData)
ubicacion = Cells(lnCount, 2)
If Cells(lnCount, 1) = codigo Then
ncData.Add vaData(lnCount, 1), CStr(vaData(lnCount, 1))
End If
Next lnCount
On Error GoTo 0
With Me.ComboBox2
.Clear
For Each vaItem In ncData
.AddItem ncData(vaItem)
Next vaItem
End With
End Sub
Private Sub ComboBox2_Change()
'Por.dam
ComboBox3.Clear
codigo = ComboBox1.Value
ubicacion = ComboBox2.Value
Dim rnData As Range
Dim vaData As Variant 'la lista, almacenada en una variante
Dim ncData As New VBA.Collection 'la lista, guardar en una colección
Dim lnCount As Long 'la cuenta utilizada en el On Error Resume bucle Next.
Dim vaItem As Variant 'una variante que representa el tipo de artículos en ncData
'Usando, recuperar el rango de la lista en la columna b.
With ThisWorkbook.Worksheets("Hoja1")
Set rnData = .Range(.Range("C1"), .Range("C" & Rows.Count).End(xlUp))
End With
'Coloque los valores de lista en vaData.
vaData = rnData.Value
'Coloque los valores de lista de vaData en el VBA.Collection.
On Error Resume Next
For lnCount = 1 To UBound(vaData)
fecha = Cells(lnCount, 3)
If Cells(lnCount, 1) = codigo And _
Cells(lnCount, 2) = ubicacion Then
ncData.Add vaData(lnCount, 1), CStr(vaData(lnCount, 1))
End If
Next lnCount
On Error GoTo 0
With Me.ComboBox3
.Clear
For Each vaItem In ncData
.AddItem ncData(CStr(vaItem))
Next vaItem
End With
End Sub
Private Sub ComboBox3_Change()
'Por.dam
ComboBox4.Clear
codigo = ComboBox1.Value
ubicacion = ComboBox2.Value
fecha = ComboBox3.Value
For i = 1 To ufila
cantidad = Cells(i, 4)
If Cells(i, 1) = codigo And _
Cells(i, 2) = ubicacion And _
Val(Cells(i, 3)) = Val(fecha) Then
With Me.ComboBox4
.AddItem cantidad
End With
End If
Next
End Sub '***
Private Sub UserForm_Activate()
Dim strRango As String
Dim i As Integer
'Por.dam
'El libro de Excel y hojas de cálculo que contiene los datos, así como la gama colocado en que los datos
Dim rnData As Range
Dim vaData As Variant 'the list, stored in a variant
Dim ncData As New VBA.Collection 'the list, stored in a collection
Dim lnCount As Long 'the count used in the On Error Resume Next loop.
Dim vaItem As Variant 'a variant representing the type of items in ncData
'Instantiate the Excel objects.
Set wbBook = ThisWorkbook
Set wsSheet = wbBook.Worksheets("Hoja1")
ufila = Range("A" & Rows.Count).End(xlUp).Row
'Using Sheet2,retrieve the range of the list in Column A.
'With wsSheet
With ThisWorkbook.Worksheets("Hoja1")
'Set rnData = .Range(.Range("A2"), .Range("A100").End(xlUp))
Set rnData = .Range(.Range("A2"), .Range("A" & Rows.Count).End(xlUp))
End With
'Place the list values into vaData.
vaData = rnData.Value
'Place the list values from vaData into the VBA.Collection.
On Error Resume Next
For lnCount = 1 To UBound(vaData)
ncData.Add vaData(lnCount, 1), CStr(vaData(lnCount, 1))
Next lnCount
On Error GoTo 0
'and then add each unique variant item from ncData to the combo box.
With Me.ComboBox1
.Clear
For Each vaItem In ncData
.AddItem ncData(vaItem)
Next vaItem
End With
End Sub
Ojala me pudieran orientar como realizarlo en este momento la macro solo me despliega la informacion del primer combo donde despliega la inf. De la unidad...
Amigo, me parece muy buena la propuesta, sin embargo trate de adaptarla y no me funciono, sería posible que me enviaras el excel con el caso aplicado para poderlo trabajar, tengo exactamente el mismo problema que expone Cristian Muñoz...... Muchas gracias de antemano, mi email [email protected] - Hugo Caceros
Con mucho gusto te ayudo con todas tus peticiones.Crea una nueva pregunta en todoexpertos, en el tema de microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor", ahí me describes con detalle lo que necesitas.Sal u dos - Dante Amor