|
Rank: Member
Iscritto dal : 2/5/2003 Posts: 0
|
ciao, ho questo problema: vorrei stampare in una sola pagina (usando l'opzione in 'imposta pagina' x adattare il contenuta a 1 pagina di altezza x 1 di larghezza) una selezione multipla del tipo Range("A81:J106,A329:N343"). Tutto questo è inserito in una macro, pero non riesco a trovare il codice che mi permetta di adattare i 2 range in un pagina, mi stampa 1 pagina x ogni range. L'opzione in imposta pagina è già selezione in questo modo x tutto il documento. ecco la mia semplice macro: Sub riepilogo_piu_albo() Range("A81:J106,A329:N343").PrintOut Copies:=1, Collate:=True, preview:=True End Sub pero il risultato sono 2 pagine! help!! grazie mille!
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve Devi anche impostare i parametri da codice per stampare su una sola pagina. Modifica il codice come segue: Sub riepilogo_piu_albo() With ActiveSheet.PageSetup .FitToPagesWide=1 .FitToPagesTall=1 End With Range("A81:J106,A329:N343").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, preview:=True End Sub saluti Andrea
|
|
Rank: Member
Iscritto dal : 2/5/2003 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> salve Devi anche impostare i parametri da codice per stampare su una sola pagina. Modifica il codice come segue:
Sub riepilogo_piu_albo() With ActiveSheet.PageSetup .FitToPagesWide=1 .FitToPagesTall=1 End With Range("A81:J106,A329:N343").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, preview:=True End Sub
saluti Andrea
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote>
mi spiace ma non ottengo il risultato che mi aspetto! con questo codice mi stamperebbe ancora l'area di stampa che ho selezionato nel documento. ho provato a modificare il codice in questo modo: Sub riepilogo_piu_albo() With ActiveSheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = 1 End With Range("A81:J106,A329:N343").PrintOut Copies:=1, Collate:=True, preview:=True End Sub
ma il risultato è sempre la stampa di 2 pagine, 1 x ogni selezione!
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve ci deve essere qualcosa che mi sfugge nella tua domanda. Non vuoi che il "Range("A81:J106,A329:N343")" sia stampato adattando il tutto su una pagina?? non comprendo quale il problema. saluti Andrea
|
|
Rank: Member
Iscritto dal : 2/5/2003 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> salve ci deve essere qualcosa che mi sfugge nella tua domanda. Non vuoi che il "Range("A81:J106,A329:N343")" sia stampato adattando il tutto su una pagina?? non comprendo quale il problema. saluti Andrea
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote>
si esatto, pero nel mio documento è impostata un'area di stampa (che deve esserci sempre) e questo range composto da 2 selezioni è al di fuori di quest'area di stampa. Se uso il codice che mi hai segnalato tu, continua a stamparmi la mia area di stampa originale e non quel range. Se uso il codice che ti scritto nell'ultimo messaggio, mi stampa ancora una selezione x pagine e non entrambe su una sola! Spero di esser stato un piu preciso! grazie ancora
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve Capito il problema. Eccoti una possibile soluzione, impostando l'opzione nascondi righe. vedi se ti va bene. Controlla se è giusto il range di stampa altrimenti modifica i valori di cells() Sub riepilogo_piu_albo() dim riga as integer dim colonna as integer With ActiveSheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = 1 End With Rows("107:107").Select Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Select Selection.EntireRow.Hidden = True riga = Range("A81").End(xlDown).Row colonna = Cells(riga, 1).End(xlToRight).Column Range(Cells(81, 1), Cells(riga, colonna)).Select Selection.PrintOut Copies:=1, Collate:=True Selection.EntireRow.Hidden = False Range("a1").Select End Sub saluti Andrea
|
|
Rank: Member
Iscritto dal : 2/5/2003 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> salve Capito il problema. Eccoti una possibile soluzione, impostando l'opzione nascondi righe. vedi se ti va bene. Controlla se è giusto il range di stampa altrimenti modifica i valori di cells()
Sub riepilogo_piu_albo() dim riga as integer dim colonna as integer With ActiveSheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = 1 End With Rows("107:107").Select Range(Selection, Selection.End(xlDown).Offset(-1, 0)).Select Selection.EntireRow.Hidden = True riga = Range("A81").End(xlDown).Row colonna = Cells(riga, 1).End(xlToRight).Column Range(Cells(81, 1), Cells(riga, colonna)).Select Selection.PrintOut Copies:=1, Collate:=True Selection.EntireRow.Hidden = False Range("a1").Select End Sub
saluti Andrea <hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote>
purtroppo neanche cosi riesco... credo che con .End(xlDown) vuoi arrivare all'ultima riga vuota e stamapare dopo quella. Il problema è che tra i miei due range di selezione ci sono altre tabelle. Infatti con questo codice mi stampa la prima selezione del range e la tabella subito successiva a questa nel folgio di excel, ma non la seconda selezione del mio range. Pero le due tabelle vengono inserite in un'unica pagina, pero senza una riga vuota che le separi!
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve non avevo considerato la possibilità che tra le due selezioni l'area fosse occupata da altri dati. vedi questa nuova modifica. NB. per aggiungere una riga vuota alla stampa qualora la riga 328 non fosse vuota, ho fatto in modo che la macro aggiunga una riga vuota e la cancelli al termine della elaborazione. Sub riepilogo_piu_albo() With ActiveSheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = 1 End With Rows("107:328").Select Selection.EntireRow.Hidden = True Rows("329:329").Insert Shift:=xlDown Range(Cells(81, 1), Cells(344, 14)).Select Selection.PrintOut Copies:=1, Collate:=True Selection.EntireRow.Hidden = False Rows("329:329").Delete Range("a1").Select End Sub saluti Andrea
|
|
Rank: Member
Iscritto dal : 2/5/2003 Posts: 0
|
<BLOCKQUOTE id=quote><font size=1 face="Sans Serif, Arial, Helvetica" id=quote>quote:<hr height=1 noshade id=quote> salve non avevo considerato la possibilità che tra le due selezioni l'area fosse occupata da altri dati.
vedi questa nuova modifica. NB. per aggiungere una riga vuota alla stampa qualora la riga 328 non fosse vuota, ho fatto in modo che la macro aggiunga una riga vuota e la cancelli al termine della elaborazione.
Sub riepilogo_piu_albo() With ActiveSheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = 1 End With Rows("107:328").Select Selection.EntireRow.Hidden = True Rows("329:329").Insert Shift:=xlDown Range(Cells(81, 1), Cells(344, 14)).Select Selection.PrintOut Copies:=1, Collate:=True Selection.EntireRow.Hidden = False Rows("329:329").Delete Range("a1").Select End Sub
saluti Andrea <hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face="Sans Serif, Arial, Helvetica" size=2 id=quote>
purtroppo c'e un altro problema! tra queste due selezioni nel range, ci sono delle celle unite (nascoste) che sono al di fuori dell'intervallo di colonne del mio range. mi spiego meglio: - la selezione 1 arriva alla colonna J - la selezione 2 arriva alla colonna N - tra le due selezioni ho delle celle unite fino alla colonna W quindi, con il tuo ultimo codice, la stampa non è piu in questo range("A81:J106,A329:N343"), ma in questo ("A81:W106,A329:W343")! sinceramente speravo fosse un po piu semplice!!! attendo notizie... grazie
Edited by - albyu2 on 05/05/2006 12:10:45
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve. Premessa: L'unione di celle in Excel può rendere più presentabile un documento ma non ne facilita certo la gestione. Stante la presenza di queste celle bisogna percorrere una strada alternativa che potrebbe essere questa:(poi non mi vengono altre soluzioni) 1) dici che il tuo foglio ha già impostata un'area di stampa che deve essere mantenuta. Supponiamo che questa sia impostata nel range A1:D30. 2) impostiamo il codice macro come sotto facendo in modo di generare una nuova area di stampa con la selezione non contigua, stampare, e ripristinare l'area di stampa originale. Questo è il codice: Sub riepilogo_piu_albo() With ActiveSheet.PageSetup .FitToPagesWide = 1 .FitToPagesTall = 1 End With Rows("107:328").Select Selection.EntireRow.Hidden = True Rows("329:329").Insert Shift:=xlDown ActiveSheet.PageSetup.PrintArea = "a81:n344" ActiveSheet.PrintOut copies:=1, collate:=True Selection.EntireRow.Hidden = False Rows("329:329").Delete Range("a1").Select ActiveSheet.PageSetup.PrintArea = "$A$1:$D$30" End Sub saluti Andrea
|
|
Guest |