MACROS DE EXCEL

Buscar datos con macro interactiva en Excel (macro)

Buscar datos con macro interactiva en Excel (macro)

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:

Salvo 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.