Usar BUSCARV en formulario de Excel vba e identificar texto o números

3
Usar BUSCARV en formulario de Excel vba e identificar texto o números Este artículo podría considerarse uno más de los publicados con respecto al tema de la función BUSCARV , pero con detalles que no se habían tocado en otro artículo. En el ejemplo adjunto tenemos una tabla que aloja el nombre del usuario o número telefónico y un respectivo código ficticio. También tenemos un formulario donde deberemos escribir el usuario o teléfono para traer de vuelta dicho su código. Cómo funciona La manera en la que nos traemos el código es mediante el uso de la función BUSCARV desde vba. Las funciones que regularmente usamos en celdas, en vba las podemos obtener mediante Application.WorksheetFunction.

Transcript of Usar BUSCARV en formulario de Excel vba e identificar texto o números

Page 1: Usar BUSCARV en formulario de Excel vba e identificar texto o números

Usar BUSCARV en formulario de Excel vba e identificar texto o números

Este artículo podría considerarse uno más de los publicados con respecto al tema de la función BUSCARV, pero con detalles que no se habían tocado en otro artículo.

En el ejemplo adjunto tenemos una tabla que aloja el nombre del usuario o número telefónico y un respectivo código ficticio. También tenemos un formulario donde deberemos escribir el usuario o teléfono para traer de vuelta dicho su código.

Cómo funcionaLa manera en la que nos traemos el código es mediante el uso de la función BUSCARV desde vba. Las funciones que regularmente usamos en celdas, en vba las podemos obtener mediante Application.WorksheetFunction.

El primer paso será definir la matriz donde se buscarán los datos. Esto lo hacemos con la propiedad CurrentRegion del objeto Range, el cual tomará de referencia la celda A1.

Con la función IsNumeric se validará si el valor introducido en el formulario es número. En caso de ser núnero se hará una conversión al tipo Double para que el BUSCARV no genere al pensar que el valor es tipo texto.

En caso de no encontrar el valor en la tabla, se mostrará una etiqueta en el formulario indicando que el valor no fue encontrado (en una celda equivaldría al #N/A).

Page 2: Usar BUSCARV en formulario de Excel vba e identificar texto o números

Código vbaOption Explicit'Private Sub CommandButton1_Click()''Declaramos las variables.Dim Nombre As StringDim Rango As RangeDim NombreBuscado As VariantDim Titulo As String'Titulo = "EXCELeINFO"''En caso de error...On Error GoTo ErrorHandler'Set Rango = Sheets(1).Range("A1").CurrentRegion''Validamos si el valor es numérico.NombreBuscado = Me.TextBox1.ValueIf IsNumeric(NombreBuscado) Then NombreBuscado = CDbl(NombreBuscado)End If''Asignamos a la variable Nombre el resultado del BUSCARV.Nombre = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 2, 0)''Pasamos el resultado al cuadro de texto (TextBox).With Me .TextBox2.Value = Nombre .lblMensaje.Visible = FalseEnd With'Exit Sub''De haberse encontrado un error mostramos mensajes.ErrorHandler:If Err.Number = 1004 Then With Me .lblMensaje.Caption = "Email o teléfono no encontrado."

Page 3: Usar BUSCARV en formulario de Excel vba e identificar texto o números

.lblMensaje.Visible = True End WithElse MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, TituloEnd IfEnd Sub'Private Sub UserForm_Initialize()''Ocultamos controles.With Me .TextBox2.Enabled = False .lblMensaje.Visible = FalseEnd With'End Sub