MACRO de Comparación de valor y posterior acción

¿Cómo están?
Les consulto por algo que deseo realizar que no se si es posible o no realizarlo desde VBA.
Tengo una base de datos donde extraigo DNI y numero de pedidos de clientes principalmente junto a otra información que la obtengo por fórmula en sus hojas respectivas ya sea que busque por DNI o por Numero de pedido (Hay una hoja para buscar por DNI y otro para buscar por Numero de pedido).
Lo que quiero hacer es que en una hoja de inicio, al colocar un dato o el otro en un textbox me lo compare con un rango de celdas con DNIs o con un rango con Números de Pedidos, y si lo que coloco me lo encuentra como DNI que me habrá la hoja de DNI, y si me lo encuentra como Numero de pedido que me abra la hoja de Numero de pedido, y si no es ninguno de los dos que aparezca un mensaje que no se encontró lo buscado.
¿Se puede realizar eso mediante un Macro o mediante código VBA?
(Perdón por la extensión de la explicación)

Respuesta
1

En una celda, por ejemplo la B3 de la hoja "inicio" vas a escribir el DNI o el número de pedido. En esa misma hoja pones un botón. Captura el dato y después presionas el botón.

Pon la siguiente macro en el botón. Cambia el nombre de las hojas por el nombre real de tus hojas. En esta parte:

    Set h1 = Sheets("Inicio")       'hoja inicio
    Set h2 = Sheets("DNI")          'hoja dnis
    Set h3 = Sheets("Pedidos")      'hoja con números de pedido

También cambia "B3" por la celda que desees, en esta línea:

    Set dato = h1.Range("B3")       'celda con el dato a buscar

La macro completa:

Sub Buscar_DNI_Pedido()
'Por.Dante Amor
    Set h1 = Sheets("Inicio")       'hoja inicio
    Set h2 = Sheets("DNI")          'hoja dnis
    Set h3 = Sheets("Pedidos")      'hoja con números de pedido
    '
    Set dato = h1.Range("B3")       'celda con el dato a buscar
    '
    If dato.Value = "" Then
        MsgBox "Escribe un dato en la celda"
        h1.Select
        dato.Select
    End If
    Set b = h2.Cells.Find(dato, lookat:=xlWhole)
    If Not b Is Nothing Then
        h2.Select
        b.Select
    Else
        Set b = h3.Cells.Find(dato, lookat:=xlWhole)
        If Not b Is Nothing Then
            h3.Select
            b.Select
        Else
            MsgBox "no se encontró lo buscado", vbExclamation
        End If
    End If
End Sub

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: Buscar_DNI_Pedido
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas