Macro que me pregunte en inputbox cual escoger

Me puedes ayudar con una macro que me diga en un inputbox que opción escoger, te muestro un ejemplo

En la Hoja 1 se captura información y se usan fórmulas de buscarv, de la Hoja 2 se obtiene la información

El problema esta cuando buscan un producto que llevan 2 componentes diferentes, con la fórmula buscarv te arrroja el primero cuando se busca el segundo, me gustaría que saliera un inputbox y te preguntara cual tipo quieres si el 1 o el 2 y dependiendo de la repuesta te arroje el componente que quieres.

Gracias

1 Respuesta

Respuesta
2

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

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. 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

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas