Copiar informes

Hola experto
Tenemos en mi empresa un modulo de gestión basado en excel . Ah´´i está todo.
Pero para presentar a los socios únicamente presentamos unos resúmenes, que hasta ahora imprimíamos y les dábamos copia (del resumen) pero ahora nos piden que se lo enviemos por mail y en excel . La idea es cómo conseguir una macro que me copie un informe, una vista de pantalla. He probado con copiar valores (no me interesa que se sepan las sumas ni fórmulas), pero entonces me falla el formato. No sé que hacer. Si hubiera una macro que me permitirá copiar sólo lo que se ve (lo demás oculto, sería mi mejor regalo de navidad.

1 respuesta

Respuesta
1
Esto hay varias formas de hacerlo. La primera de ellas que es la más fácil, es como bien dices copiar como valores y luego copiar formatos. Esta opción esta dentro de menu de pegado especial.
Eso ya lo he hecho, pero me copia tanto las filas mostradas como las ocultas, y además, no lo deja igual. Luego hay que retocar el informe.
Estoy buscando una macro que me permita hacer nuevo excel en la que aparezca, únicamente, lo que sale por la impresora al dar a imprimir.
Para no copiar la celda ocultas una vez sombrado el rango a copiar presiona F5 (Ir a ) utiliza la opción de "Especial" "Solo celdas visibles" y con esto debe estar solucionado el prioblema.
Una vez que estemos seguro de que la ruta funcione te mostrare como utilizar el grabador de macros para que construyas el macro justo a tu medida
Ah, disculpa, ya lo conseguí. Eliminé las celdas convinadas y lo he conseguido.
Entonces, la macro que seria algo así
(Grabar macro)
Selecciono el informe
f5
Control copy
Hoja nueva
Control paste
Control paste especial formatos
Y ya está, ¿no?
Perdón por el bombardeo, pero me encuentro con un problema:
Genero la macro, pero al intentar ejecutarla de nuevo me da error.
La razón es fácil (el informe consta de tres hojas, por lo que tengo que hacer tres veces la operación que me has enseñado. El problema es que al ir a `pegar la segunda hoja visual basic me busca el archivo HOJA1 (que era el nuevo archivo que se me ha abierto al hacer la macro).
De alguna manera de debería acumular el nombre del libro o permitir ponerle nombre...
Presionando f5 me selecciona únicamente lo que quiero, pero no me deja copiar ni pegar.
Supongo que si supiese de macros (sólo se maquear macros que ha hecho otro) podría hacer algo...
Pero intuyo que vamos por el buen camino...
(El mensaje que aparece cuando no me deja copiar es " imposible cambiar parte de una celda convinada
Mi recomendación es que no te compliques. Sencillamente graba la Macro que lo haga todo. Es decir, copias la primera hojas, te cambias, copias la segundo, etc...
Así, con una sola ejecución te mandara todo el informe.
Sí, eso intento, pero me da error la macro.
Una vez he grabado la macro (todo ha ido bien), intento ejecutarla.
Entonces me da el error.
El error me lo da al haber guardado VB el nombre de la segunda hoja de calculo como LIBRO1, que es el que automáticamente da excel para los nuevos libros, y el libro que se me ha abierto al ejecutar la macro es el LIBRO2. Te reproduzco la macro
Application.Goto Reference:="costes"
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Sheets("Hoja1").Select
Sheets("Hoja1").Name = "SITUACION PREV"
Range("B25").Select
Windows("Control Cornellà II.xls").Activate
Application.Goto Reference:="resumen"
Selection.SpecialCells(xlCellTypeVisible).Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro1").Activate
Aquí es donde me da el error, ya que el libro1 no existe. Está el libro2, 3 o 4.
Por eso necesitaría poder cambiarle el nombre o buscar una solución alternativa.
Ese error lo puedes romper grabando el nuevo libro con un nombre. Por ejemplo: abres un nuevo libro donde pegaras los reportes. Los guardas con un niombre, por ejemplo: "Informes.xls" y luego ejecutas el resto del Macro. Esto evitara que te cambia de nombre cada vez que creas uno. Importante: En el lugar donde lo guardes no debe haber otro libro con el mismo nombre. Es decir, si esto es un proceso que ejecuta constantemente, antes de grabarlo debes verificar que el anterior se haya borrado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas