Para inicializar un combobox utilice esto
Private Sub UserForm_Initialize()
Range("A2").Select 'seleccionamos el primer concepto
While ActiveCell <> ""
ComboBox1.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select
Wend
End Sub
para identificar los valores, segun el producto utilice esto:
'Declaramos las variables.
Dim Cantidad
Dim Rango As Range
Dim Buscado As Variant
Dim Precio, Iva, subtotal, Total
Private Sub ComboBox1_Change()
On Error GoTo ErrorHandler
'
Set Rango = Sheets(1).Range("A1").CurrentRegion
Buscado = Me.ComboBox1.Value
'
'Asignamos las variables del BUSCARV.
Precio = Application.WorksheetFunction.VLookup(Buscado, Rango, 2, 0)
Iva = Application.WorksheetFunction.VLookup(Buscado, Rango, 3, 0)
subtotal = Application.WorksheetFunction.VLookup(Buscado, Rango, 5, 0)
Total = Application.WorksheetFunction.VLookup(Buscado, Rango, 6, 0)
'
'Pasamos el resultado a los cuadros de texto correspondientes.
With Me
.TextBox1.Value = Precio
.TextBox3.Value = Iva
.TextBox4.Value = subtotal
.TextBox5.Value = Total
End With
'
Exit Sub
'
'De haberse encontrado un error mostramos mensajes.
ErrorHandler:
If Err.Number = 1004 Then
With Me
End With
Else
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "blah"
End If
End Sub
'Declaramos las variables.
Dim Cantidad
Dim Rango As Range
Dim Buscado As Variant
Dim Precio, Iva, subtotal, Total
Private Sub ComboBox1_Change()
On Error GoTo ErrorHandler
'
Set Rango = Sheets(1).Range("A1").CurrentRegion
Buscado = Me.ComboBox1.Value
'
'Asignamos las variables del BUSCARV.
Precio = Application.WorksheetFunction.VLookup(Buscado, Rango, 2, 0)
Iva = Application.WorksheetFunction.VLookup(Buscado, Rango, 3, 0)
subtotal = Application.WorksheetFunction.VLookup(Buscado, Rango, 5, 0)
Total = Application.WorksheetFunction.VLookup(Buscado, Rango, 6, 0)
'
'Pasamos el resultado a los cuadros de texto correspondientes.
With Me
.TextBox1.Value = Precio
.TextBox3.Value = Iva
.TextBox4.Value = subtotal
.TextBox5.Value = Total
End With
'
Exit Sub
'
'De haberse encontrado un error mostramos mensajes.
ErrorHandler:
If Err.Number = 1004 Then
With Me
End With
Else
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "blah"
End If
End Sub
Espero que esto te ayude un poco más con lo que necesitas..
Que tengas linda tarde