Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

domingo, 13 de mayo de 2018

Imprimiendo Hojas (Worksheets) en VBA

Hola 

Estos días me estoy enfocando más en programación, algo que no he cubierto mucho a lo largo de los últimos 3 años, ya que a veces he pensado que las macros son en ocasiones sobreutilizadas, y por eso no le dediqué mucho tiempo.

Pero ahora me gustaría cubrir la programación en VBA más.

Hoy hablaré de cómo imprimir hojas usando VBA.

En Excel cuando se hace clic en el botón Imprimir, Excel no imprime las hojas que están ocultas, a menos que lo hagamos aa través de VBA. 

Aquí dejo una lista de la mayoría de los ejemplos de impresión de hoja mediante Excel VBA, Quizás antes de leer este tutorial, necesitemos repasar la diferencia entre las hojas de trabajo (Worksheets) y hojas (Sheets). 

Para ello pulsa en el siguiente enlace:
Hojas de trabajo (Worksheets) vs Hojas (Sheets) en Excel VBA

Bueno, pues volviendo a la impresión en VBA, veamos los ejemplos más útiles.

La sintaxis de PrintOut es la siguiente:

expression.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas)


1.  Imprimiendo Worksheets exactamente en una hoja


'Imprimimos Hoja1 exactamente en una hoja de ancho y de alto
With Worksheets("Hoja1").PageSetup
    .Zoom = False
    .FitToPagesTall = 1
    .FitToPagesWide = 1
End With


2.  Imprimiendo Worksheets con comentarios

Sub Imprimir_Hojas_con_comentarios()
    'Muestra todos los comentarios en la impresión
    Application.DisplayCommentIndicator = xlCommentAndIndicator
    With ActiveSheet
        'Tal y como están mostrados en la hoja
        .PageSetup.PrintComments = xlPrintInPlace
        'Imprime la Hoja Activa.
        .PrintOut
    End With
End Sub


3.  Imprimiendo sólo las Worksheets que están ocultas

Sub Imprimir_solo_Hojas_Ocultas()
    Dim Vis As Long
    Dim hj As Worksheet
    For Each hj In ActiveWorkbook.Worksheets
        With hj
            Vis = .Visible  
            'comprobamos si la hoja no está oculta en cuyo caso Vis tomará el valor -1
            If Vis >= 0 Then
                .Visible = xlSheetVisible
                .PrintOut
                .Visible = Vis
            End If
        End With
    Next hj
End Sub


4.  Imprimiendo todas las Worksheets ocultas y visibles

Sub Imprimir_Hojas_Visibles_Y_Ocultas()
    Dim Vis As Long
    Dim hj As Worksheet
    For Each hj In ActiveWorkbook.Worksheets
        With hj
            Vis = .Visible
            .Visible = xlSheetVisible
            .PrintOut
            .Visible = Vis
        End With
    Next hj
End Sub



5.  Imprimiendo múltiples Worksheets


'Imprimiendo la hoja2 y la 3
Worksheets(Array("Hoja2", "Hoja3")).PrintOut


6.  Imprimiendo todas las Worksheets

Worksheets.PrintOut


7.  Imprimiendo todas las Hojas que son tipo Gráfico (no los gráficos en hojas)

Charts.PrintOut



8.  Imprimiendo todo el libro de trabajo (Workbook)

'Imprimir todo el libro de trabajo activo
ActiveWorkbook.PrintOut



''Imprimir todo el libro de trabajo donde se encuentra el código VBA
ThisWorkbook.PrintOut


9. Imprimir una hoja específica
'Imprimir sólo "Hoja2"
Sheets("Hoja2").PrintOut


10. Imprimir sólo la hoja activa (Active Sheet)

ActiveSheet.PrintOut


11. Imprimir las hojas seleccionadas

ActiveWindow.SelectedSheets.PrintOut


12. Imprimir sólo lo seleccionado

Selection.PrintOut


13. Imprimir un rango (Range)

'Imprimir Range A1:H6
Range("A1:H6").PrintOut


14. Vista preliminar de una hoja

'Vista preliminar de la hoja activa
ActiveSheet.PrintOut preview:=True




Te ha gustado el artículo?

No te olvides de mostrar tu gratitud hacia el autor (yo) mediante una de las 2 siguientes acciones:

1. Puedes dejar una donación pinchando en la siguiente imagen.

PayPal. La forma rápida y segura de pagar en Internet


2. Puedes recomendar el artículo en Google haciendo clic en g+1 (justo después del artículo), también puedes compartirlo en Facebook, y/o dejar comentarios.

Quieres aprender más en Excel o tienes algún problema que necesita solución?

Puedo ofrecer servicios de consultoría así como cursos personalizados online. Mírate el siguiente enlace si estás interesado/a.




El Sabio de Excel busca colaborades del blog

Si te interesa compartir tu conocimiento sobre Excel de tal manera que puedas ayudar a otras personas, por favor mándame un email a elsabiodeexcel@gmail.com


Subscríbete y recibe todos las entradas por email


Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.

O sígueme por las redes sociales