Resultado de BuscarV sobre ventana de mensaje

Compatibilidad: Excel 365 2021 2019 2016

Necesitamos buscar un dato en una hoja o un libro y el resultado de BuscarV sobre una ventana de mensaje en lugar de en una celda.

Resultado de BuscarV sobre ventana de mensaje

Disponemos en la hoja el origen de datos, donde la columna A incluye el nombre del cliente y la columna D el importe de la venta, necesitando buscar el nombre del cliente y obtener el resultado del importe.

ABCD
1NombreRefZonaImporte
2Cliente 10001N1500
3Cliente 20002S2450
4Cliente 30003S6800
5Cliente 40004N8200
6Cliente 50005O1470
7Cliente 60006N1740
  • CREAR MACRO

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

  4. Escribir el código de la macro:

    Sub MensajeBV()

    Dim cliente As String

    cliente = InputBox("Nombre del cliente:")

    nombre =Application.WorksheetFunction.VLookup(cliente,
    Hoja1.Range("A2:D7"), 4, False)

    MsgBox "El importe de las ventas a " & cliente &": " & nombre

    End Sub

  5. Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.

  • EJECUTAR MACRO

  1. Ir a: Cinta de opciones / Pestaña Desarrollador (en Excel 2013/2016/365) o Programador (Excel 2007 /2010) / Grupo: Código / Macros ; O también, pulsar el atajo de teclado Alt + F8. Mostrará la ventana de macros.

  2. Seleccionar la macro MensajeBV.

  3. Pulsar el botón Ejecutar. Para reproducir la macro.

  4. Ir a la ventana de mensaje / Ir a nombre del cliente / Escribir: Cliente 3. O el nombre del cliente deseado para buscar su importe.

  5. Pulsar el botón Aceptar. Cierra la ventana y muestra un mensaje con el resultado "El importe de las ventas a Cliente 3: 2450".

bucarv_mens01
  • OCULTAR EL ERROR #N/A

Si empleamos la función BUSCARV de Excel y el valor buscado está vacío o no coincide con el valor del origen de los datos, Excel muestra el error #N/A.

Modificar el código anterior por el siguiente que incluye corrección para los errores.

Sub MensajeBV2()

On Error GoTo MiError:

Dim cliente As String

cliente = InputBox("Nombre del cliente:")

If Len(cliente) > 0 Then

nombre = Application.WorksheetFunction.VLookup(cliente, Hoja1.Range("A2:D7"), 4, False)

MsgBox "El importe de las ventas a " & cliente & ": " & nombre & " €"

Else

MsgBox ("Escribir el nombre para buscar un cliente")

End If

Exit Sub

MiError:

If Err.Number = 1004 Then

MsgBox "El nombre del cliente no se encuentra registrado."

End If

End Sub

- VALOR BUSCADO VACÍO

Sí no escribimos el nombre del cliente, mostrará un mensaje:

bucarv_mens03

- VALOR BUSCADO NO COINCIDE

Sí el nombre del cliente no coincide con el origen de datos, mostrará un mensaje de aviso:

bucarv_mens02
Nivel de dificultad: Experto VBA-Macros Excel Experto VBA - Macros

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.