Aquí vamos a desarrollar otra función de usuario para que nos busque un dato en todas las hojas del libro y nos devuelva el resto de los campos del registro encontrado.
Sería algo como BUSCARV pero en todo el libro.
Para eso imaginé unas tablas mensuales, con información de distintos clientes, con un par de campos adicionales.
La búsqueda se realizará desde otra hoja donde colocaremos la función que desarrollamos.
Como toda función, la escribiremos con esta sintaxis:
= nombre_funcion(argumento1; argumento 2)
=BUSCAR_DATO(K4;2)
NOTA: el separador de funciones será el que tengan en su libro
Excel, aquí utilicé punto y coma.
El código para esta función se colocará en un módulo del Editor y será el siguiente:
Function BUSCAR_DATO(dato, col)
i = 1
Do
If Sheets(i).Name <> "PORTADA" And
Sheets(i).Name <> "CONSULTA" Then
x = Sheets(i).Range("B" &
Rows.Count).End(xlUp).Row
For Each cd In
Sheets(i).Range("B2:B" & x)
If cd.Value = dato Then
resulta =
cd.Offset(0, col)
Exit For
End If
Next cd
End If
i = i + 1
Loop While resulta = "" And i <= Sheets.Count
If resulta =
"" Then
BUSCAR_DATO = "no ESTÁ"
Else
BUSCAR_DATO = resulta
End If
End Function
Se omiten las hojas PORTADA y CONSULTA ya que allí no se encuentran tablas de datos.
Luego se recorre la col B de cada hoja. Si el cliente coincide con el dato buscado se guardará en la variable 'resulta' el contenido de la col que se indica en el segundo argumento.
Si la variable 'resulta' queda vacía significa que no se encontró en ninguna hoja ese cliente y se devolverá un mensaje.
En el VIDEO 31 se comenta otro modo de armar esta función, dejando la parte de la búsqueda en una macro aparte. En el libro de ejemplo se encuentran los 2 módulos explicados. Pueden descargarlo desde aquí.
Para la búsqueda se pueden utilizar otros modos como el método FIND en lugar de recorrer la col B. Ese método se encuentra explicado en entradas anteriores (Junio 2019 y Febrero 2020) o en VIDEOS 25 y 29.
No hay comentarios.:
Publicar un comentario