Buscar datos con macro interactiva en Excel (macro)
¿Cómo podemos crear un buscador de datos interactivo mediante el uso de macros en Excel?
La siguiente macro nos permite generar un menú interactivo que nos permite detallar el tipo de búsqueda que necesitamos realizar dentro de un archivo en Excel.
La instrucción a copiar dentro de un nuevo módulo en la ventana de Visual Basic es la siguiente:
BUSCAR DATOS CON MACRO INTERACTIVA EN EXCEL
Sub BuscarConPreguntas()
Dim buscarEn As String
Dim nombreHoja As String
Dim tipoBusqueda As String
Dim valorBuscado As String
Dim hoja As Worksheet
Dim celda As Range
Dim encontrado As Boolean
' Paso 1: ¿Todo el libro o una hoja?
buscarEn = InputBox("¿Quieres buscar en todo el libro o en una hoja específica? Escribe: libro / hoja", "Buscar en...")
If buscarEn = "" Then Exit Sub ' Cancelado
If LCase(buscarEn) = "hoja" Then
' Paso 2: Nombre de la hoja
nombreHoja = InputBox("¿En qué hoja quieres buscar? Escribe el nombre exactamente como aparece.", "Nombre de hoja")
If nombreHoja = "" Then Exit Sub
On Error Resume Next
Set hoja = ThisWorkbook.Worksheets(nombreHoja)
On Error GoTo 0
If hoja Is Nothing Then
MsgBox "La hoja '" & nombreHoja & "' no existe.", vbCritical
Exit Sub
End If
ElseIf LCase(buscarEn) = "libro" Then
' Buscar en todo el libro
Else
MsgBox "Opción inválida. Escribe solo 'libro' o 'hoja'.", vbExclamation
Exit Sub
End If
' Paso 3: ¿Búsqueda exacta o parcial?
tipoBusqueda = InputBox("¿La búsqueda es exacta o parcial? Escribe: exacta / parcial", "Tipo de búsqueda")
If tipoBusqueda = "" Then Exit Sub
If LCase(tipoBusqueda) <> "exacta" And LCase(tipoBusqueda) <> "parcial" Then
MsgBox "Opción inválida. Escribe solo 'exacta' o 'parcial'.", vbExclamation
Exit Sub
End If
' Paso 4: Valor a buscar
valorBuscado = InputBox("¿Qué valor deseas buscar?", "Valor a buscar")
If valorBuscado = "" Then Exit Sub
Application.ScreenUpdating = False
encontrado = False
' Búsqueda en hoja específica
If Not hoja Is Nothing Then
For Each celda In hoja.UsedRange
If (LCase(tipoBusqueda) = "exacta" And celda.Value = valorBuscado) Or _
(LCase(tipoBusqueda) = "parcial" And InStr(1, celda.Value, valorBuscado, vbTextCompare) > 0) Then
celda.Interior.Color = RGB(255, 255, 0) ' Resaltar en amarillo
encontrado = True
End If
Next celda
Else
' Búsqueda en todo el libro
For Each hoja In ThisWorkbook.Worksheets
For Each celda In hoja.UsedRange
If (LCase(tipoBusqueda) = "exacta" And celda.Value = valorBuscado) Or _
(LCase(tipoBusqueda) = "parcial" And InStr(1, celda.Value, valorBuscado, vbTextCompare) > 0) Then
celda.Interior.Color = RGB(255, 255, 0)
encontrado = True
End If
Next celda
Next hoja
End If
Application.ScreenUpdating = True
' Resultado final
If encontrado Then
MsgBox "Búsqueda completada. Las coincidencias fueron resaltadas en amarillo.", vbInformation
Else
MsgBox "No se encontraron coincidencias.", vbExclamation
End If
End Sub
|
En este caso nombramos arbitrariamente a la macro con el nombre «BuscarConPreguntas» para su identificación.
Dentro de las instancias del menú, primero debemos detallar si la búsqueda se encuentra en todo el libro o en una hoja en particular, si es una hoja luego debemos detallar el nombre exacto de dicha hoja. El paso siguiente indica si la búsqueda será exacta o parcial, es decir si debe ser el contenido exacto de una celda o puede ser una parte del contenido de una celda. Finalmente debemos colocar el valor o valores a buscar, y de esta forma se devolverá un mensaje final indicando si hubo o no coincidencias, resaltando en color amarillo las celdas coincidentes.
De esta forma logramos generar un buscador de datos interactivo de forma rápida y fácil mediante macros en Excel.
Te recomiendo ver el siguiente link con más videos de Macros útiles de Excel AQUÍ.
¿No sabés como instalar esta macro? ¡No te preocupes! Aquí está la solución:
TUTORIALSalvo aclaración, todas las fórmulas y macros de este sitio están configuradas para aplicarse sobre la celda A1. Algunas fórmulas se encuentran encerradas entre llaves {} debido a que son fórmulas matriciales. Estas llaves no deben introducirse tecleándolas, sino que se generan automáticamente al aceptar la fórmula pulsando Control+Shift+Enter al mismo tiempo. Las fórmulas de este sitio son compatibles con versiones de Microsoft Excel® 2010 o superiores.
