Como buscar un valor en una Planilla Dinámica?

Necesito buscar para una fecha en particular, la cantidad que llegara de importación de un articulo en particular.

Para ello dispongo del dato FECHA en la celda E5 de la Hoja1 y el dato ARTICULO en la celda Bi (desde B7 hasta Bi) de la Hoja1,

Y con éstos, quisiera buscar la cantidad que llegara de importación en una Planilla Dinámica que funciona en la hoja2 según la siguiente imagen:

Ejemplo 1: ARTICULO 73653 en B8

                    si E5 = 14/10/2020 ==> la cantidad encontrada debe ser 320
Ejemplo 2: ARTICULO 73653 en B8

                    si E5 = 06/11/2020 ==> la cantidad encontrada debe ser 320

Ejemplo 3: ARTICULO 73653 en B8

                    si E5 = 19/11/2020 ==> la cantidad encontrada debe ser 720

Ahora bien, sin animo de marearte, dispongo de la formula de búsqueda pero antiguamente era usada para buscar en una hoja simple llamada STOCK.

Lo que realmente estoy buscando es adaptar esta formula para que busque en la Planilla Dinámica de la Hoja2 en vez de la Hoja STOCK

La formula corre bajo una Función publica MiEvento y es la siguiente:

Public Function MiEvento(rngCelda As Range)
  Range("seleccion").Value = rngCelda.Row
  ActiveSheet.Label1.Caption = "  Fec. IMPO: " & Format(WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:O2000"), 15, 0), "dd/mm/yyyy")

La hoja activa es la Hoja1; el Label donde deseo mostrar la fecha esta en la Hoja1; la posición del articulo en la Hoja1 es variable a lo largo de la Columna B de la Hoja1; el Rango de búsqueda debe ser la Planilla Dinámica que esta en la Hoja2 en vez de: ... "Range("STOCK!A2:O2000"),15,0)"...

¿Es posible poder hacer este cambio?

1 Respuesta

Respuesta
1

Para todos aquellos que buscan el "EXCELENTE" a pesar que el código les pertenece y aun así no se animaron..., le digo que era muy sencillo poder resolver tal pedido.

Solo tuve que acomodar un poco el código solicitado arriba por el que copio y ... la magia apareció!

Public Function MiEvento(rngCelda As Range)
'Dim artic
'Range("seleccion").Value = rngCelda.Row
If Sheets("INFORME LISTA").Range("E5") < WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 107, 0) Then
   Range("seleccion").Value = rngCelda.Row
   ActiveSheet.Label1.Caption = "  Fec. IMPO: "
Else
    If Sheets("INFORME LISTA").Range("E5") < WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 108, 0) Or Sheets("INFORME LISTA").Range("E5") = WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 107, 0) Then
       Range("seleccion").Value = rngCelda.Row
       ActiveSheet.Label1.Caption = "  Fec. IMPO: " & Format(WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 107, 0), "dd/mm/yyyy")
    Else
        If Sheets("INFORME LISTA").Range("E5") < WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 109, 0) Or Sheets("INFORME LISTA").Range("E5") = WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 108, 0) Then
           Range("seleccion").Value = rngCelda.Row
           ActiveSheet.Label1.Caption = "  Fec. IMPO: " & Format(WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 108, 0), "dd/mm/yyyy")
        Else
            If Sheets("INFORME LISTA").Range("E5") < WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 110, 0) Or Sheets("INFORME LISTA").Range("E5") = WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 109, 0) Then
               Range("seleccion").Value = rngCelda.Row
               ActiveSheet.Label1.Caption = "  Fec. IMPO: " & Format(WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 109, 0), "dd/mm/yyyy")
            Else
                If Sheets("INFORME LISTA").Range("E5") < WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 111, 0) Or Sheets("INFORME LISTA").Range("E5") < WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 110, 0) Then
                   Range("seleccion").Value = rngCelda.Row
                   ActiveSheet.Label1.Caption = "  Fec. IMPO: " & Format(WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 110, 0), "dd/mm/yyyy")
                Else
                    If Sheets("INFORME LISTA").Range("E5") = WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 111, 0) Then
                       Range("seleccion").Value = rngCelda.Row
                       ActiveSheet.Label1.Caption = "  Fec. IMPO: " & Format(WorksheetFunction.VLookup(Range("B" & rngCelda.Row), Range("STOCK!A2:DG2000"), 111, 0), "dd/mm/yyyy")
                    End If
                End If
            End If
        End If
    End If
End If
End Function

Raro pero....funciona! y tengo lo que necesitaba

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas