VBA per stampa area su foglio

Anonimo
2024-04-03T17:20:42+00:00

Buona sera, spero che qualcuno possa aiutarmi con una VBA. Allora ho un foglio in f.to A3 che di solito stampo integralmente, ma vorrei creare 3 tasti ai quali fare corrispondere stampa diretta di 3 aree di stampa ben precise

Tipo:

TASTO1 A1:AG29 e A91:AG91

TASTO2 A31:AG59 e A91:AG91

TASTO3 A61:AG89 e A91:AG91

Ho più fogli di cui tre identici come campi riferimento il quarto lo stampo solo integrale.

Ovviamente so come creare il tasto ma non riesco a trovare riferimenti per la VBA che mi vada in stampa diretta.

No finisce qui ovviamente! Mi sarei complicato la vita solo in parte, i fogli sono ad orientamento VERTICALE mentre vorrei che fosse sempre tramite stesso tasto stampato in ORIZZONTALE.

Qualche anima mi da una mano?

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2024-04-05T04:02:35+00:00

Sorry for replying again, the translation tool messed up the code again, see this answer in English:

Sub PrintKey1()

With ThisWorkbook.Sheets("YourSheetName") 

    ' Set print area 

    .PageSetup.PrintArea = "A1:AG91" 

    ' Set orientation to Landscape 

    .PageSetup.Orientation = xlLandscape 

    ' Scale the print to fit on a single page wide, and as tall as it needs to be 

    .PageSetup.Zoom = False 

    .PageSetup.FitToPagesWide = 1 

    .PageSetup.FitToPagesTall = 1 

    ' Print the sheet 

    .PrintOut Copies:=1, Collate:=True 

End With 

End Sub

' Repeat the same structure for PrintKey2 and PrintKey3 with their respective print areas

Try replacing the worksheet name and range in the code and see if it works, thanks ;)

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2024-04-08T09:57:27+00:00

    La risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o parole insolite.

    Ciao, RincoStar

    È possibile modificare la macro per mostrare temporaneamente il foglio, eseguire il comando di stampa e quindi nasconderlo di nuovo. In questo modo, la funzionalità di stampa può essere utilizzata anche quando il foglio non è visibile all'utente. Ecco come puoi farlo:

    Sub January()  
    
        Dim ws As Worksheet  
    
        Set ws = ThisWorkbook.Sheets("MONTHLY")  
    
        ' Store the current visibility state  
    
        Dim wasHidden As Boolean  
    
        wasHidden = (ws.Visible = xlSheetHidden Or ws.Visible = xlSheetVeryHidden)  
    
        ' Unhide the sheet if it's hidden or very hidden  
    
        If wasHidden Then ws.Visible = xlSheetVisible  
    
        ' Execute the print command  
    
        With ws  
    
            .PageSetup.PrintArea = "A1:AG31"  
    
            .PrintOut Copies:=1, Collate:=True  
    
        End With  
    
        ' Re-hide the sheet if it was originally hidden or very hidden  
    
        If wasHidden Then ws.Visible = xlSheetHidden ' or xlSheetVeryHidden based on original state  
    
        Set ws = Nothing  
    
    End Sub 
    

    Punti chiave:

    1-> Prima di modificare la visibilità del foglio, la macro controlla se è nascosto o molto nascosto e memorizza questo stato. Ciò consente alla macro di ripristinare lo stato di visibilità originale del foglio dopo la stampa.

    2-> Il foglio è impostato su visible (xlSheetVisible) solo se è stato nascosto. Ciò è necessario perché Excel non consente la stampa di fogli nascosti.

    3-> Dopo la stampa, la visibilità del foglio viene ripristinata allo stato originale, assicurando che la macro non alteri il layout o le impostazioni di visibilità della cartella di lavoro.

    Questo approccio garantisce che la funzionalità della macro si estenda ai fogli nascosti, mantenendo l'interfaccia utente della cartella di lavoro come previsto. Se hai altre domande o hai bisogno di ulteriori modifiche, fammelo sapere :)

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento
  2. Anonimo
    2024-04-04T14:57:45+00:00

    La risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o parole insolite.

    Ciao, Righostar

    Benvenuto nella community Microsoft.

    Sarò felice di aiutarti a configurare le macro VBA per la stampa di aree specifiche del tuo foglio in Excel. Per fare ciò, puoi seguire i passaggi seguenti per creare tre diverse macro corrispondenti ai tre tasti (KEY1, KEY2, KEY3). Ogni macro imposterà l'area di stampa in base alle specifiche e stamperà il foglio in layout orizzontale.

    **1->**Innanzitutto, è necessario aprire l'editor VBA in Excel premendo .Alt + F11

    **2->**Una volta nell'editor VBA:Fare clic con il pulsante destro del mouse su uno degli elementi nel riquadro "Progetto" sul lato sinistro.

    Scegli >. Questa azione aggiunge un nuovo modulo al progetto in cui è possibile scrivere macro.InsertModule

    **3->**Nel modulo appena creato, incolla il seguente codice:

    Sub PrintKey1()

    Con questoCartella di lavoro.Fogli("Foglio1")

    . PageSetup.PrintArea = "A1:AG29,A91:AG91"

    . PageSetup.Orientation = xlLandscape

    . Copie stampate:=1, fascicolazione:=True

    Termina con

    Fine sottomarino

    Sub PrintKey2()

    Con questoCartella di lavoro.Fogli("Foglio1")

    . PageSetup.PrintArea = "A31:AG59,A91:AG91"

    . PageSetup.Orientation = xlLandscape

    . Copie stampate:=1, fascicolazione:=True

    Termina con

    Fine sottomarino

    Sub PrintKey3()

    Con questoCartella di lavoro.Fogli("Foglio1")

    . PageSetup.PrintArea = "A61:AG89,A91:AG91"

    . PageSetup.Orientation = xlLandscape

    . Copie stampate:=1, fascicolazione:=True

    Termina con

    Fine sottomarino

    **4->**Oppure puoi fare clic qui -VBA.code.txt per scaricarlo come modulo .txt file.

    **5->**Nel codice sopra, sostituisci con il nome effettivo del tuo foglio. Come mostrato dalla freccia rossa Immaginato:
    "YourSheetName"Image

    Quindi, torna a Excel e inserisci tre pulsanti (puoi andare alla scheda Inserisci e fare clic su Forme o altre forme per quello). Come mostrato:
    Image

    1. Fare clic con il pulsante destro del mouse su ciascun pulsante e selezionare .Assign Macro...
    2. Image
    3. Scegliere la macro corrispondente per ciascun pulsante (, , o ). Come mostrato di seguito:Key1Key2Key3
    4. Il risultato viene mostrato nell'immagine, a causa dell'ampia area di stampa, è possibile fare clic suClicca quiper visualizzare l'immagine. Informazioni aggiuntive:
      • Questo codice presuppone che la stampante sia impostata e configurata con Excel.
      • Il metodo stampa immediatamente il documento. Se si desidera visualizzare l'anteprima della stampa, è possibile utilizzare le macro..PrintOut.PrintPreview.PrintOut
      • Nell'anteprima dell'effetto viene visualizzato un pulsante di stampa. Questa operazione è prevista perché stampa il PDF e tutti gli elementi di Excel visibili nell'area PDF. Se non è necessario visualizzare i tre pulsanti in fase di stampa, spostare il pulsante in una posizione in cui non verrà stampato. al di fuori dell'area stampata. Oppure ALT+F8 per attivarli manualmente.
      • Come ultimo suggerimento, ecco i risultati del mio file e puoicliccare qui per scaricarli come riferimento. Ricorda che fai clic con il pulsante destro del mouse sul file e seleziona le proprietà, fai clic sulla casella di sblocco per assicurarti di poter eseguire questa macro. (Dopo averlo scaricato)
      Ora hai tre pulsanti sul foglio che, se cliccati, stamperanno le aree specificate con orientamento orizzontale. Se hai altre domande o hai bisogno di ulteriore assistenza, non esitare a chiedere! Saluti Icelynn |Specialista del supporto della community Microsoft

    Grazie Icelynn per il tuo supporto, direi che la soluzione funziona ma ho ancora due problemi:

    -A91/G91 me li stampa su un secondo foglio mentre vorrei che fosse tutto in un unico foglio

    -l'area viene stampata (essendo l'originale in A3) viene piuttosto piccola. Esiste la possibilità di stampare, tutto su unico foglio, orientato in orizzontale e zoomato (tipo 130%) in modo che si legga meglio?

    Grazie ancora per il tuo supporto... Mi stai salvando!

    Marco

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2024-04-04T03:54:08+00:00

    Hello, Righostar

    Sorry I write it in English.

    Since the translation robot in the community may automatically translate the VBA code release, causing misunderstanding, I recommend that you click to download and then view the code, as shown in the figure:

    Thanks!

    Icelynn

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2024-04-04T03:48:11+00:00

    La risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o parole insolite.

    Ciao, Righostar

    Benvenuto nella community Microsoft.

    Sarò felice di aiutarti a configurare le macro VBA per la stampa di aree specifiche del tuo foglio in Excel. Per fare ciò, puoi seguire i passaggi seguenti per creare tre diverse macro corrispondenti ai tre tasti (KEY1, KEY2, KEY3). Ogni macro imposterà l'area di stampa in base alle specifiche e stamperà il foglio in layout orizzontale.

    **1->**Innanzitutto, è necessario aprire l'editor VBA in Excel premendo .Alt + F11

    **2->**Una volta nell'editor VBA:Fare clic con il pulsante destro del mouse su uno degli elementi nel riquadro "Progetto" sul lato sinistro.

    Scegli >. Questa azione aggiunge un nuovo modulo al progetto in cui è possibile scrivere macro.InsertModule

    **3->**Nel modulo appena creato, incolla il seguente codice:

    Sub PrintKey1()

    Con questoCartella di lavoro.Fogli("Foglio1") 
    
        . PageSetup.PrintArea = "A1:AG29,A91:AG91" 
    
        . PageSetup.Orientation = xlLandscape 
    
        . Copie stampate:=1, fascicolazione:=True 
    
    Termina con 
    

    Fine sottomarino

    Sub PrintKey2()

    Con questoCartella di lavoro.Fogli("Foglio1") 
    
        . PageSetup.PrintArea = "A31:AG59,A91:AG91" 
    
        . PageSetup.Orientation = xlLandscape 
    
        . Copie stampate:=1, fascicolazione:=True 
    
    Termina con 
    

    Fine sottomarino

    Sub PrintKey3()

    Con questoCartella di lavoro.Fogli("Foglio1") 
    
        . PageSetup.PrintArea = "A61:AG89,A91:AG91" 
    
        . PageSetup.Orientation = xlLandscape 
    
        . Copie stampate:=1, fascicolazione:=True 
    
    Termina con 
    

    Fine sottomarino

    **4->**Oppure puoi fare clic qui -VBA.code.txt per scaricarlo come modulo .txt file.

    **5->**Nel codice sopra, sostituisci con il nome effettivo del tuo foglio. Come mostrato dalla freccia rossa Immaginato:
    "YourSheetName"Image

    Quindi, torna a Excel e inserisci tre pulsanti (puoi andare alla scheda Inserisci e fare clic su Forme o altre forme per quello). Come mostrato:
    Image

    1. Fare clic con il pulsante destro del mouse su ciascun pulsante e selezionare .Assign Macro...
    2. Image
    3. Scegliere la macro corrispondente per ciascun pulsante (, , o ). Come mostrato di seguito:Key1Key2Key3
    4. Il risultato viene mostrato nell'immagine, a causa dell'ampia area di stampa, è possibile fare clic suClicca quiper visualizzare l'immagine. Informazioni aggiuntive:
      • Questo codice presuppone che la stampante sia impostata e configurata con Excel.
      • Il metodo stampa immediatamente il documento. Se si desidera visualizzare l'anteprima della stampa, è possibile utilizzare le macro..PrintOut.PrintPreview.PrintOut
      • Nell'anteprima dell'effetto viene visualizzato un pulsante di stampa. Questa operazione è prevista perché stampa il PDF e tutti gli elementi di Excel visibili nell'area PDF. Se non è necessario visualizzare i tre pulsanti in fase di stampa, spostare il pulsante in una posizione in cui non verrà stampato. al di fuori dell'area stampata. Oppure ALT+F8 per attivarli manualmente.
      • Come ultimo suggerimento, ecco i risultati del mio file e puoicliccare qui per scaricarli come riferimento. Ricorda che fai clic con il pulsante destro del mouse sul file e seleziona le proprietà, fai clic sulla casella di sblocco per assicurarti di poter eseguire questa macro. (Dopo averlo scaricato)
      Ora hai tre pulsanti sul foglio che, se cliccati, stamperanno le aree specificate con orientamento orizzontale. Se hai altre domande o hai bisogno di ulteriore assistenza, non esitare a chiedere! Saluti Icelynn |Specialista del supporto della community Microsoft

    La risposta è stata utile?

    0 commenti Nessun commento