You are here:--Userform con bottone stampa da selezione singola/multi da listbox
Userform con bottone stampa da selezione singola/multi da listbox2018-02-13T13:13:51+02:00

Home Forum Domande su Excel VBA e MACRO Userform con bottone stampa da selezione singola/multi da listbox

  • Autore
    Articoli
  • AvatarDastardly
    Partecipante
      Post totali: 19

      <!– [if gte mso 9]><xml>
      <o:OfficeDocumentSettings>
      <o:AllowPNG/>
      </o:OfficeDocumentSettings>
      </xml><![endif]–>

      Salve a tutti

      Per chi volesse darmi una mano,

      Ho una Userform AnagClienti, dove ho creato un pulsante stampa che apre un’altra userform denominata ‘frmStampa’ , composta da una listbox che si popola con dati presi dal foglio AnagClienti, e da 3 ceckbox di cui una seleziona tutto, una stampa Logo, una stampa intestazione, da un pulsante anteprima stampa e un pulsante stampa. Qui sorge un problema. Se Faccio partire la FrmAnagClienti, premo il pulsante stampa si apre la userform frmstampa, qui sia che premo anteprima stampa che stampa, blocca la finestra e sono obbligato a chiudere excel. Se invece faccio partire la sola frmStampa e premo sia uno o l’altro pulsante tutto va bene. Volevo sapere se si può risolvere questo problema che blocca tutto.

      Poi avrei bisogno di un altro aiuto che riguarda il linguaggio VBA da applicare ai pulsanti anteprima stampa e stampa. Tutti e due i pulsanti, in base alla selezione che faccio nella listbox,( che prende i dati dal foglio AnagClienti dalla cella A4 alla D4 in giù) che sia singola o multiselect, mi faccia vedere l’anteprima o la stampa dei dati presi dal foglio AnagClienti dalla cella AN47 alla BB95 per il cliente 1 , dalla AN96 alla BB144 per il cliente 2 e così via per gli altri.

      Invece per quanto riguarda le checkbox stampa logo e stampa intestazione, dò <span style=”mso-spacerun: yes;”> </span>o no, la possibilità di poter stampare il logo della ditta<span style=”mso-spacerun: yes;”>  </span>e la sua intestazione nella scheda di ogni cliente.

      Spero di essere stato chiaro nella spiegazione e se è fattibile la cosa.

      Qua sotto allego il file.

      http://www.filedropper.com/schermataanagclienti21-4_1

    • BySalvBySalv
      Amministratore del forum
        Post totali: 479

        Ciao Dastardly, questa la macro modificata per vedere l’anteprima stampa

        Private Sub CommandButton1_Click() ' Anteprima di Stampa
        Application.ScreenUpdating = True
        Sheets("AnagClienti").Select
        FrmStampa.Hide
        FrmAnagClienti.Hide
        'ActiveSheet.PageSetup.PrintArea = "$A$3:$P$16"'per impostare l'area di stampa
        ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
        'Unload FrmStampa
        ActiveWindow.SelectedSheets.PrintPreview
        FrmAnagClienti.Show
        FrmStampa.Show
        End Sub

        Ho notato 2 cose non hai selezionato il foglio interessato, forse lo selezioni prima, poi non è impostata un area di stampa, con “UsedRange” può anche significare il foglio intero o almeno tutto quello dove ci sono dati.

        Quello che bloccava era che rimaneva aperta anche la Form dei clienti, per cui non riusciva a visualizzare l’anteprima.

        come infatti io le chiudo e poi le riapro..

        Fai sapere se è risolto che lo chiudo anche.

        Ciao By Sal :bye:

      • AvatarDastardly
        Partecipante
          Post totali: 19

          Ciao BySalv

          Ti ringrazio per il tuo intervento e ti chiedo scusa del ritardo per risponderti.

          Siccome non sono un esperto di VBA il listato che hai modificato lo copiato guardando in giro tra vari esempi pubblicati in internet.

          La modifica che hai apportato per far si che non si inchiodi è ok, e lì il problema è risolto.

          Adesso quello che chiedevo nel primo post per  la userform frmStampa, se è fattibile,  avrei bisogno del  codice VBA dei pulsanti anteprima stampa e stampa da applicare  alla selezione che faccio nella listbox  che sia singola o multiselect, mi faccia vedere l’anteprima o la stampa della Scheda creata nel foglio AnagClienti dalla cella AN47 alla BB95 per il cliente 1 , dalla AN96 alla BB144 per il cliente 2 e così via per gli altri. Esempio se voglio stampare il cliente 4 nell’anteprima vedrò solo la sua scheda , se invece seleziono più di uno vedrò solo quelli selezionati. Tutto se è possibile farlo.

          grazie

          ciao Dastardly

           

           

           

           

           

          • BySalvBySalv
            Amministratore del forum
              Post totali: 479

              Ciao Dastardly, infatti io avevo notato che dalla colonna AN52 incominciavano dei dati di clienti.

              Anche se il tuo metodo, non è molto pratico, ci vuole un sacco di tempo, ogni volta che aggiungi un cliente devi creare una nuova scheda.

              ora vedo cosa posso fare.

              Ciao By Sal  :bye:

               

               

          • BySalvBySalv
            Amministratore del forum
              Post totali: 479

              Ciao Dastardly, ho trovato un poco di tempo per risolvere il problema delle stampe.

              Però ho creato un nuovo Foglio, “Scheda Clienti”, che non è altro che il tuo prospetto per la stampa solo che con solo quello puoi stampare tutti i clienti, basta cambiare il numero del cliente in “D9”, in questo modo tutti i tuoi dati dalla colonna N non servono più puoi farne quello che vuoi.

              Ma attenzione che nel Foglio “Scheda Clienti” ci sono formule, quindi attenzione a non cancellarle.

              Ti ho anche modificato la proprietà del ListBox1 delle Stampe in quanto non ti permetteva la multiselezione, ora puoi spuntare quelli che devi stampare, prima ne potevi selezionare uno alla volta o tutti insieme.

              Ho anche modificato le Macro per le stampe

              fai sapere se è Risolto in modo che posso chiudere il Topics.

              Ciao By Sal  :bye:

              il link al file

              https://mega.nz/#!gMUSFbha!LKuXcAE_CiRgOlaPkd8-w6LDPA6ONTwNkHMgriMqLE0

               

            • AvatarDastardly
              Partecipante
                Post totali: 19

                Ciao By Salv

                ho dato un’occhiata alle modifiche apportate al file.

                La selezione della listbox1 è perfetta. Per quanto riguarda l’anteprima , se seleziono più clienti ,vedo che mi fa visualizzare solo un cliente alla volta e finito di stamparne uno mi riapre la schermata anteprima per vedere l’altro e lo stesso lo fa quando premo il pulsante  stampa. Non c’è modo da poter vedere nell’anteprima i clienti selezionati assieme  invece  che separati cosi da poterli vedere e stampare una volta sola?

                Cmq ti ringrazio per il tuo aiuto.

                ciao Dasty

                 

              • BySalvBySalv
                Amministratore del forum
                  Post totali: 479

                  Ciao Dastardly, questo perche i dati li può visualizzare solo cambiando il dato in D9 quindi uno alla volta anche per la stampa, qual’è il motivo di visualizzarli tutti insieme?, tanto i dati sono quelli che sono nel foglio dei dati clienti.

                  Anche se si usa il tuo metodo della colonna N, quello che non vuoi visualizzare lo vedi lo stesso perche sono in sequenza, quindi li vedi tutti.

                  posso considerare Risolto e chiudo il Topics?

                  Ciao By Sal  :bye:

                   

                   

                   

                • AvatarDastardly
                  Partecipante
                    Post totali: 19

                    Ciao BySalv.

                    se mi dici così , tengo buono il tuo metodo.

                    un’ultima cosa, poi puoi mettere risolto il topic. Nell’userfor Stampa ho messo due checkbox, una stampa logo l’altra stampa intestazione. Si riesce a far si che selezionandoli stampo la scheda cliente con il logo e l’intestazione altrimenti niente?

                    grazie

                  Devi essere loggato per rispondere a questa discussione.

                  Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                  Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                  Chiudi