Me solicitaron buscar el numero de lista de empaque asociado al numero de factura en un listado. Sin embargo el numero de factura no es unico en cada celda, sino que se encuentra combunado con otros numeros de facturas. No se si con VLOOKUP se podría haber hecho lo mismo, porque el rango a buscar son 3 hojas distintas. El metodo .Find("What", lookat:=xlPart, Matchcase:= False) es apropiado para buscar parte de un texto dentro de una celda.
Option Explicit 'Importantísimo, obliga a declarar todas las variables y ayuda a evitar errores de digitacion con esos nombres.
Function buscar_packinglist(factura As String) 'factura es la variable que contendrá la celda con el valor a buscar
If Not ThisWorkbook.Sheets("Guayaquil").UsedRange.Find(factura, lookat:=xlPart, MatchCase:=False) Is Nothing Then
buscar_packinglist = ThisWorkbook.Sheets("Guayaquil").UsedRange.Find(factura, lookat:=xlPart, MatchCase:=False).Offset(0, -9).Value
Else
If Not ThisWorkbook.Sheets("Quito").UsedRange.Find(factura, lookat:=xlPart, MatchCase:=False) Is Nothing Then
buscar_packinglist = ThisWorkbook.Sheets("Quito").UsedRange.Find(factura, lookat:=xlPart, MatchCase:=False).Offset(0, -9).Value
Else
If Not ThisWorkbook.Sheets("Spare Parts").UsedRange.Find(factura, lookat:=xlPart, MatchCase:=False) Is Nothing Then
buscar_packinglist = ThisWorkbook.Sheets("Spare Parts").UsedRange.Find(factura, lookat:=xlPart, MatchCase:=False).Offset(0, -8).Value
Else
buscar_packinglist = "PL no encontrado"
End If
End If
End If
End Function
No hay comentarios:
Publicar un comentario