Jump to content

[Solucionado] Macro para Modificar Area de Impresion...


Recommended Posts

Señores, no soy muy bueno con las macros pero espero me puedan ayudar

Tengo un libro por el momento con 5 hojas, estas hojas tienen el mismo formato, ya que cada hoja contiene el avance de trabajo de cada area y el numero de AREA es el nombre de la hoja.

La idea que tengo es programar dos rangos distintos de impresion, en diferente tamano de hoja, esta idea trate de hacerla grabando y modificando la siguiente MACRO en la primera hoja "2690-01", pero al copiarla a las demas hojas, no me reconoce el rango de impresion.

Adjunto Archivo con ejemplo (VER PRIMERA HOJA DONDE SE EXPLICA CON GRAFICOS LO QUE SE DESEA HACER)

¿como modifico esta macro, para que me pueda reconocer las areas de impresion de cada hoja automaticamente?

Sub REPORT_PJ()

' REPORT_PJ Macro

' Macro recorded 8/26/2009 by

ActiveSheet.PageSetup.PrintArea = "PRINT_2690_02"

With ActiveSheet.PageSetup

.PrintTitleRows = "$1:$9"

.PrintTitleColumns = ""

End With

ActiveSheet.PageSetup.PrintArea = "PRINT_2690_02"

With ActiveSheet.PageSetup

.LeftHeader = ""

.CenterHeader = ""

.RightHeader = ""

.LeftFooter = "&""Arial Narrow,Regular""&D&T"

.CenterFooter = ""

.RightFooter = "&""Arial Narrow,Regular""&Z&F" & Chr(10) & "&P of &N "

.LeftMargin = Application.InchesToPoints(0.25)

.RightMargin = Application.InchesToPoints(0.25)

.TopMargin = Application.InchesToPoints(0.25)

.BottomMargin = Application.InchesToPoints(0.5)

.HeaderMargin = Application.InchesToPoints(0.25)

.FooterMargin = Application.InchesToPoints(0.25)

.PrintHeadings = False

.PrintGridlines = False

.PrintComments = xlPrintNoComments

.PrintQuality = 600

.CenterHorizontally = True

.CenterVertically = False

.Orientation = xlLandscape

.Draft = False

.PaperSize = xlPaperLetter

.FirstPageNumber = xlAutomatic

.Order = xlDownThenOver

.BlackAndWhite = False

.Zoom = 61

.PrintErrors = xlPrintErrorsDisplayed

End With

ActiveWindow.SelectedSheets.PrintPreview

End Sub

Sub REPORT_NORMAL()

' REPORT_NORMAL Macro

' Macro recorded 8/26/2009 by

ActiveSheet.PageSetup.PrintArea = "PRINT_2690_01"

With ActiveSheet.PageSetup

.PrintTitleRows = "$1:$9"

.PrintTitleColumns = ""

End With

ActiveSheet.PageSetup.PrintArea = "PRINT_2690_01"

With ActiveSheet.PageSetup

.LeftHeader = ""

.CenterHeader = ""

.RightHeader = ""

.LeftFooter = "&""Arial Narrow,Regular""&D&T"

.CenterFooter = ""

.RightFooter = "&""Arial Narrow,Regular""&Z&F" & Chr(10) & "&P of &N "

.LeftMargin = Application.InchesToPoints(0.25)

.RightMargin = Application.InchesToPoints(0.25)

.TopMargin = Application.InchesToPoints(0.25)

.BottomMargin = Application.InchesToPoints(0.5)

.HeaderMargin = Application.InchesToPoints(0.25)

.FooterMargin = Application.InchesToPoints(0.25)

.PrintHeadings = False

.PrintGridlines = False

.PrintComments = xlPrintNoComments

.PrintQuality = 600

.CenterHorizontally = True

.CenterVertically = False

.Orientation = xlLandscape

.Draft = False

.PaperSize = xlPaperTabloid

.FirstPageNumber = xlAutomatic

.Order = xlDownThenOver

.BlackAndWhite = False

.Zoom = 61

.PrintErrors = xlPrintErrorsDisplayed

End With

ActiveWindow.SelectedSheets.PrintPreview

End Sub

AGRADESCO DESDE YA SU GRAN AYUDA

PRUEBA.zip

Link to post
Share on other sites

Respuesta: AYUDA TERMINAR MACRO para Modificar Area de Impresion...

Hola Victor_Noa:

prueba quitandole las comilla dobles de

"PRINT_2690_01"

"PRINT_2690_02" y colocalo entre parentesis,

(PRINT_2690_01)

(PRINT_2690_02), tu le has dados un nombre a cada area de impresion vba no reconoce con comillas, si pones comillas lo reconoce como texto. (Ojala no me equivoque.

Link to post
Share on other sites
  • 9 months later...

Re: Respuesta: AYUDA TERMINAR MACRO para Modificar Area de Impresion...

Hola rolano que tal, mira yo tengo un archivo que se llama pedido pero me gustaria tener un codigo que solo imprima lo que exista en la hoja a simple vista, es decir, si por ejemplo yo solo tengo dos hojas imprima solo eso, o si tengo tres y asi sucesivamente, sin necesidad de modificar el codigo. Gracias

Link to post
Share on other sites

Hola dorgelis:

Para imprimir libros u hojas utilizamos la instrucción PrintOut, por ejemplo:

Sub Imprimir ()

' Imprime el libro activo

ActiveWorkbook.Printout

End Sub

Si queremos imprimir un libro y hoja determinada:

Sub Imprimir ()

' Imprime el libro y hoja indicados

Workbooks("MiLibro.Xls").Sheets("Hoja1").Printout

End Sub

Para imprimir la hoja actual hacemos la instrucción PrintOut, tal que:

Sub ImprimeHoja ()

ActiveSheet.PrintOut

End Sub

Si además deseamos fijar previamente un rango de impresión hacemos:

Sub ImprimeRango ()

ActiveSheet.PageSetup.PrintArea = Range("$A$1:$C$10").Address

ActiveSheet.PrintOut

End Sub

En la macro anterior, cuando queremos imprimir un rango, es

necesario agregar la instrucción Address, caso contrario no funcionará.

Para definir el rango a imprimir utilizamos la instrucción PrintArea.

Es conveniente que definamos y guardemos el rango a imprimir:

Sub DefinirRango()

ActiveSheet.PageSetup.PrintArea = "$A$1:$G$22"

End Sub

En el caso anterior si presionáramos sobre el botón Imprimir se

imprimiría el rango A1:G22.

Link to post
Share on other sites

Hola dorgelis:

Imprime del 1er dato hasta el ultimo

Sub AreaImpresion()

Dim primera, ultima As Variant

Range("A1").Select

If ActiveCell.Value = "" Then

Selection.End(xlToRight).Select

End If

primera = ActiveCell.Address

ActiveCell.SpecialCells(xlLastCell).Select

ultima = ActiveCell.Address

ActiveSheet.PageSetup.PrintArea = (primera &:" & ultima)

End Sub

Link donde se encuentra el codigo

http://aplicaexcel.galeon.com/descargas.htm

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Privacy Policy