Curso Macros en Excel – Cap. 84 – Agenda telefónica desde cero PARTE 7

<<CURSO COMPLETO MACROS EN YOUTUBE>>

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 séptima entrega vamos a programar el botón BUSCAR para que los elementos que coincidan con la búsqueda, se añadan al control ActiveX ListBox.

Ver video Capítulo 84 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 84 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Añadir columnas al ListBox (cuadro de lista) en Excel VBA

Ya decidimos que usaremos 6 columnas en el ListBox para mostrar los elementos que coincidan con el texto buscado. Mediante código deberemos indicarle al ListBox que deseamos 6 columnas, además de indicarle el tamaño o Width a cada una de ellas.

Ingresamos el siguente código VBA en el evento Initialize del UserForm2 (formulario).

Private Sub UserForm_Initialize()

Me.ListBox1.ColumnCount = 6
Me.ListBox1.ColumnWidths = "102;84;84;96;96;120"

End Sub

Búsqueda de elementos por texto

El TextBox1 ahora se llamará txtBuscar y nos servirá para ingresar un texto el cual se validará contra cada una de las filas del rango de la hoja Base, y los elementos coincidentes se añaden a modo de item en el ListBox.

Filtrar por columna Nombre

En este capítulo veremos cómo filtrar por la columna Nombre, que es la columna 2 de la hoja Base. En el código haremos uso de la variable Columna para indicarle que esa será la columna por la que compararemos el valor del txtBuscar.

Figura 1. Formulario para BUSCAR en proyecto Agenda con Excel y VBA

En el siguiente video veremos cómo buscar con comodines sin importar MAYÚSCULAS o minúsculas.

Código VBA del Formulario BUSCAR (Curso de VBA y macros en Excel)

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub CommandButton1_Click()
Dim HojaBase As Worksheet
Dim Rango As Range
Dim Columna As Integer
Dim i As Integer
Dim Filas As Integer

On Error GoTo ManejadorErrores

Set HojaBase = ThisWorkbook.Sheets("Base")
Set Rango = HojaBase.Range("A1").CurrentRegion

If Me.txtBuscar.Value = "" Then Exit Sub
Me.ListBox1.Clear

Columna = 2
Filas = Rango.Rows.Count

For i = 2 To Filas
    If HojaBase.Cells(i, Columna).Value = Me.txtBuscar.Value Then
        Me.ListBox1.AddItem HojaBase.Cells(i, 2).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = HojaBase.Cells(i, 3).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = HojaBase.Cells(i, 4).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = HojaBase.Cells(i, 8).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = HojaBase.Cells(i, 9).Value
        Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = HojaBase.Cells(i, 6).Value
    Else
    End If
Next i
Exit Sub

ManejadorErrores:
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "EXCELeINFO"
End Sub

Descarga el archivo de ejemplo

084 – Proyecto Agenda 07 – Programando botón BUSCAR – 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...