You are here:--[RISOLTO] Bottone Stampa
[RISOLTO] Bottone Stampa2018-01-12T23:06:58+02:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Bottone Stampa

  • Autore
    Articoli
  • AvatarREAPAT
    Partecipante
      Post totali: 29

      Ciao a tutti,

      volevo chiedervi un aiuto per quanto riguarda un bottone “Stampa”.
      Il file è sempre il solito ma lo riposto sotto con il link.

      La situazione iniziale è visualizzare una listbox. Da qui nasce la necessità di avere un bottone che cliccandolo mi stampa l’intera listbox presente sia inizialmente che filtrata. (Bottone “Stampa Lista”).
      L’altro bottone che vorrei implementare è “Stampa Dettaglio Materiale” ovvero quando seleziono un materiale presente nella listbox, cliccando il bottone mi stampa tutto il dettaglio del materiale selezionato.

      Solo che mi trovo in difficoltà e non so da dove partire. Ho già creato i due bottoni di stampa.

      Qualcuno mi riuscirebbe a dare una mano per favore ?

      Grazie mille in anticipo,

      Patrick

      Link: http://www.filedropper.com/ricercamaterialeiniziale23

      • Questo argomento è stato modificato 1 anno, 9 mesi fa da sid sid.
    • BySalvBySalv
      Amministratore del forum
        Post totali: 520

        Ciao REAPAT, per la stampa del Listbox non è un problema, invece per il dettaglio del materiale dovresti scrivere una bozza.

        Oppure basta stampare solo la riga, oppure il dettaglio dei materiali comprende anche altri dati non presenti nel file?

        Ciao By Sal :bye:

      • AvatarREAPAT
        Partecipante
          Post totali: 29

          Ok, allora aspetto con ansia la stampa della listbox che mi sta creando problemi.

          Per quanto riguarda il dettaglio sono riuscito. Praticamente intercetto il materiale che seleziono e copio i dati presenti nella listbox in un foglio di lavoro, dopodiche stampo.

          La cosa che però non riesco a fare (però non risulta più un problema di VBA, o meglio si può fare a meno) è il problema seguente.

          Una volta che copio in un nuovo foglio di lavoro i dati dettaglio del materiale vorrei fare una cosa più evoluta. Un altro foglio che ho si chiama revisioni (dove ci sono tutte le revisioni sui materiali). Vorrei fare un check dell’ID e quando ho selezionato per la stampa il materiale es. ID 10 nel foglio revisioni mi va a controllare se ci sono revisioni inerente a quel materiale. Se sì allora prende la riga della revisione del materiale e me la copia nello stesso foglio dove ho copiato il dettaglio del materiale.

          Spero sia stato chiaro altrimenti provo a rispiegarlo.

          Fammi sapere

        • BySalvBySalv
          Amministratore del forum
            Post totali: 520

            Ciao REAPAT, ti ho creato il codice per il pulsante per la stampa, che intercetta i dati del Listbox siano essi filtrati o meno.

            Private Sub CommandButton22_Click() 'Stampa Lista
            Dim i As Long, r, sh As Worksheet, sh1 As Worksheet
            Set sh1 = Worksheets("Scheda_prodotti")
            Set sh = Worksheets("Stampa")
            sh1.Activate
            Application.ScreenUpdating = False
            sh.Activate
            Cells.Select
            Selection.Delete Shift:=xlUp
            sh1.Range("A1:G1").Copy sh.Cells(1, 1)
            r = 2
            For i = 0 To Me.ListBox1.ListCount - 1
                sh.Cells(r, 1) = Me.ListBox1.List(i, 0)
                sh.Cells(r, 2) = Me.ListBox1.List(i, 1)
                sh.Cells(r, 3) = Me.ListBox1.List(i, 2)
                sh.Cells(r, 4) = Me.ListBox1.List(i, 3)
                sh.Cells(r, 5) = Me.ListBox1.List(i, 4)
                sh.Cells(r, 6) = Me.ListBox1.List(i, 5)
                sh.Cells(r, 7) = Me.ListBox1.List(i, 6)
                r = r + 1
            Next i
            sh.Columns("A:D").Select
            Selection.Columns.AutoFit
            sh.Cells(1, 1).Select
            StampaT
            UserForm2.Show
            Application.ScreenUpdating = True
            sh1.Activate
            sh1.Cells(1, 1).Select
            End Sub

            ed anche la macro per la stampa questa

            Sub StampaT()
            Dim Risp, r
            Application.ScreenUpdating = False
            Risp = MsgBox("          Stampante = SI       Video = NO", vbYesNoCancel, "Dove inviare la stampa")
            If Risp = 2 Then GoTo 1
            r = Cells(Rows.Count, 1).End(xlUp).Row
            Range("A1:G" & r + 4).Select
            ActiveSheet.PageSetup.PrintArea = "$A$2:$G$" & r + 4
            With ActiveSheet.PageSetup
                .PrintTitleRows = "$1:$1"
            End With
            If Risp = 7 Then
              UserForm2.Hide
              ActiveWindow.SelectedSheets.PrintPreview
            ElseIf Risp = 6 Then
              ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
            End If
            1 Range("A1").Select
            Application.ScreenUpdating = True
            End Sub

            che ti chiede se vuoi la stampa a video oppure inviarla alla stampante.

            Il tutto si svolge nel Foglio “Stampa”

            ti allego anche il file

            http://www.filedropper.com/ricercamaterialeiniziale23_1

            Ciao By Sal :bye:

          • BySalvBySalv
            Amministratore del forum
              Post totali: 520

              Ciao REAPAT, ti ho creato il codice per il pulsante (che era vuoto) per la stampa, che intercetta i dati del Listbox siano essi filtrati o meno.

              Private Sub CommandButton22_Click() 'Stampa Lista
              Dim i As Long, r, sh As Worksheet, sh1 As Worksheet
              Set sh1 = Worksheets("Scheda_prodotti")
              Set sh = Worksheets("Stampa")
              sh1.Activate
              Application.ScreenUpdating = False
              sh.Activate
              Cells.Select
              Selection.Delete Shift:=xlUp
              sh1.Range("A1:G1").Copy sh.Cells(1, 1)
              r = 2
              For i = 0 To Me.ListBox1.ListCount - 1
                  sh.Cells(r, 1) = Me.ListBox1.List(i, 0)
                  sh.Cells(r, 2) = Me.ListBox1.List(i, 1)
                  sh.Cells(r, 3) = Me.ListBox1.List(i, 2)
                  sh.Cells(r, 4) = Me.ListBox1.List(i, 3)
                  sh.Cells(r, 5) = Me.ListBox1.List(i, 4)
                  sh.Cells(r, 6) = Me.ListBox1.List(i, 5)
                  sh.Cells(r, 7) = Me.ListBox1.List(i, 6)
                  r = r + 1
              Next i
              sh.Columns("A:D").Select
              Selection.Columns.AutoFit
              sh.Cells(1, 1).Select
              StampaT
              UserForm2.Show
              Application.ScreenUpdating = True
              sh1.Activate
              sh1.Cells(1, 1).Select
              End Sub

              ed anche la macro per la stampa questa

              Sub StampaT()
              Dim Risp, r
              Application.ScreenUpdating = False
              Risp = MsgBox("          Stampante = SI       Video = NO", vbYesNoCancel, "Dove inviare la stampa")
              If Risp = 2 Then GoTo 1
              r = Cells(Rows.Count, 1).End(xlUp).Row
              Range("A1:G" & r + 4).Select
              ActiveSheet.PageSetup.PrintArea = "$A$2:$G$" & r + 4
              With ActiveSheet.PageSetup
                  .PrintTitleRows = "$1:$1"
              End With
              If Risp = 7 Then
                UserForm2.Hide
                ActiveWindow.SelectedSheets.PrintPreview
              ElseIf Risp = 6 Then
                ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
              End If
              1 Range("A1").Select
              Application.ScreenUpdating = True
              End Sub

              che ti chiede se vuoi la stampa a video oppure inviarla alla stampante.

              Il tutto si svolge nel Foglio “Stampa”

              ti allego anche il file

              http://www.filedropper.com/ricercamaterialeiniziale23_1

              Ciao By Sal :bye:

            • AvatarREAPAT
              Partecipante
                Post totali: 29

                Ciao,

                Grazie mille tutto perfetto :)

                Solamente che ho trasportato il codice nel mio programma generale e mi trovo quando eseguo questo bottone il seguente errore:

                Errore di run time 1004: Metodo Print Preview dell’oggetto Sheets non riuscito

                Sub StampaT()
                Dim Risp, r
                Application.ScreenUpdating = False
                Risp = MsgBox("          Stampante = SI       Video = NO", vbYesNoCancel, "Dove inviare la stampa")
                If Risp = 2 Then GoTo 1
                r = Cells(Rows.Count, 1).End(xlUp).Row
                Range("A1:G" & r + 4).Select
                ActiveSheet.PageSetup.PrintArea = "$A$2:$G$" & r + 4
                With ActiveSheet.PageSetup
                    .PrintTitleRows = "$1:$1"
                End With
                If Risp = 7 Then
                  UserForm2.Hide
                  <strong>ActiveWindow.SelectedSheets.PrintPreview</strong>
                ElseIf Risp = 6 Then
                  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
                End If
                1 Range("A1").Select
                Application.ScreenUpdating = True
                End Sub

                Dove ho messo in grassetto è dove mi marca errore

              • BySalvBySalv
                Amministratore del forum
                  Post totali: 520

                  Ciao REAPAT, non si nota il Grassetto nel listato del Codice, ma si riconosce lo stesso con i tag “Strong”.

                  Sul mio PC funziona perciò non me ne sono accorto, ci sono 2 modi

                  1) nella macro “Apri” dopo “UserForm.Show” togli ‘vbModeless’ in questo caso non si può più spostare l’userform è fissa nello schermo.
                  2) nella proprietà dell’UserForm la vedi a sx(di norma) dell’editor del VBA trovi le proprietà del form, trovi “ShowModal” e la metti a “False”, di default è messa a “True”.

                  scegli o l’una o l’altra.

                  Ciao By Sal :bye:

                  • Questa risposta è stata modificata 1 anno, 10 mesi fa da BySalv BySalv.
                • AvatarREAPAT
                  Partecipante
                    Post totali: 29

                    Ciao,

                    ok grazie mille :))

                    A presto Grandissimo !!!

                  La discussione ‘[RISOLTO] Bottone Stampa’ è chiusa a nuove risposte.

                  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