Imprimir diferentes hojas de un libro Excel desde la Hoja1

9 envíos / 0 nuevos
Último envío
Sergio
Imagen de Sergio
Offline
última acción: Hace 9 años 6 meses
alta: 21/02/2014 - 17:27
Puntos: 115
Imprimir diferentes hojas de un libro Excel desde la Hoja1

Hola, el problema es el siguiente: Dispongo de un libro Excel-2007 con cuatro hojas, la primera la llamo "Datos", la segunda es "Certificación" la siguiente la llamo, "Horas" y la última la llamo "graf_cer". Desde "Datos" he configurado una serie de botones desde los cuales intento imprimir las diversas hojas que la preceden, pero con el código que he implementado solo consigo imprimir la "Hoja Activa" es decir donde están los botones que es "Datos", y lo que pretendo es imprimir en función del botón la hoja que más me convenga. Podrías decirme cual sería el código ideal, para poder hacerlo. Te adjunto el código que dispongo, tengo que reconocer que a excepción del problema antes comentado, me imprime la hoja activa, muy bien centrada en la hoja y me gustaria que el nuevo código mantuviera esta premisa.Gracias.

Sub Imprimir_certificaciones()
 
'preparar la hoja para la impresión
With ActiveSheet.PageSetup
  .PrintArea = ""
  .Orientation = xlLandscape  ' xlPortrait
  .PaperSize = xlPaperA4 'formato A4
  .BlackAndWhite = False 'incluir colores o no
  .FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
  .FitToPagesTall = 1 'reduce el tamaño de la hoja (alto)
  .CenterHorizontally = False 'centrar horizontalmente
  .CenterVertically = False 'centrar verticalmente
End With
 
'imprimir las celdas seleccionadas (1 copia)
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
 
End Sub

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 22 horas 12 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Imprimir diferentes hojas de un libro Excel desde la Hoja1

Hola Sergio:

fíjate que en tu macro realizas una serie de acciones con la configuración de página de la hoja activa dentro de ese With ActiveSheet.PageSetup

En vez de ActiveSheet deberías referirte a la hoja que quieras modificar, simplemente cambiando ese With

por ejemplo para trabajar con la hoja Certificación

With Sheets("Certificación").PageSetup

...' esto igual que lo tienes

End with

 

Ahora vamos con la impresión

Al imprimir estás imprimiendo las hojas seleccionadas (seleccionadas en la ventana activa) con ActiveWindow.SelectedSheets.PrintOut

Pero si quieres imprimir otra hoja, utiliza el método printout de dicha hoja

por ejemplo, para imprimir la Hoja Certificación

Sheets("Certificación").PrintOut

 

------
Ya sé Excel, pero necesito más.

Sergio
Imagen de Sergio
Offline
última acción: Hace 9 años 6 meses
alta: 21/02/2014 - 17:27
Puntos: 115
Re: Imprimir diferentes hojas de un libro Excel desde la Hoja1

Una vez colocados los nuevos códigos me sigue dando error, en la primera línea del código

 

Sub Imprimir_certificaciones()
 
'preparar la hoja para la impresión
With Sheets("Certificación").PageSetup
  .PrintArea = ""
  .Orientation = xlLandscape  ' xlPortrait
  .PaperSize = xlPaperA4 'formato A4
  .BlackAndWhite = False 'incluir colores o no
  .FitToPagesWide = 1 'reduce el tamaño de la hoja (ancho)
  .FitToPagesTall = 1 'reduce el tamaño de la hoja (alto)
  .CenterHorizontally = False 'centrar horizontalmente
  .CenterVertically = False 'centrar verticalmente
End With
 
'imprimir las celdas seleccionadas (1 copia)
Sheets("Certificación").PrintOut copies:=1, collate:=True
 
End Sub

Que podemos hacer???

 

Sergio
Imagen de Sergio
Offline
última acción: Hace 9 años 6 meses
alta: 21/02/2014 - 17:27
Puntos: 115
Re: Imprimir diferentes hojas de un libro Excel desde la Hoja1

Disculpa falsa alarma, ahora si me imprime la hoja, el error estaba en que la hoja "Certificación", en realidad es "Certif" una vez arreglado me imprime la hoja, pero ahora el problema está en que, así como antes me cubría toda la hoja de papel, ahora solo se imprime en una parte del papel, con lo que me queda muy pequeño,los códigos de que obligan a imprimir en toda la hoja no me resultan ahora. Me puedes aconsejar. Gracias.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 22 horas 12 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
comprueba el área de impresión

Haz una prueba a mano, a ver qué es lo que imprime y cómo.

Comprueba el área de impresión.  Tu macro borra el área de impresión, así que imprimirá todo lo que tenga información en la hoja, mira a ver qu no tengas un espacio en la celda M1000

 

------
Ya sé Excel, pero necesito más.

Sergio
Imagen de Sergio
Offline
última acción: Hace 9 años 6 meses
alta: 21/02/2014 - 17:27
Puntos: 115
Re: Imprimir diferentes hojas de un libro Excel desde la Hoja1

El problema lo he resuelto amedias, verás he colocado el código siguiente y me imprime perfectamente, bien centrado tanto horiz como vertical, pero me saca una segunda hoja en blanco, el código es:

Sub Imprimir_horas()

'preparar la hoja para la impresión
With Sheets("Horas").PageSetup
  .PrintArea = ""
  .Orientation = xlLandscape  ' xlPortrait
  .PaperSize = xlPaperA4 'formato A4
  .BlackAndWhite = False 'incluir colores o no
   Zoom = False
     .FitToPagesTall = 2  ' (Fit) Encaja Páginas alto                 ' si este parametro le pongo 1 me saca la impresión en pequeño
     .FitToPagesWide = 1  ' (Fit) Encaja Pagina Ancho
 
  .CenterHorizontally = False 'centrar horizontalmente
  .CenterVertically = False 'centrar verticalmente
End With
 
'imprimir las celdas seleccionadas (1 copia)
Sheets("Horas").PrintOut Copies:=1, collate:=True
 
End Sub

Pero ahora tengo otro problema que te comento a continuación, al tratarse de un diagrama de barras o de Gannt, lo que pretendo es lo siguiente y siempre con códigos VBA,

 

Tengo una línea de una hoja Excel-2007, con una serie de números, y quisiera que con una macro de VBA pudiera en otra hoja del mismo libro que se me sombrearan. Me explico

 

Hoja1 y en la celda A1=10; B1=15;C1=20;D1=50; et etc

 

Hoja2 y en la celda, por ejemplo: D6=sombra;D7=sombra;D8=sombra;D9=sombra; etc,etc.

Me puedes ayudar a resolver este enigma. Gracias



pacomegia
Imagen de pacomegia
Offline
última acción: Hace 22 horas 12 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: Imprimir diferentes hojas de un libro Excel desde la Hoja1

Sobre la impresión: MIra qué es lo que tienes al final de la impresión. Excel está detectando algo más abajo de tus datos (pueden ser fórmulas que den como resultado "", pero Excel las considera como celdas con contenido, por eso imprime una segunda página aparentemente en blanco.

Otra opción es decirle que sólo imprima la primera página, modifica la línea donde imprimes

Sheets("Horas").PrintOut From:=1, To:=1, Copies:=1, collate:=True

 

Sobre el sombreado de celdas: mi consejo es que no inventes la rueda, utiliza formatos condicionales.

 

------
Ya sé Excel, pero necesito más.

Sergio
Imagen de Sergio
Offline
última acción: Hace 9 años 6 meses
alta: 21/02/2014 - 17:27
Puntos: 115
Re: Imprimir diferentes hojas de un libro Excel desde la Hoja1

Perfecto el código me ha funcionado a las mil maravillas. Gracias

Respecto al tema del sombreado de celdas, me gustaría poder llegar a conseguirlo, me puedes ayudar. Gracias

Carlosperu (no verificado)
Imagen de Carlosperu
Boton Imprimir

he creado un furmulario en VBA excel quiero agregarle un boton de imprimir, quiero que me imprima la segunda hoja por que la primera hoja esta mi boton para aceder al formulario en VBA.

mi correo sotomayor.carlos01@gmail.com

Private Sub CommandButton6_Click()


Dim pagina As String
pagina = InputBox("Ingrese número de pagina a imprimir", "IMPRIMIR")

If pagina = "1" Then

" aca es el problema , no se que estoy haciendo mal? me segunda hoja se llama facility DB.
Sheets("Facility DB").Select  'se situa en la hoja2

ActiveWindow.SelectedSheets.PrintOut Copies:=1

Else
MsgBox "Ese número de página no existe", vbExclamation, "PAGINA INCORRECTA"
End If


End Sub

AdjuntoTamaño
File mo_facility_vba_2017_2.xlsm185.39 KB