Macro que busque los datos en otra hoja(mismo libro) y copie en otra.

Es urgente alguien me puede ayudar estoy elaborando una bse de datos en excel(2007).

1-El libro contiene lo siguiente: 2 hojas (consulta, base de datos).

Quisiera insertar un TextBox en el cual ingresar los datos a buscar, 2 combobox (1. La lista de campos. 2 que sea una lista de comparación

Y un CommandButton.

La búsqueda la tiene que hacer en la hoja "base de datos", luego me copie los datos en contrados y me los lleve a la hoja de consulta..(en la hoja de consulta no quiero que me guarde datos solo que me los muestre según los criterios de búsqueda)

La macro quisiera que me mostrara los datos por edad-nivel académico-activo o inactivo.

Esta es la tabla de datos esta horizontalmente A-B-C-D- llegan hasta la columna R.

CÓDIGO
Nombre
DUI
EDAD
Lugar y fecha de nacimiento
Estado civil
Teléfono
Dirección actual
Departamento
Cargo
Licencia de conducir
Licencia portación de arma
Nombre de personas que dependen económicamente
EDAD
Parentesco
Ocupación
Nivel académico
ACTIVO / INACTIVO

**ej.buscar cuantos estudiantes menores de 15 años que sean estudiantes activos.

***estado civil de los trabajadores

***por departamento..

Espero me doy a entender, por favor ayuda. Les dejo mi correo por si me pueden enviar algo [email protected]

1 Respuesta

Respuesta
1

Prueba la siguiente macro, para ver si es lo que necesitas.

Para ejecutarla, tienes que hacer lo siguiente:

1. Ir al menú de macros con Alt + 11

2. Insertar Userform

3. Crear un combobox llamado ComboBox1

4. Crear un botón de comandos llamado buscar

5. Crear un listbox llamado ListBox1

6. Crear un botón de comando llamado CommandButton2

7. Crear un botón de comando llamado CommandButton1

8. Le das doble click en la cualquier parte del userform (no en ningún objeto)

9. Copias la macro:

--------

Public wcolumna As Long
Private Sub Buscar_Click()
wcolumna = 1
Sheets("Base de datos").Activate
Range("A1").Select
If Range("A1") = ComboBox1.Value Then
Range("A1").Select
wcolumna = 1
Else
wcolumna = Cells.Find(What:=ComboBox1, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Column
Range("A1").Select
Cells.Find(What:=ComboBox1, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End If
ComboBox1.SetFocus
ListBox1.Clear
j = 1
For i = 1 To 10
ActiveCell.Offset(j, 0).Select
zvalor = ActiveCell
With Me.ListBox1
.AddItem zvalor
End With
Next
ListBox1.SetFocus
'Exit Sub
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub CommandButton2_Click()
Dim wlinea As Long
Dim Cell As Range
Dim zvalor As String
Sheets("Base de datos").Activate
Cells(1, wcolumna).Select
j = 1
For i = 1 To 10
ActiveCell.Offset(j, 0).Select
zvalor = ActiveCell
If zvalor = ListBox1 Then
wlinea = ActiveCell.Row
Sheets("base de datos").Select
ActiveSheet.Range(Cells(wlinea, 1), Cells(wlinea, 18)).Copy
Sheets("consulta").Select
Cells(wlinea, 2).Select
ActiveSheet.Paste
End If
Sheets("base de datos").Select
Next i
End Sub
Private Sub UserForm_Activate()
Sheets("Consulta").Select
Range("A:R").Clear
Sheets("Base de datos").Select
ActiveSheet.Range("A1:R1").Copy
Sheets("Consulta").Select
Range("B1").Select
ActiveSheet.Paste
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Me.ComboBox1.RowSource = "a1:a18"
ComboBox1.SetFocus
End Sub

-----

Por otra parte te recomiendo usar una tabla dinámica, te permite filtrar por todos los campos de tu base de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas