Error Excel:"¿Paste" de muchas? Filas

En mi macro con autofiltro sobre EXCEL (el que ahora sí funciona gracias a la ayuda de los expertos de este foro -elsamatilde-) voy sacando datos (3 columnas filtradas) de 4 ficheros origen Excel (fich1, fich2, fich3, fich4) y los copio en una página de otro fichero xls (fichero destino) secuencialmente sobre una única columna.
En la macro he generado un bucle, así que lo hace de forma automática y exactamente igual para cada uno de los ficheros (son de un tamaño casi semejante):
1- Selecciono las 3 columnas en el fichero origen para copiar
Range("E:E,K:K,L:L"). Select 'Copia las 3 columnas autofiltradas completas
Selection. Copy
2- Selecciono una CELDA en el fichero destino para pegar
3- Pego el área seleccionada (3 columnas) sobre el fichero destino
Windows("Libro1.xls").Activate
ActiveSheet. Paste
Esto lo hace sin problemas con el fich1, fich2 y fch3, PERO cuando llega al fich4 se la pega y da un error:
"""
Se ha producido el error "1004" en tiempo de ejecución
No se puede pegar la información ya que el área Copiar y el área de pegado tienen formas distintas. Intente lo siguiente:
- Haga Click en una única celda y luego elija pegar
- Seleccione un rectángulo con el mismo tamaño y forma y luego elija pegar
""""
He comprobado que no es algo particular del fich4, porque cambio de orden los ficheros y (casi) siempre se la pega en la cuarta ejecución del bucle EXCEPTO cuando pongo el fichero más grande (con más filas autofiltradas) el último del bucle (en cuarta posición).
Mi pregunta: ¿Hay algún tipo de limitación en Excel o VBA para que no se pueda ejecutar un bucle de esas características?. El número de filas con datos antes de ejecutar la cuarta pasada es de alrededor de 10.000 (tampoco son tantas !). Y lo que no parece comprensible es que las áreas de copiado y pegado sean diferentes cuando se trata de un bucle que hace exactamente lo mismo N veces (en este caso N=4). Se puede cambiar/modificar/ampliar esa limitación?
Cuando pongo el fichero más grande en cuarta posición, al llegar a la cuarta pasada (después de ejecutarse 3 veces) hay alrededor de 7.000 filas en la columna destino (luego se añaden las 3.800 de este último fichero) y en este único caso NO da error.
¿Alguna sugerencia?.

1 respuesta

Respuesta
1
Al seleccionar toda la columna aún estando filtrada, estas seleccionando todas las celdas en blanco que quedan por debajo del ultimo registro, eso da lugar a que se de el caso que el numero de registros (incluido celdas en blanco) sea mayor que el espacio que queda para pegar y te genera un error.
Para evitar esto prueba a poner esta instrucción antes del copy, suponiendo que fuera la columna E la que se ha de copiar, este código hará que seleccione solo las celdas con valores, y solo las visibles (las filtradas).
Columns("E:E").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection. Copy

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas