Búsqueda con macros

Saludos.
Soy nuevo en macros en excel y espero ser lo más explicito posible. Quiero hacer una aplicación en VBA que haga lo siguiente:
* Al llamar a la macro con la combinacion de teclas (ctrl +i) si anteriormente no se ha llenado una celda no se ejecute la macro.
* q cuando presione una conbinacion de teclas (ctrl + i) se cargue un formulario, este formulario va a tener un listbox en donde se llenarán con los registros de la hoja 2 (en la hoja 2 se tendra los siguientes campos: Codigo, descripcion y monto) en el listbox solamente se mostrará el campo codigo y descripcion.
* Asi mismo este formulario tendra un textbox y un boton de busqueda, en donde en el textbox se ingresara el codigo o descripcion a buscar (se puede escribir una parte o toda la cadena a buscar en el listbox) cuando se digite en el textbox y se presione en buscar, se filtre en el listbox los registros q coincidan con el texto ingresado en el textbox.
* En los registros filtrados en el listbox se seleccione el registro y al hacer doble click o darle click al boton aceptar, en la hoja 1, se cargue la descripcion en la celda activa y el monto en otra celda especifica pero q queda en la misma fila (la columna no varía)
Muchas gracias

1 respuesta

Respuesta
1
Fredy,
Crea en la Hoja2 un Filtro Avanzado y luego usa estos códigos;
El codigo para que no se ejecute si una celda esta vacia:
Sub Formulario()
If Range("A2").Value <> "" Then
UserForm1.Show
Else: Exit Sub
End If
End Sub
---
El código para el TextBox y el Combobox es:
Private Sub CommandButton1_Click()
Calculate
Range("afiltrar") = TextBox1.Value
Range("F9").Select
Range("F8:G15").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"I6:J7"), CopyToRange:=Range("I8:J8"), Unique:=False
Range("I8").Select
Application.Goto Reference:="ListaNew"
ActiveWorkbook.Names("ListaNew").Delete
Range("I8").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="ListaNew", RefersToR1C1:= _
"=Hoja1!R8C9:R100C10"
Range("A1").Select
End Sub
Private Sub CommandButton2_Click()
Range("d3") = ComboBox1.Value
Unload Me
End Sub
------

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas