Con BuscarV siempre te va a regresar el primer valor, es por eso que la macro deberá contar el número de componentes, preguntar cuál componente quieres y poner el componente deseado.
Pon la siguiente macro en los eventos de tu hoja:
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Target.Column = 1 Then
Dim componentes As New Collection
Set h = Sheets("Datos")
Set r = h.Columns("A")
Set b = r.Find(Target.Value, LookAt:=xlWhole)
n = 0
If Not b Is Nothing Then
celda = b.Address
Do
'cuenta el número de componentes
n = n + 1
componentes.Add h.Cells(b.Row, "B")
Set b = r.FindNext(b)
Loop While Not b Is Nothing And b.Address <> celda
'
Do While True
num = Val(InputBox("El producto tiene : " & n & " tipos." & vbCr & _
"Cuál tipo quieres", "ESCRIBIR EL NÚMERO"))
If num = "" Or num = 0 Or Not IsNumeric(num) Or num > n Then
res = MsgBox("Número incorrecto. Desea continuar", vbQuestion + vbYesNo, "ESCRIBIR EL NÚMERO")
If res = vbNo Then
Exit Do
End If
Else
Cells(Target.Row, "B") = componentes(num)
Cells(Target.Row, "C") = n
Cells(Target.Row, "D") = num
Exit Do
End If
Loop
Else
MsgBox "El Producto no existe en la hoja Datos", vbExclamation
End If
Target.Select
End If
End Sub
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
- En el panel del lado derecho copia la macro
Funciona de la siguiente manera, por cada producto que captures en la hoja "captura", dentro de la columna "A", la macro se activa en automático y te muestra un mensaje: "El producto tiene : n " tipos." Y "Cuál tipo quieres". En este momento tienes que capturar un número válido.
Después de capturar el número te muestra en las siguientes celdas el componente, cuántos componentes tiene y el número escogido.
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Feliz Año 2018
.