Extraer filas a otras hojas mediante macro

HOLA AMIGOS, gracias de antemano por vuestras respuestas. Tengo un problemilla que tengo que solucionar cuanto antes. En un base de datos como esta.
Nombre edad ingresos
Pepito 31 1000
Juanito 45 1120
Jorgito 18 850
Manolito 34 1300
Querría extraer mediante una macro y en hojas independientes las filas completas de aquellos que son personas mayores de 30 años y en otra hoja aquellos que ganan más de 1100. ¿Me podéis ayudar?
Todo esto en una base de datos de 4000 personas.
Un saludo

1 Respuesta

Respuesta
1
Q onda ruben...!
te paso el código... esperame tantito
Este es el código...
Dim celda As Range
Private Sub CommandButton1_Click()
Sheets.Add After:=Sheets(Sheets.Count)
For Each celda In Sheets(1).Range("b2", Range("b2").End(xlDown))
If celda > 30 Then
celda.EntireRow.Copy
Sheets(Sheets.Count).Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial
End If
Next
Sheets.Add After:=Sheets(Sheets.Count)
For Each celda In Sheets(1).Range("c2", Range("c2").End(xlDown))
If celda > 1100 Then
celda.EntireRow.Copy
Sheets(Sheets.Count).Range("a65000").End(xlUp).Offset(1, 0).PasteSpecial
End If
Next
End Sub
Tienes que cambiar las negritas, el 1 por el numero de hoja en que esta tu base (o bien el nombre pero entre comillas) los b2 por la celda donde empiezan tus datos de edad y los c2 por la celda donde empiezan tus datos de ingreso...
¿Cualquier duda me dices, va?...
Disculpa, pero creo que mi torpeza no me deja ejecutar la macro
Me aparece error en :
For Each celda In Sheets(1).Range("b2", Range("b2").End(xlDown))
For Each celda In Sheets(1).Range("c2", Range("c2").End(xlDown))
Ademas de esto, ¿funcionaria si hay un hueco en blanco'?
¿Es posible enlazarlo con un botón?
Un saludo y muchísimas gracias
Emmmmh... bueno de hecho te pase el código con todo y el botón, pues yo lo programe en un botón de comando para probarlo y funciono muy bien.
Oye, si cambiaste el 1 por el numero de hoja donde están tus datos... sabes que mejor cambialo por el nombre de la hoja tal cual pero entre comillas
si quieres agregar el botón ve a la ficha programador y en el icono insertar de los controles activex eliges botón de comando y lo dubujas sobre la hoja, después das doble click sobre el e insertas lo que te pase... a excepción claro de
Private Sub CommandButton1_Click()
End Sub
Que te aparece en automático, después regresas a excel y desactivas el modo de diseño.
Por lo del error... en efecto no deben haber espacios en blanco. Pero si los hay no hay problema, aquí lo que ocurre es que el .End(xlDown) lo que hace es buscar la ultima celda con datos a partir de la referencia y se detiene en cuanto hay un espacio en blanco... lo único que tienes que hacer es mejor cambiarlo por:
Range("b65000").End(xlUp)
De esta manera buscara de abajo hacio arriba la ultima celda con datos.
Si aun tienes problemas puedes mandarme el archivo a [email protected] pero por favor no lo mandes comprimido
salu2x!
Te mando por correo el archivo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas