VBA Excel, Base de Datos Dos ComboBox Dependientes Datos Repetidos

Disculpen mi ignorancia

Tengo una base de datos como sigue:

A B C

1 Tornillo 4.5 mm 0.05
2 Tornillo 5.5 mm 0.10
3 Tornillo 6.5 mm 0.15
4 Clavo 4.5 mm 0.04
5 Clavo 5.5 mm 0.08
6 Clavo 6.5 mm 0.12

En el cual quiero mostrar una ventana emergente "UserForm" que contiene 2 ComboBox y un Label

En el ComboBox1 quiero mostrar los dos Datos "Tornillos" y "Clavo" pero que no muestre datos repetidos, para eso tengo la siguiente sintaxis

Private Sub UserForm_Activate()
Dim col As New Collection
Set hoja = Worksheets("Hoja1")
ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
On Error Resume Next
For i = 1 To ufila
col.Add Item:=hoja.Cells(i, 1).Value, Key:=CStr(hoja.Cells(i, 1).Value)
Next i
For i = 1 To col.Count
Me.ComboBox1.AddItem col(i)
Next i
Me.ComboBox2.Clear
End Sub

En el ComboBox2 quiero mostrar las dimensiones de los tornillos o clavos según se haya escogido, y como ComboBox2 es dependiente de ComboBox1, tengo la siguiente sintaxis

Private Sub ComboBox1_Change()
Me.ComboBox2.Clear
grupo = ComboBox1.Value
Set hoja = Worksheets("Hoja1")
ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
For i = 1 To ufila
dimension = Cells(i, 2)
If Cells(i, 1) = grupo Then
With Me.ComboBox2
.AddItem dimension
End With
End If
Next
End Sub

Ahora bien el problema que tengo, es que a la hora de selecciona el "Tornillo" o "Clavo" y la dimensión de este, en el label1 aparezca el precio del articulo seleccionado, el cual no he logrado encontrar su sintaxis

Son algo novato en esto.

1 respuesta

Respuesta
1

Te preparo la macro y en un momento te la envío.

Saludos. DAM

Agrega el siguiente código a tu form

Private Sub ComboBox2_Change()
Me.Label1.Caption = ""
grupo = ComboBox1.Value
dimension = ComboBox2
Set hoja = Worksheets("Hoja1")
ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
For i = 1 To ufila
If Cells(i, 1) = grupo And Cells(i, 2) = dimension Then
Me.Label1.Caption = Cells(i, 3)
End If
Next
End Sub

Saludos.DAM
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas