Risultati da 1 a 9 di 9

Discussione: Creare routine di stampe con excel



  1. #1
    L'avatar di Nicolabt
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Puglia
    Età
    53
    Messaggi
    54
    Versione Office
    Excel 2013
    Likes ricevuti
    2
    Likes dati
    7

    Creare routine di stampe con excel

    Ciao, fino ad oggi lavoravo con due fogli Inserimento e Stampe.
    Nel primo inserivo i dati di 15 dipendenti (che si inseriscono in automatico nel secondo foglio)
    e con il secondo Stampo 15 pagine (una per dipendente).
    Ora ho creato un altro foglio (Protocolli) che mi serve per inserire il nr di protocollo
    che si abbina ad ogni dipendente.
    Voglio ora (nel foglio Stampe) creare una sola pagina (non 15) che si completi
    in automatico nel momento della stampa, per non stampare da pag 1 a pag 15
    come facevo sino ad oggi.
    In sintesi, voglio stampare in routine le 15 pagine complete del terzo foglio.
    Come si fa?
    PS: allego il file così capite meglio (ovviamente per questioni di privacy ho cancellato
    i dati importanti delle pagine)
    Grazie.
    File Allegati File Allegati

  2. #2
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    817
    Versione Office
    2016 64bit
    Likes ricevuti
    148
    Likes dati
    53
    Con una macro così dovresti cavartela e la puoi lanciare tramite Alt+F8 oppure associarla ad un pulsante (da creare).

    Però, non vedo la necessità di sdoppiare i dati tra i fogli "Inserimento" e "Protocollo". L'unica differenza tra i due è la colonna "Nr. Protocollo" che può benissimo essere integrata nel foglio "Inserimento" ma esclusa nel momento della stampa del riepilogo tramite l'opzione "Imposta Area di Stampa":
    Codice: 
    Option Explicit
    
    Sub Stampa()
        
        Dim n As Integer
        Dim wsh1 As Worksheet
        Dim wsh2 As Worksheet
        
        Set wsh1 = Sheets("Inserimento")
        Set wsh2 = Sheets("Protocolli")
            
        For n = 23 To 37
            If wsh1.Range("B" & n).Value <> "" Then
                With Sheets("Stampe")
                    .Range("C11") = wsh2.Range("J" & n - 18)
                    .Range("I11") = wsh2.Range("I" & n - 18)
                    .Range("A1") = wsh1.Range("A" & n)
                    .Range("C13") = wsh1.Range("B" & n)
                    .Range("G13") = wsh1.Range("C" & n) & " " & wsh1.Range("E" & n)
                    .Range("I24") = wsh1.Range("B" & n)
                    .Range("I24") = wsh1.Range("B" & n)
                    .Range("B26") = wsh1.Range("C" & n) & " " & wsh1.Range("E" & n)
                    .Range("H26") = wsh1.Range("I" & n)
                    .Range("C28") = wsh1.Range("H" & n)
                    .Range("E28") = wsh1.Range("G" & n)
                    .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
                End With
            End If
        Next n
        
    End Sub
    File Allegati File Allegati

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di Nicolabt
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Puglia
    Età
    53
    Messaggi
    54
    Versione Office
    Excel 2013
    Likes ricevuti
    2
    Likes dati
    7
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Con una macro così dovresti cavartela e la puoi lanciare tramite Alt+F8 oppure associarla ad un pulsante (da creare).

    Però, non vedo la necessità di sdoppiare i dati tra i fogli "Inserimento" e "Protocollo". L'unica differenza tra i due è la colonna "Nr. Protocollo" che può benissimo essere integrata nel foglio "Inserimento" ma esclusa nel momento della stampa del riepilogo tramite l'opzione "Imposta Area di Stampa":
    Codice: 
    Option Explicit
    
    Sub Stampa()
        
        Dim n As Integer
        Dim wsh1 As Worksheet
        Dim wsh2 As Worksheet
        
        Set wsh1 = Sheets("Inserimento")
        Set wsh2 = Sheets("Protocolli")
            
        For n = 23 To 37
            If wsh1.Range("B" & n).Value <> "" Then
                With Sheets("Stampe")
                    .Range("C11") = wsh2.Range("J" & n - 18)
                    .Range("I11") = wsh2.Range("I" & n - 18)
                    .Range("A1") = wsh1.Range("A" & n)
                    .Range("C13") = wsh1.Range("B" & n)
                    .Range("G13") = wsh1.Range("C" & n) & " " & wsh1.Range("E" & n)
                    .Range("I24") = wsh1.Range("B" & n)
                    .Range("I24") = wsh1.Range("B" & n)
                    .Range("B26") = wsh1.Range("C" & n) & " " & wsh1.Range("E" & n)
                    .Range("H26") = wsh1.Range("I" & n)
                    .Range("C28") = wsh1.Range("H" & n)
                    .Range("E28") = wsh1.Range("G" & n)
                    .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
                End With
            End If
        Next n
        
    End Sub
    Ciao, dunque la questione dello sdoppiamento si è resa necessaria perchè, quando completo l'Inserimento
    dei 15 nominativi, stampo la pagina e solo successivamente al visto e firma del capo-ufficio posso immettere
    i nr. di protocollo nel foglio Protocolli (ciò può avvenire anche diversi giorni dopo) e questo sino ad oggi
    lo facevo manualmente per tutte e 15 le pagine.
    Cmq grazie mille per l'aiuto .. lo testo e ti saprò dire.

  5. I seguenti utenti hanno dato un "Like"


  6. #4
    L'avatar di Nicolabt
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Puglia
    Età
    53
    Messaggi
    54
    Versione Office
    Excel 2013
    Likes ricevuti
    2
    Likes dati
    7
    Citazione Originariamente Scritto da Nicolabt Visualizza Messaggio
    Ciao, dunque la questione dello sdoppiamento si è resa necessaria perchè, quando completo l'Inserimento
    dei 15 nominativi, stampo la pagina e solo successivamente al visto e firma del capo-ufficio posso immettere
    i nr. di protocollo nel foglio Protocolli (ciò può avvenire anche diversi giorni dopo) e questo sino ad oggi
    lo facevo manualmente per tutte e 15 le pagine.
    Cmq grazie mille per l'aiuto .. lo testo e ti saprò dire.

    Ciao Rollis13, la macro funziona ottimamente .. grazie ancora.
    Ho però omesso di chiederti:
    vorrei aggiungere l'anteprima di stampa in modo tale da poter scegliere il numero delle pagine
    da stampare e altro .. prima di mandare tutto in stampa.
    Come si fa?

  7. #5
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    817
    Versione Office
    2016 64bit
    Likes ricevuti
    148
    Likes dati
    53
    Se hai solo bisogno di impostare il numero di copie da stampare per ogni nome basta cambiare il "Copies:=1".

    Invece se hai solo bisogno di scegliere la stampante da utilizzare ti basta inserire prima del ".PrintOut" il seguente comando "Dialogs" così:
    Codice: 
    Application.Dialogs(xlDialogPrinterSetup).Show
    .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    mentre se vuoi mettere mano a diverse opzioni al posto del ".PrintOut" puoi mettere il comando:
    Codice: 
    .PrintPreview

  8. #6
    L'avatar di Nicolabt
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Puglia
    Età
    53
    Messaggi
    54
    Versione Office
    Excel 2013
    Likes ricevuti
    2
    Likes dati
    7
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Se hai solo bisogno di impostare il numero di copie da stampare per ogni nome basta cambiare il "Copies:=1".

    Invece se hai solo bisogno di scegliere la stampante da utilizzare ti basta inserire prima del ".PrintOut" il seguente comando "Dialogs" così:
    Codice: 
    Application.Dialogs(xlDialogPrinterSetup).Show
    .PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    mentre se vuoi mettere mano a diverse opzioni al posto del ".PrintOut" puoi mettere il comando:
    Codice: 
    .PrintPreview

    Grande ... grazie mille ancora.

  9. #7
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    817
    Versione Office
    2016 64bit
    Likes ricevuti
    148
    Likes dati
    53
    Grazie del tuo feedback positivo, è un piacere essere stato d'aiuto. Se anche la tua domanda è stata risolta, per favore, segna questa discussione come [RISOLTO]. Vai nella barra dei menu, situata all’inizio di questa discussione, dove troverai il menu "Strumenti Discussione" quindi scegli "Segna questo Thread come risolto".

  10. #8
    L'avatar di Nicolabt
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Puglia
    Età
    53
    Messaggi
    54
    Versione Office
    Excel 2013
    Likes ricevuti
    2
    Likes dati
    7
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Grazie del tuo feedback positivo, è un piacere essere stato d'aiuto. Se anche la tua domanda è stata risolta, per favore, segna questa discussione come [RISOLTO]. Vai nella barra dei menu, situata all’inizio di questa discussione, dove troverai il menu "Strumenti Discussione" quindi scegli "Segna questo Thread come risolto".

    Ciao .. dunque .. ho testato ancora il tutto inserendo 2 copie e/o le opzioni che mi hai dato per la stampa....
    beh c'è un piccolo errore, perchè mettendo le opzioni mi si apre il "Preview" di stampa .. dò l'OK e stampa 2 copie per la 1^ pagina, poi si riapre il "Preview" .. dò l'OK e mi stampa la 2^ pagina .. e così via.
    Invece, io voglio che dopo aver avuto la possibilità di scegliere la stampante e di avere (solo all'inizio) l'anteprima di stampa (che non fa mai male), quando dò l'ok per la stampa mi deve stampare tutte e 15 le pagine (2 copie x pagina) in una volta sola, non come adesso che mi si riapre il preview ecc..
    Non so se mi sono spiegato.

  11. #9
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    817
    Versione Office
    2016 64bit
    Likes ricevuti
    148
    Likes dati
    53
    Possiamo fare così, col primo nome si accede alla scelta della stampante e Preview e provvedi alla stampa poi le altre saranno solo stampa automatica.
    Qualche piccola diversa combinazione la si può fare facendo qualche piccolo aggiustamento mettendo i comandi in posizione diversa altrimenti bisogna predisporre un modulo di stampa separato.
    Prova così per ora:
    Codice: 
    Option Explicit
    Sub Stampa()
        
        Dim n As Integer
        Dim wsh1 As Worksheet
        Dim wsh2 As Worksheet
        
        Set wsh1 = Sheets("Inserimento")
        Set wsh2 = Sheets("Protocolli")
            
        For n = 23 To 37
            If wsh1.Range("B" & n).Value <> "" Then
                With Sheets("Stampe")
                    .Range("C11") = wsh2.Range("J" & n - 18)
                    .Range("I11") = wsh2.Range("I" & n - 18)
                    .Range("A1") = wsh1.Range("A" & n)
                    .Range("C13") = wsh1.Range("B" & n)
                    .Range("G13") = wsh1.Range("C" & n) & " " & wsh1.Range("E" & n)
                    .Range("I24") = wsh1.Range("B" & n)
                    .Range("I24") = wsh1.Range("B" & n)
                    .Range("B26") = wsh1.Range("C" & n) & " " & wsh1.Range("E" & n)
                    .Range("H26") = wsh1.Range("I" & n)
                    .Range("C28") = wsh1.Range("H" & n)
                    .Range("E28") = wsh1.Range("G" & n)
                    '------------- aggiunto ------------
                    If n = 23 Then
                        Application.Dialogs(xlDialogPrinterSetup).Show
                        .PrintPreview
                    Else
                        .PrintOut Collate:=True, IgnorePrintAreas:=False, Copies:=1
                    End If
                    '-----------------------------------
                End With
            End If
        Next n
        
    End Sub

Discussioni Simili

  1. [Risolto] Errore su routine
    Di DINO1 nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 13/12/16, 18:17
  2. da una cartella A creare un pulsante nella cartella B ed associarlo ad una routine di B
    Di cinziorecoaro nel forum Domande su Excel VBA e MACRO
    Risposte: 0
    Ultimo Messaggio: 15/04/16, 14:17
  3. Applicando la scelta della stampante, ho due stampe.
    Di dautattmaui nel forum Domande su Excel VBA e MACRO
    Risposte: 0
    Ultimo Messaggio: 24/03/16, 11:29
  4. Creare routine di stampe con excel
    Di Nicolabt nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 12/03/16, 21:57
  5. problema routine
    Di engineer nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 12/03/16, 18:29

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
  •