Ventana emergente para ingresar un código y busque Excel vba

Tengo este consulta y no se si se podrá, maso menos va así:

Tengo 2 hojas: Pirncipal y Presupuesto.

En la Principal, tengo un botón que me debe mostrar una ventana emergente para yo ingresar un código y me muestre los datos de ese código en el mismo emergente.

En el Presupuesto, tengo mis datos que debo mostrar:

La funcionalidad seria:

  1. Click en Buscar
  2. El sistema muestra una ventana emergente.
  3. El usuario ingresa el código y da click en GO.
  4. El sistema muestra los datos en el mismo emergente.
  5. El usuario cierra la ventana emergente.
  6. El sistema borra los datos del emergente para que cuando el usuario vuelva a buscar, todo este para una búsqueda nueva.

3 Respuestas

Respuesta
1

Para crear una ventana "emergente" como la que pides es necesario crear un userform.

Realiza los siguientes pasos:

  • Pon la siguiente macro en un módulo
  • Sub abrir()
        UserForm1.Show
    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: abrir
    10. Aceptar.
    11. Para ejecutarla dale click a la imagen.
  • Pon el siguiente código en un userform
  • Private Sub CommandButton1_Click()
    'Por Dante Amor
        Label3.Caption = ""
        Label5.Caption = ""
        If TextBox1.Value = "" Then
            MsgBox "Captura un código"
            TextBox1.SetFocus
            Exit Sub
        End If
        '
        Set b = Sheets("Presupuesto").Columns("A").Find(TextBox1.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            Label3.Caption = b.Offset(0, 1)
            Label5.Caption = b.Offset(0, 2)
        Else
            MsgBox "El código no existe"
        End If
    End Sub
    '
    Private Sub UserForm_Activate()
        Label3.Caption = ""
        Label5.Caption = ""
    End Sub
  • Instrucciones para userform

    1. Abre tu hoja de excel
    2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
    3. En el menú elige Insertar / UserForm
    4. Le das dobleclik en cualquier parte del Panel del userForm, en el panel en blanco que se abre pegas la macro
    5. En el panel del UserForm creas un Textbox.
    6. Creas 5 Label, el Label3 será para mostrar el presupuesto y el Label5 será para mostrar la fecha.
    7. También creas un CommandButton


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda
Respuesta
1

:)

Fíjate si algo así te puede servir:

  • Ejemplo624

Saludos, Mario (Cacho) Rodríguez

:)

Respuesta
1

Prueba con esta macro, este es el resultad, para mayor facilidad me permite cambiar el textbox por un combobox

y esta es la macro

Private Sub ComboBox1_Change()
Set DATOS = Range("DATOS")
INDICE = ComboBox1.ListIndex + 1
With DATOS
    Label3 = .Cells(INDICE, 2)
    Label4 = .Cells(INDICE, 3)
End With
Set DATOS = Nothing
End Sub
Private Sub UserForm_Initialize()
Set H1 = Worksheets("PRESUPUESTO")
With H1.Range("A1").CurrentRegion
    R = .Rows.Count:    C = .Columns.Count
End With
Set DATOS = H1.Range("A2").Resize(R - 1, C)
With DATOS
    MATRIZ = .Columns(1)
    ComboBox1.List = MATRIZ
    .Name = "DATOS"
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas