Pegar datos de un mismo rango de celdas de varios libros en una sola hoja excel

Trabajo con libros excel que tienen varias páginas cada uno. En una de esas páginas hay datos numéricos "puros" y datos numéricos calculados con fórmulas. El número y encabezado de las columnas es siempre el mismo pero el número de filas es variable. Necesitaría unir todos los datos de esa página de numerosos libros en una sola hoja.

No acabo de dar con la macro que me realice la función de forma correcta

Puedo indicarles en qué celda debe empezar a copiar, pero no en qué celda debe parar.

Los datos que pegue pueden ser sólo datos, no es necesario que pegue las fórmulas (además puede que no funcionaran al estar vinculadas a otra hoja distinta)

1 respuesta

Respuesta
1

Hay muchos detalles en esta tarea para tener en cuenta a la hora de realizar la macro. Entiendo que ya la tenés avanzada y necesitas ajustar algunas instrucciones como las de encontrar fin de rangos.

Te dejo algunas instrucciones para esto. Podés encontrar otras en la sección Macros de mi sitio (pág 5):

1- Aquí se guarda en una variable la última fila con datos, imaginando que estás recorriendo la col A

finfila = Range("A" & Rows.Count).End(xlup).Row

2- En esta instrucción se te guarda en la variable la primer fila libre para el pegado:

libre = Range("A" & Rows.Count).End(xlup).Row +  1

3- Para pegar solo datos, sin fórmulas, selecciona la celda destino y a continuación el pegado especial:

  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False 
Espero te sirvan para avanzar. Si luego te faltan algunas otras instrucciones por favor deja 'nuevas' consultas indicando cada tarea. En lo posible con sus referencias para así enviarte código ajustado.

Sdos

Elsa

Muchas gracias por su rápida respuesta. Olvide comentarle que en ocasiones aparecen filtros aplicados sobre cada columna de forma que sólo consigo seleccionar copiar y pegar los datos filtrados, no apareciendo los datos que oculta el propio filtro. Yo necesitaría que aparecieran todos los datos no solamente los filtrados por algún motivo. Hay alguna forma de evitar / ignorar los filtros sin tener que abrir archivo por archivo. Reitero mis gracias

En ese caso tendrás que quitarle el filtro.

La siguiente macro evalúa si la hoja tiene la hoja filtrada y de ser así se los quita en col F (ajusta a tu modelo el nro de col).

Esta acción no quitará los filtros (las flechitas en la fila de títulos) sino solo mostrará todos los datos.

Sub quitafiltros()
'reconocer si la col tiene filtro aplicado
If ActiveSheet.FilterMode = True Then
'quita filtro a la col F (6)
    ActiveSheet.Cells.AutoFilter Field:=6
End If
End Sub

Si en cambio no puedes determinar qué columna o columnas están filtradas, deberás quitar el filtro sin indicarle columna:

ActiveSheet. Cells. AutoFilter

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas