Apr 19 2023 12:10 PM
Saludos. Tengo un formulario de factura ya impreso; los campos como fecha, cliente, producto, etc los lleno por medio de una hoja de calculo que replica al formulario impreso en todos sus campos incluyendo los encabezados. Esto con la finalidad de que el usuario comprenda con mayor facilidad lo que va a imprimir. Lo que deseo es que al momento de imprimir la hoja, no se impriman los encabezados, ya que están reimpresos en el formulario, que solo se impriman aquellos valores que son variables. Esto lo estoy haciendo con una macro que desarrolle con el asistente de Excel, que lo que hace es colorear de blanco los encabezados, imprimir y regresar los encabezados a su color original. Esta es la macro:
Sub Macro1()
'
' Macro1 Macro
'
'
Range( _
"AC14,B12:K12,L12:O12,P12:S12,T12:Y12,B14:Y14,B16:D16,E16:Q16,R16:U16,V16:Y16,H17:P17,H18:P18,H19:P19,H20:P20,H21:P21,H22:P22,H23:P23,H24:P24,H25:P25" _
).Select
Range("H25").Activate
ActiveWindow.SmallScroll Down:=2
Range( _
"AC14,B12:K12,L12:O12,P12:S12,T12:Y12,B14:Y14,B16:D16,E16:Q16,R16:U16,V16:Y16,H17:P17,H18:P18,H19:P19,H20:P20,H21:P21,H22:P22,H23:P23,H24:P24,H25:P25,H26:P26,V17:Y17,V18:Y18,V19:Y19,V20:Y20" _
).Select
Range("V20").Activate
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 16
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 18
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 21
Union(Range( _
"M36:O36,M37:O37,M38:O38,M39:O39,V32:Y32,V33:Y33,V34:Y34,V35:Y35,V36:Y36,V37:Y37,V38:Y38,V39:Y39,Q41:R41,AC14,B12:K12,L12:O12,P12:S12,T12:Y12,B14:Y14,B16:D16,E16:Q16,R16:U16,V16:Y16,H17:P17,H18:P18,H19:P19,H20:P20,H21:P21,H22:P22,H23:P23,H24:P24,H25:P25" _
), Range( _
"H26:P26,V17:Y17,V18:Y18,V19:Y19,V20:Y20,E27:F27,S27:T27,U27,V27:Y27,M32:O32,M33:O33,M34:O34,M35:O35" _
)).Select
Range("Q41").Activate
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
With Selection.Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 4.99893185216834E-02
End With
End Sub
Puede mejorarse? o mejor aun, crear una que solo imprima aquellas celdas predefinidas por el ususario. Gracias de antemano.
Apr 20 2023 03:21 AM - edited Apr 20 2023 03:25 AM
Si entiendo correctamente, lo que quieres es imprimir solo ciertas celdas de una hoja de cálculo que contienen valores variables, mientras que los encabezados y otros elementos estáticos ya están impresos en un formulario. Una forma de hacerlo es configurar un área de impresión personalizada que incluya solo las celdas que deseas imprimir.
Aquí te explico cómo hacerlo:
Ahora, cuando imprimas la hoja de cálculo, solo se imprimirán las celdas seleccionadas. Si deseas cambiar el área de impresión más tarde, simplemente repite los pasos anteriores y selecciona las nuevas celdas que deseas imprimir.
Espero que esto te ayude.