Sviluppare funzionalita su Microsoft Office con VBA Opzioni in Metodo Printout

Login Registrati
Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
  • Autore
    Articoli
  • #18630 Score: 0 | Risposta

    PMC77
    Partecipante
      18 pts

      Buongiorno a tutti!

      Sto cercando di stampare una pagina di un multipage contenuto in una userform (quello attivo ovviamente)

      Qualcuno ha già fatto?

      Grazie

      #18632 Score: 0 | Risposta

      PMC77
      Partecipante
        18 pts

        Mi rispondo da solo:

        UserFormX.PrintForm

        Ma il problema è nell'orientamento orizzontale della pagina in quanto mi taglia verticalmente la Form fin dove sta...

        Se possibile evitando di scrivere kilometri di codice, ma impostando solo alcune proprietà che però NON riesco a trovare!

        Grazie!

        PS=un caffè offerto a chi risolve!

        #18636 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          Hai smanettato con le proprietà di PageSetup?

          With ActiveSheet.PageSetup
                  .PrintTitleRows = ""
                  .PrintTitleColumns = ""
                  .PrintArea = ""
                  .LeftHeader = ""
                  .CenterHeader = ""
                  .RightHeader = ""
                  .LeftFooter = ""
                  .CenterFooter = ""
                  .RightFooter = ""
                  .LeftMargin = Application.InchesToPoints(0.75)
                  .RightMargin = Application.InchesToPoints(0.75)
                  .TopMargin = Application.InchesToPoints(1)
                  .BottomMargin = Application.InchesToPoints(1)
                  .HeaderMargin = Application.InchesToPoints(0.5)
                  .FooterMargin = Application.InchesToPoints(0.5)
                  .PrintHeadings = False
                  .PrintGridlines = False
                  .PrintComments = xlPrintNoComments
                  .PrintQuality = 300
                  .CenterHorizontally = True
                  .CenterVertically = True
                  .Orientation = xlLandscape
                  .Draft = False
                  .PaperSize = xlPaperA4
                  .FirstPageNumber = xlAutomatic
                  .Order = xlDownThenOver
                  .BlackAndWhite = False
                  .Zoom = False
                  .FitToPagesWide = 1
                  .FitToPagesTall = 1
          End With
          #18638 Score: 0 | Risposta

          PMC77
          Partecipante
            18 pts

            Si, VF!

            Il problema è che io NON devo stampare uno Sheet, ma una UserForm!!!!!

            #18641 Score: 0 | Risposta

            vecchio frac
            Senior Moderator
              272 pts

              Adesso provo 🙂

              #18642 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                L'alternativa è piuttosto semplice, come idea (presa di Stackoverflow): crei un pulsantino sul form che invia ad un foglio particolare, vuoto, l'immagine della form stessa aperta in quel momento. Spostandoti poi sul foglio in questione puoi regolarne le diverse proprietà, quali ad esempio la stampa di una pagina di larghezza per farci stare l'output desiderato. L'esempio che segue funziona e trasferisce sul foglio "Print Userform" il form come immagine bitmap:

                Private Sub CommandButton1_Click()
                    Application.SendKeys "(%{1068})"
                
                    DoEvents
                    Application.Wait Now + TimeSerial(0, 0, 1)
                
                    Worksheets("Print Userform").Range("A1").PasteSpecial
                End Sub
                #18643 Score: 0 | Risposta

                PMC77
                Partecipante
                  18 pts

                  Ok, ok!

                  In realtà è un workaround...

                  Comunque grazie perché ad ora è l'unica soluzione possibile!

                  #18646 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    Sì è un workaround proprio perchè il metodo PrintForm non offre nessun'altra opzione. del resto nel medesimo codice puoi impostare tutte le proprietà del foglio in questione e lanciare subito la stampa, l'effetto è uguale.

                  Login Registrati
                  Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
                  Rispondi a: Opzioni in Metodo Printout
                  Gli allegati sono permessi solo ad utenti REGISTRATI
                  Le tue informazioni: