Curso Macros en Excel – Cap. 85 – Agenda telefónica desde cero PARTE 8

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica en Excel desde cero usando macros y VBA en Excel. En esta octava parte vamos a programar de nuevo el botón BUSCAR, pero ahora le vamos a decir que busque valores aproximados, usando el operador LIKE y el comodín asterisco “*”, además de poder búsquedas sin importar si escribimos valores en mayúsculas o minúsculas.

También logramos que vamos a poder buscar en todos los campos de los registros, es decir, cuando ingresemos un valor para buscar, la búsqueda devolverá valores donde el texto coincida con cualquier campo, nombre, domicilio, correo, etc.

Ver video Capítulo 85 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el séptimo video del Proyecto de nuestra agenda telefónica, pero el número 85 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Búsqueda aproximada con el operador LIKE sin distinguir MAYÚSCULAS y minúsculas

Como lo comentamos en el video pasado, ahora modificaremos el código del botón buscar para realizar búsquedas aproximadas usando el operador LIKE, en lugar del operador IGUAL “=”. Además, usando las funciones LCASE o UCASE vamos a poder convertir los textos que se comparan para que la macro no haga distinciones y encuentre registros sin importar cómo los escribimos.

Figura 1. Búsqueda aproximada en UserForm de Excel VBA. No case sensitive.

Prácticamente sólo modificamos una línea del código del botón BUSCAR, la cual fue:

If VBA.LCase(HojaBase.Cells(i, Columna).Value) Like "*" & VBA.LCase(Me.txtBuscar.Value) & "*" Then

Añadir columna a la BASE que contenga todos lo campos concatenados

También como lo planteamos en el video anterior, decidimos que vamos a incluir una nueva columna en la BASE, donde se contengan los valores de todos los TextBoxes del Formulario de ALTA. Para lograrlo, tuvimos que modificar el BOTÓN GUARDAR del Formulario de Alta, específicamente en la sección donde recorremos los 16 TextBoxes y los agregamos a la BASE.

Figura 2. Columna auxiliar donde se guardan todos los valores concatenados en Userform de Excel.

Haremos uso de dos nueva variables (NombreLargo y NombreLargo1) que nos ayudará a almacenar los valores de los TextBoxes y al final queden separados por un guión y el resultado quede en la nueva columna llamada NOMBRE LARGO.

With HojaBase
    .Cells(NuevaFila, 1).Value = NuevoID
    For i = 1 To 16
        .Cells(NuevaFila, i + 1).Value = Me.Controls("valor" & i).Value
        NombreLargo = Me.Controls("valor" & i).Value
        NombreLargo1 = NombreLargo1 & NombreLargo & "-"
    Next i
    .Cells(NuevaFila, 18).Value = Me.LabelRuta.Caption
    .Cells(NuevaFila, 19).Value = NombreLargo1
End With

Descarga el archivo de ejemplo

085 – Proyecto Agenda 08 – BÚSQUEDA aproximada de registros – EXCELeINFO.zip

<<CURSO COMPLETO DE MACROS EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...