Risultati da 1 a 10 di 10

Discussione: stampa range dinamico di più pivot su più fogli



  1. #1
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61

    stampa range dinamico di più pivot su più fogli

    Ciao a tutti,
    con questo codice

    Sub stampa()
    Dim sh As Worksheet
    Dim Urig As Long
    Urig = Cells(Rows.Count, "A").End(xlUp).Row
    ActiveSheet.PageSetup.PrintArea = "A1:" & "I" & Urig
    End Sub

    riesco a stamparmi (o meglio ad impostarmi la stampa) evitando quindi di selezionare ogni volta un range di stampa diverso.
    Questo codice va lanciato su una decina di fogli. Ogni foglio ha al suo interno una pivot.
    Ora, per stampare, vado sul singolo foglio, F8 e lancio questo codice. Poi vado sul successivo foglio, F8 e rilancio di nuovo questo codice e così via per tutti i fogli.
    E' possibile agganciare un unico codice ad un pulsante che mi imposti le stampe su tutti i fogli?
    O meglio, l'ideale sarebbe che funzionasse solo su quelli che io seleziono o solo su quelli che vengono indicati nel codice, perchè il file è composto anche da altri fogli che non devono esser stampati.
    Grazie anche per dei consigli.
    A disposizione nel caso ci fossero dubbi o la spiegazione non fosse del tutto esaustiva.
    ciao
    ale

  2. #2
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buna sera, Alessandro;
    credo dipenda da quanti Fogli di lavoro vuoi condizionare con il Range di stampa.
    Potresti provare con:

    Codice: 
    Option Explicit
    
    Private Sub Worksheet_Activate()
    Dim Urig As Long
        Urig = Cells(Rows.Count, "A").End(xlUp).Row
        ActiveSheet.PageSetup.PrintArea = "A1:" & "I" & Urig
    End Sub
    Da copiare in:
    - Microsoft Excel Oggetti
    in tutti i Fogli di lavoro nei quali desideri impostare la Stampa

    Potrebbero esserci altre diverse soluzioni, ma, ripeto, dipende dal numero di Fogli di lavoro coinvolti.


    A disposizione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    ciao giuseppe,
    e grazie dell'intervento.
    scusami ma mi sfugge un passaggio.
    ma come l'attivo?
    cioè io l'ho inserito qui (cioè nei singoli nove fogli (che ho dovuto cancellare se non altro perchè sono cognomi di miei colleghi)

    ma poi come l'attivo? o come si attiva?
    pensavo di agganciare il codice ad un pulsante?
    ma ripeto...mi sfugge decisamente qualcosa.
    faccio altre prove.
    ciao
    ale

  5. #4
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona sera, Alessandro;
    l'Evento:
    Codice: 
     Private Sub Worksheet_Activate()
    viene eseguito automaticamente ogni volta che il Foglio di lavoro viene attivato (visualizzato)

    Ovviamente è possibile attribuire ad un Pulsante l'esecuzione del Codice:

    Codice: 
    Sub Area_di_stampa()
    Dim Urig As Long
        Urig = Cells(Rows.Count, "A").End(xlUp).Row
        ActiveSheet.PageSetup.PrintArea = "A1:" & "I" & Urig
    End Sub
    che dovrà essere inserito in un Modulo.

    In questo caso, ogni Foglio di lavoro interessato alla definizione dell'area di stampa, dovrà avere il proprio Pulsante.


    A disposizione.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  6. #5
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3347
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Ciao Alessandro oltre alla soluzione di Giuseppe, se il file lo usi su un solo pc, puoi aggiungere la macro sulla barra multifunzione così hai un solo pulsante per tutti i fogli che ti interessano e la macro scritta una sola volta in un modulo.
    Ti allego un piccolo video che spiega come fare.

    ciao.

    https://www.dropbox.com/s/gxo1j4f8si...barra.avi?dl=0

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  7. #6
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    ragazzi buongiorno,
    e punto primo vi ringrazio per le vs risposte ma temo che mi sia spiegato male.
    quello da voi proposto già lo conosco e già ce l'ho per vari file.
    quello che sto cercando è un metodo (macro o altro che sia) che mi permetta di non ripetere per ogni singolo foglio il lancio della macro (per impostare la stampa).
    Il 90% del mio lavoro si sviluppa da tastiera per cui mi pesano anche i menù, tant'è che le macro le faccio partire quasi sempre con una combinazione di tasti.
    Come dicevo nel mio primo post, ora per svolgere tutto il lavoro, mi posiziono sul primo foglio, F8 per richiamare e lanciare la macro.
    Poi Ctrl+Pgdown per passare all'altro foglio: F8 per richiamare e lanciare la macro. Questo per tutti i singoli fogli.
    E in questo modo ho tutte le impostazioni di stampa già fatte...
    Mi chiedevo se esisteva un metodo per azzerare anche questi pochi e veloci comandi: non so pensavo magari di evidenziare questi 9 fogli e lanciare una macro che, singolo foglio per singolo foglio, capiva il range di stampa di ogni specifico foglio e mi impostava la stampa.
    Provo a girare un po in rete.
    grazie ancora.
    ciao
    ale

  8. #7
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Citazione Originariamente Scritto da Alessandro Visualizza Messaggio
    ... quello che sto cercando è un metodo (macro o altro che sia) che mi permetta di non ripetere per ogni singolo foglio il lancio della macro (per impostare la stampa) ...
    Con questa premessa, l'unica cosa a cui posso pensare è un'unico Codice VBA che, utilizzando una Funzione tipo "Select Case", gestisce l'area di stampa.

    Consentimi di rimanere pervicacemente convinto che "Worksheet_Activate" possa risolvere visulizzando i Foglio di lavoro con l'ausilio del Mouse o da Tastiera.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  9. #8
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    ok...puoi insultarmi...:274::274::274::274:
    scusami ma hai ovviamente perfettamente ragione...
    solo che ero io che mi ostinavo a voler subito il risultato senza leggere il codice...
    ovviamente parlando di active...modificavo la pivot e vedevo che le impostazioni di stampa non cambiavano...
    senza pensare che bastava che cambiavo foglio e poi con l'active tutto si sarebbe settato a dovere.
    scusami
    e grazie grazie davvero.
    ciao
    ale

  10. #9
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Alessandro.
    Considera che, oltre all'Evento "Worksheet_Activate" utilizzato, ne esistono altri che consentono di attivare il Codice in determinate circostanze; ad esempio:
    - Private Sub Worksheet_SelectionChange(ByVal Target As Range) ---> attiva il Codice quando viene selezionata una Cella all'interno del "Target"
    - Private Sub Worksheet_Change(ByVal Target As Range) ---> attiva il Codice quando viene modificato il valore di una Cella all'interno del "Target"
    - Private Sub Workbook_BeforePrint(Cancel As Boolean) ---> attiva il Codice prima di stampare

    Ma sicuramente conosci già la possibilità di gestire tutti gli eventi disponibili.


    Nel caso Tu ritenga questa Discussione, sarebbe opportuno anteponessi "RISOLTO" al Titolo originale.



    A disposizione.

    Buon lavoro e buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  11. #10
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    si si li conosco...(non al 100%...)
    grazie ancora.
    ciao
    ale

Discussioni Simili

  1. [Risolto] Range dinamico
    Di D@nilo nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 14/01/17, 16:18
  2. [Risolto] Range Pivot non valido
    Di Alessandro nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 09/11/16, 16:13
  3. esporta In Pdf con Range dinamico
    Di nick0573 nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 06/04/16, 13:45
  4. Tabella pivot e grafico dinamico
    Di gumiero nel forum Domande sui Grafici di Excel
    Risposte: 1
    Ultimo Messaggio: 26/01/16, 01:02
  5. Tabella pivot e grafico dinamico
    Di gumiero nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 26/01/16, 01:02

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •