Risultati da 1 a 16 di 16

Discussione: Creare maschera per stampare selezione



  1. #1
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Creare maschera per stampare selezione

    Buongiorno a tutti.
    In un foglio Excel ho creato un archivio dati: nella prima casella c'è il numero progressivo, nella seconda una data (formato gg-mm-aaaa) e, successivamente altre voci.
    Ho necessità di stampare periodicamente (a cadenza mensile) i dati che vanno dal primo all'ultimo giorno del mese ed ho pensato di attivare la stampa da un pulsante con una macro ma non riesco ad ottenere una maschera che mi chieda da quale a quale data intendo stampare.

    Es.: alla data 1° maggio 2016 intendo stampare le voci del registro che vanno dal 1° al 30 aprile

    e, pertanto, vorrei creare una macro (attivata da un pulsante) che se cliccato, mi faccia apparire una maschera dove poter digitare il periodo che mi interessa stampare dal _______ al ______ lasciando inalterate tutte le altre selezioni di stampa (zoom, due facciate, ecc.).

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979

    Re: Creare maschera per stampare selezione

    Per poterti aiutare è utile se allegassi un file senza dati sensibili

  3. #3
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    Grazie della cortesia.
    Ti allego un file che ha le stesse caratteristiche di quello che sto usando (privo di dati sensibili) e, pertanto, molto meno corposo.
    Saluti
    File Allegati File Allegati

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979

    Re: Creare maschera per stampare selezione

    Senza ricorrere al VBA basta impostare il filtro

    Filtro/personalizzato:

    condizione1: >= 01/01/2016

    condizione2: <= 31/01/2016

  5. #5
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    Ti ringrazio per la risposta.
    Purtroppo però, considerando che il pc lo utilizza anche chi non è molto capace e si dice preoccupato ad usarlo, sto cercando di fare in modo che tutto possa funzionare con delle scelte obbligate (tanto di pulsanti e macro) ed io dovrei creare proprio un avviso ad ogni inizio nuovo mese dove sarà sufficiente un click per stampare tutte le righe che si riferiscono al solo mese precedente, senza neanche la necessità di visualizzare necessariamente il foglio da cui vengono stampati i dati. E' anche probabile che si riesca a fare con i filtri ma io non riesco.
    Comunque ti ringrazio e ti saluto, Giuseppe

  6. #6
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Creare maschera per stampare selezione

    Da provare
    Codice: 
    Sub StampMesePrec()
    Dim d1 As Date, d2 As Date, Mese As String, v1, v2
    Mese = InputBox("Digitare Mese & Anno del mese da stampare," & vbCrLf & "Ex Marzo = 3_2016", , 0)
    If InStr(Mese, "_") > 0 Then
        v1 = Mid(Mese, 1, InStr(Mese, "_") - 1)
        v2 = Mid(Mese, InStr(Mese, "_") + 1, 4)
        d1 = DateSerial(v2, v1, 1)
        d2 = DateSerial(v2, v1 + 1, 0)
        ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2
        ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2, _
                Criteria1:=">=" & Format(d1, "mm/dd/yyyy"), Operator:=xlAnd, _
                Criteria2:="<=" & Format(d2, "mm/dd/yyyy")
        Sheets("Foglio1").PrintOut
        ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2
    End If
    End Sub

  7. I seguenti utenti hanno dato un "Like"


  8. #7
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    RISOLTO!!!
    Ciao Raffaele,
    grazie dell'impegno e volevo dirti che ho provato la tua macro (effettivamente è proprio quella che cercavo).
    Funziona sul foglio esempio ma l'unica cosa negativa è che quando cerco di adattarla al mio foglio originale (cambiando il nome della tabella) mi rende solo la stampa di un foglio bianco e, pertanto, sto lottando per riuscire a trovare il motivo.

    La tua risposta è perfetta ....... sono io che sono un misero principiante perché sono certo di aver commesso qualche inesattezza. Comunque, non appena sarò riuscito, ti avvertirò per ringraziarti nuovamente. :274:

    Giuseppe



    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Da provare
    Codice: 
    Sub StampMesePrec()
    Dim d1 As Date, d2 As Date, Mese As String, v1, v2
    Mese = InputBox("Digitare Mese & Anno del mese da stampare," & vbCrLf & "Ex Marzo = 3_2016", , 0)
    If InStr(Mese, "_") > 0 Then
        v1 = Mid(Mese, 1, InStr(Mese, "_") - 1)
        v2 = Mid(Mese, InStr(Mese, "_") + 1, 4)
        d1 = DateSerial(v2, v1, 1)
        d2 = DateSerial(v2, v1 + 1, 0)
        ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2
        ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2, _
                Criteria1:=">=" & Format(d1, "mm/dd/yyyy"), Operator:=xlAnd, _
                Criteria2:="<=" & Format(d2, "mm/dd/yyyy")
        Sheets("Foglio1").PrintOut
        ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2
    End If
    End Sub

  9. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2810
    Versione Office
    Excel 2013
    Likes ricevuti
    1022
    Likes dati
    979

    Re: Creare maschera per stampare selezione

    Per analizzare la macro e vedere il motivo della stampa in bianco, esegui la macro passo-passo con F8, così facendo troverai la riga incriminata.

  10. #9
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    La macro è perfetta però, ripeto, sul mio foglio ha qualche problema.
    Ho provato ad eseguire passo-passo con F8 e, chiaramente, non c'è alcuna riga incriminata e, pertanto, ritengo che il problema possa dipendere da uno dei seguenti fattori che, magari, contrastano con i comandi della macro:
    - ogni riga della tabella è composta da 16 celle, tutte collegate ad altrettante celle di una scheda di inserimento;
    - la tabella (che nel mio caso si chiama «TABELLA 64») deve essere stampata (per problemi di spazio) su due fogli affiancati (cosa che regolarmente ho impostato mediante l'area di stampa e che funziona bene se stampo l'intero registro).
    L'effetto che ottengo è che mi stampa tutto il registro senza tener conto del periodo, sebbene mi chieda regolarmente di inserire il periodo che mi interessa ed indipendentemente dalla selezione che digito.
    Sono certo che sbaglio qualcosa ma non so cosa!!:235:

    Ops! Se dico una bestialità non ridete!

    Ma è possibile che forse bisognerà modificare (oltre chiaramente al nome del foglio ed al nome della tabella) le ultime due righe della macro:
    Sheets("Foglio1").PrintOut
    ActiveSheet.ListObjects("Tabella1").Range.AutoFilter Field:=2


    nel senso che debba cambiare uno dei comandi per impedire che mi stampi 12 fogli (cioè tutto il registro) e non soltanto uno o due fogli (considerando che in ogni foglio sono presenti 20 righe?

    Boh?





    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Per analizzare la macro e vedere il motivo della stampa in bianco, esegui la macro passo-passo con F8, così facendo troverai la riga incriminata.
    Ultima modifica fatta da:giteti58; 28/05/16 alle 21:20 Motivo: forse ho capito l'errore

  11. #10
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Creare maschera per stampare selezione

    Certo che i nomi vanno cambiati
    Visualizza il foglio con la tabella premi Alt+F11 e incolla sulla destra.
    Modificare le tre >>>Tabella1
    Modificare lSheets("Foglio1").PrintOut
    Verficare che le date siano in colonna 2 della tabella
    Poi che in ogni foglio sono presenti 20 righe, non capisco e lo dici solo adesso mà se non vedo l'originale non saprei cosa intendi due fogli affiancati? Almeno dimmi l'area?

  12. #11
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    Perdonami ma solo adesso, riflettendoci, ammetto che avrei dovuto descrivere con maggiore precisione il foglio.
    Ad ogni buon conto te ne allego uno (privo, come da tue disposizioni, dei dati sensibili).
    Si tratta, praticamente, di un registro che, avendo sedici colonne (diciassette perché nella prima di ambedue le facciate si ripete il progressivo), deve essere stampato su due diverse facciate e nella facciata di destra continuano le righe riferite a ciascun progressivo della facciata sinistra.
    Nel facsimile che ti invio ho chiaramente modificato il nome del file, quello del foglio e di ciascuna delle colonne.
    Grazie e scusa per l'imprecisione che questa vicenda mi ha fatto perdere due degli ultimi tre capelli che mi erano rimasti. :256:
    Giuseppe
    File Allegati File Allegati

  13. #12
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Creare maschera per stampare selezione

    Almeno le date? Sapere per quale motivo ci sono rif.riga in colonna A. Comunque questo codice piu lento conta le righe in A, controlla le date in B e nasconde anche la riga se non c'è date. Devi salvare in Xlsm
    Codice: 
    Sub StampMese_BIS()
    Dim d1 As Date, d2 As Date, Mese As String, v1, v2, Ur, X
    Mese = InputBox("Digitare Mese & Anno del mese da stampare," & vbCrLf & "Ex Marzo = 3_2016", , 0)
    Application.ScreenUpdating = False
    If InStr(Mese, "_") > 0 Then
        v1 = Mid(Mese, 1, InStr(Mese, "_") - 1)
        v2 = Mid(Mese, InStr(Mese, "_") + 1, 4)
        d1 = DateSerial(v2, v1, 1)
        d2 = DateSerial(v2, v1 + 1, 0)
        ActiveSheet.ListObjects("Tabella64").Range.AutoFilter Field:=2
        Ur = Range("A" & Rows.Count).End(xlUp).Row
        For X = 6 To Ur + 1
            If Cells(X, 2).Value >= d1 And Cells(X, 2).Value <= d2 Or Cells(X, 2) = "" Then
            Else
                Rows(X & ":" & X).Hidden = True
            End If
        Next X
        Sheets("RegistroABC").PrintOut
        Rows(X & ":" & Ur).Hidden = False
    End If
    Application.ScreenUpdating = True
    End Sub

  14. #13
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    Caro Raffaele volevo spiegarti che i rif.riga in Colonna A sono stato costretto a metterli perché non riuscivo altrimenti a rendere progressiva quella colonna che, a sua volta, mi deve restituire il numero progressivo sulla scheda di inserimento.
    Chiaramente è forse un passaggio che si poteva ovviare ma sono in VBA non un principiante ma di più. Però mi ci sto appassionando e, proprio per questo, sto cercando di spiegarmi le differenze tra le due macro che mi hai inviato ed i relativi diversi funzionamenti.
    Ho notato che la macro che mi hai inviato mi nasconde tutte le righe che hanno una data diversa da quella selezionata e la stampa inizia proprio da quella ma poi non la smette più (forse perché prende la data indicata come inizio e poi non smette). Quindi, nel caso in cui io dovessi stampare la parte del registro relativa al solo mese di maggio 2010 la stampante non si ferma più. Forse basterà mettere un codice che dal mese successivo a quello indicato la stampa si deve stoppare. (Non so se è una cosa possibile).
    Non pensare male che non voglio approfittarne.... vorrei soltanto cominciare capire. Grazie

  15. #14
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    Forse ho capito l'inghippo!!!
    Il foglio di cui ti sto parlando è in effetti la copia di un altro foglio che viene generato dalla scheda di inserimento.
    Più in particolare io digito i dati su di una scheda che, mediante una macro va a compilare un archivio. Il foglio che tu vedi è in effetti una copia del foglio archivio dove i dati vengono copiati con un "bovino" =Foglio!A1 e così via (questo perché il foglio in questione deve essere inviato ad un ufficio esterno e, quindi, non c'è bisogno di copiare tutti i dati ed alcuni di essi sono accorpati (es: Cognome+Nome+Luogo+DataNasc.).

    NON arrabbiarti ma mano mano mi sto rendendo conto che sono tutte cose che forse dovevo dire dall'inizio!! :41:

  16. #15
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Creare maschera per stampare selezione

    Nel primo Tuo allegato, c'era una Tabella regolare.
    Tutta scritta ed aveva solo la riga finle senza dati.
    Il codice funzionava con la sola riga di comando
    Date>=d1 e Date<=d2. Gia qui cambiando i "Nomi" scritti sopra doveva funzionare.

    Il secondo allegato mi mostra una tabella con 160/180 riferimenti di N° nella colonna A (senza nessun'altro valore, però 16 pagine in stampa). Dato che non potevo usare il codice precedente, perchè oltre alle date dovevo anche verificare se la Data fosse presente. Motivo per il quale ho fatto un ciclo For e solo due pagine in stampa sinistra e destra.

    In tutti i due casi il codice funziona, però come detto non ho visto la tabella reale. Mi ero dimenticato di dirti che sotto la tabella in colonna B le celle sono bordate per oltre un milione di righe.
    Vai sulla tabella, filtra i dati, ex scegli casomai 2016 e casomai solo Marzo dai OK. A monitor vedrai le righe filtrate, ora se vai in Anteprima stampa Ti dice quante pagine sono in tutto. Per il resto non ho capito se hai risolto

  17. #16
    L'avatar di giteti58
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    Abruzzo
    Età
    59
    Messaggi
    127
    Versione Office
    Excel 2016
    Likes ricevuti
    2
    Likes dati
    45

    Re: Creare maschera per stampare selezione

    Raffaele hai ragione. Piano piano mi sto rendendo conto di tante cose:
    1) con l'anteprima di stampa ho notato che ho 16 pagine (praticamente 8 sinistre e otto destre del registro che dovrei stampare);
    2) le righe fino ad ora da me compilate sono 160: questi dati sono stati presi da una tabella già scritta.
    E' forse il caso che io, in breve, debba spiegarti di cosa sto parlando.
    Ho creato una "scheda di inserimento" nella quale, con molti campi obbligati (caselle a discesa ed altro) nella quale bisogna inserire dati (ho limitato al massimo le possibilità di errori, errate cancellazioni, ecc. I dati finiscono in un "archivio" che ho cercato di rendere inaccessibile direttamente ma lo si può fare mediante una "scheda di consultazione" (con macro, ricerche, ecc.). Visto che alcuni di questi dati devono essere trasmessi ad alcuni uffici sto creando il nostro ormai famoso "registro" che deve essere periodicamente stampato. Più in particolare ad ogni inizio del nuovo mese deve essere stampato tutto il mese finito, 16 voci per ogni riga/record (ne appaiono 17 perché il numero progressivo viene riportato, per una più agevole consultazione anche nella pagina di destra dove proseguono le voci di ciascun record). Può però verificarsi il caso che io debba stampare un periodo precedente, ad esempio il mese di gennaio 2013. La tua macro, nonostante i miei sgambetti (dovuti soltanto alla mia inesperienza in materia) funziona benissimo perché mi va a cercare il periodo che indico e mi nasconde le altre righe, ma l'unico problema è che la stampante di stampa altre 14 pagine (cioè, oltre alle due sx e dx del periodo richiesto, mi stampa altre 14 fogli - 7 per ogni lato - senza record ma con la sola intestazione -Nr.Pr. Data Campo ecc.). Ritengo che l'errore sia mio per un'impostazione sbagliata ma non riesco a risolvere. Ti allego un prospetto in cui riepilogo il funzionamento di questo file comunque posso affermare con certezza che il foglio "registro" è praticamente quello che ti ho allegato. Il problema è quello tratteggiato di rosso. Saluti, Giuseppe
    File Allegati File Allegati

Discussioni Simili

  1. [Risolto] Macro per creare righe di Codici a Barre da stampare
    Di Stiui nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 22/02/17, 17:05
  2. Macro per stampare una selezione A1:046
    Di filippo nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 14/02/17, 17:35
  3. Macro per stampare solo la selezione
    Di cencio nel forum Domande su Excel VBA e MACRO
    Risposte: 22
    Ultimo Messaggio: 05/01/17, 15:35
  4. Creare una maschera per compilare il bollettino postale Svizzero.
    Di esatb nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 29/12/16, 19:45
  5. Macro per stampare selezione
    Di Adi_90 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 10/06/16, 00:31

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
  •