Risultati da 1 a 12 di 12

Discussione: Creare routine di stampe con excel



  1. #1
    L'avatar di Nicolabt
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Puglia
    Età
    54
    Messaggi
    55
    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
    982
    Versione Office
    2016 64bit
    Likes ricevuti
    182
    Likes dati
    92
    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à
    54
    Messaggi
    55
    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à
    54
    Messaggi
    55
    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
    982
    Versione Office
    2016 64bit
    Likes ricevuti
    182
    Likes dati
    92
    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à
    54
    Messaggi
    55
    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
    982
    Versione Office
    2016 64bit
    Likes ricevuti
    182
    Likes dati
    92
    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à
    54
    Messaggi
    55
    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
    982
    Versione Office
    2016 64bit
    Likes ricevuti
    182
    Likes dati
    92
    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

  12. #10
    L'avatar di gtomas
    Clicca e Apri
    Data Registrazione
    Feb 2018
    Località
    Catania
    Messaggi
    8
    Versione Office
    office 10
    Likes ricevuti
    0
    Likes dati
    0

    Re: Creare routine di stampe con excel

    Buongiorno a tutti. Stavo cercando sul forum per risolvere un mio problema e sono stato rimandato a questo topic.
    Vi spiego il mio problema per vedere se potete darmi una mano premettendo che non sono un grande esperto di macro.
    Ho un file excel con una serie di nominativi sulle righe e colonne che contengono dati come laurea, esperienze professionali, certificazioni ottenute, etc.
    Mi capita spesso di dovere stampare questo file solo con le righe che hanno all'interno una parola chiave, o più parole chiavi.
    Sino ad oggi ho usato il filtro ma è abbastanza laborioso perchè spesso il contenuto delle celle non riporta una sola parole ma molte di più e quindi spesso il filtro è inutilizzabile.

    Quello che vorrei fare è creare una macro che mi richiede la parola che cerco e che alla fine mi faccia vedere una schermata con sole le righe al cui interno è riportata questa parola in modo che possa direttamente stampare ed avere un elenco di nominativi già pronto.
    Spero di essere stato chiaro.
    Avete qualche routine che possa incollare in una macro per fare questo lavoro?

  13. #11

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    9726
    Versione Office
    2013
    Likes ricevuti
    1015
    Likes dati
    274

    Re: Creare routine di stampe con excel

    Ciao gtomas

    Innanzitutto ti dico che è sconsigliabile accodarsi a vecchie discussioni per chè ne perdi di "visibilità".

    Aprine una nuova "tua" allegando un file di esempio con i dati (non sensibili) e mostraci il risultato che vuoi ottenere.

    Va detto poi che le macro non ci sono gìà belle e fatte ma vanno scritte sulla base dello scenario (file) dove devono essere eseguite.

    Allega quindi un file (in una nuova discussione) e prova tu a scrivere una macro (anche non funzionante) che poi cercheremo di "aggiustare".
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  14. #12
    L'avatar di gtomas
    Clicca e Apri
    Data Registrazione
    Feb 2018
    Località
    Catania
    Messaggi
    8
    Versione Office
    office 10
    Likes ricevuti
    0
    Likes dati
    0

    Re: Creare routine di stampe con excel

    ok grazie.
    Fatto anche se il risultato non mi sta entusiasmando molto.
    Ho pubblicato un nuovo post

Discussioni Simili

  1. [Risolto] Errore su routine
    Di DINO1 nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 13/12/16, 17: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, 13: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, 10:29
  4. Creare routine di stampe con excel
    Di Nicolabt nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 12/03/16, 20:57
  5. problema routine
    Di engineer nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 12/03/16, 17: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
  •