Copiar hojas

Estimadísimo, tengo "otro" inconveniente y nuevamente me dispongo a abusar de vuestra predisposición. Tengo unas planillas con macros, en determinado momento cuando necesito salir de ella, debo realizar una exacta copia de una hoja en particular. Para ello tengo un botón que ejecuta una rutina que a continuación se describe (cabe aclarar que mis conocimientos son limitados en cuanto a la programación de VB, es por ello que quizás esta rutina sea algo rara, pero funciona!, salvo en el copiado y a ello apunta mi problema)...
Public Sub CopiarFactura()
Dim ArchivoFacturaN As Long
ActiveSheet.Range("B2:U40").Copy
ArchivoFacturaN = Sheets("Aux1").Range("C8").Value
Workbooks.Open "\\server\privado\administracion\facturas\vauf0202.xls" ActiveWorkbook.SaveCopyAs "\\server\privado\administracion\facturas\" & ArchivoFacturaN & ".xls"
Workbooks("vauf0202.xls").Close SaveChanges:=False
Workbooks.Open "\\server\privado\administracion\facturas\" & ArchivoFacturaN & ".xls"
ActiveSheet.Paste Destination:=Worksheets("FactE").Range("B2")
End Sub
Todo funciona bien, salvo hasta el momento de "PEGAR" lo seleccionado, ya que se detiene el proceso y sale el siguiente mensaje..."Se ha producido el error '1004' en tiempo de ejecución. Error en el método Paste de la clase Worksheet."
Cabe aclarar que dentro del rango seleccionado, hay filas y columnas con distintos alto y anchos, como así también celdas combinadas.
No he profundizado en la explicación de las sentencias, dado que son simples y deben ser clara a vuestro entender, si ello no fuese así, lo aclararé.
Desde ya, una vez más muchas gracias!
Respuesta
1
Es así. El pegado de rangos con celdas combinadas o sobre celdas combinadas suele generar conflictos.
En tu caso particular, pareciera que necesitas el formato de la hoja "FactE" del archivo "vauf0202.xls" (el que a su vez guardas como copia con un nombre tomado de la hoja activa)
Prueba eliminando las celdas combinadas tanto en hoja origen y destino.
Recuerda que sí puedes pegar celdas combinadas en una hoja nueva. Así que, tal vez, solo debas eliminar las celdas combinadas y/o formatos en la hoja de destino.
El resto del código parece funcionar correctamente, pero controla que los movimientos de apertura, grabado y cierre de archivo no eliminen lo que copiaste en la memoria con la instrucción:
ActiveSheet. Range("B2:U40"). Copy
Personalmete prefiero ubicar los procesos de copia y pegado, lo más cercanos posible.
Espero que esto te ayude.
Un gran abrazo!
Fernando

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas