¿Como enlazar Combobox dependientes y unir con Textbox al finalizar filtro?
Soy bastante novato y estoy aprendiendo sobre este lenguaje. Tengo un formulario en cual tengo 6 combobox los cuales están enlazados entre sí, es decir, cuando selecciono algún valor en el primer combobox este condiciona el segundo y así sucesivamente (filtro en cascada) y la idea es que al finalizar me arroje los valores (la celda siguiente) de ese filtro en un textbox (en este caso el promedio).
Mi problema es que cuando realizo los últimos pasos (filtros de años y meses) no me arrojan valores, creo que es por la variable numérica, pero como mencione con anterioridad estoy aprendiendo este lenguaje el cual no manejo, me podría explicar o aconsejar cambios para poder obtener buenos resultados
De antemano muchas gracias
Saludos cordiales
Lo que pretendo hacer y como están ordenados los datos es así:
y esta es la sintaxis
Private Sub ComboBox5_Change()
ComboBox6.Clear
uf = Sheets("Datos").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To uf
If Sheets("Datos").Cells(i, "D") = ComboBox4 And _
Sheets("Datos").Cells(i, "E") = ComboBox5 Then
AddItem ComboBox6, Sheets("Datos").Cells(i, "F")
End If
Next
End Sub
Private Sub ComboBox4_Change()
ComboBox5.Clear
uf = Sheets("Datos").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To uf
If Sheets("Datos").Cells(i, "C") = ComboBox3 And _
Sheets("Datos").Cells(i, "D") = ComboBox4 Then
AddItem ComboBox5, Sheets("Datos").Cells(i, "E")
End If
Next
End Sub
Private Sub ComboBox3_Change()
ComboBox4.Clear
uf = Sheets("Datos").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To uf
If Sheets("Datos").Cells(i, "B") = ComboBox2 And _
Sheets("Datos").Cells(i, "C") = ComboBox3 Then
AddItem ComboBox4, Sheets("Datos").Cells(i, "D")
End If
Next
End Sub
Private Sub ComboBox2_Change()
ComboBox3.Clear
uf = Sheets("Datos").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To uf
If Sheets("Datos").Cells(i, "A") = ComboBox1 And _
Sheets("Datos").Cells(i, "B") = ComboBox2 Then
AddItem ComboBox3, Sheets("Datos").Cells(i, "C")
End If
Next
End Sub
Private Sub ComboBox1_Change()
ComboBox2.Clear
uf = Sheets("Datos").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To uf
If Sheets("Datos").Cells(i, "A") = ComboBox1 Then
AddItem ComboBox2, Sheets("Datos").Cells(i, "B")
End If
Next
End Sub
Private Sub ComboBox6_Change()
f = ComboBox5.ListIndex + 2
TextBox1.Value = Sheets("Datos").Cells(f, "G")
TextBox1 = Format(TextBox1, "#,###.000")
End Sub
Private Sub CommandButton1_Click()
ComboBox1.Clear
uf = Sheets("Datos").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To uf
AddItem ComboBox1, Sheets("Datos").Cells(i, "A")
Next
TextBox1.Value = Empty
End Sub
Sub AddItem(cmbBox As ComboBox, sItem As String)
For i = 0 To cmbBox.ListCount - 1
Select Case StrComp(cmbBox.List(i), sItem, vbTextCompare)
Case 0: Exit Sub
Case 1: cmbBox.AddItem sItem, i: Exit Sub
End Select
Next
cmbBox.AddItem sItem
End Sub