Excel e gli applicativi Microsoft Office impostare misure proprie del foglio di stampa

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

    Piperino
    Partecipante

      Buongiorno a tutti, non sono nuovo del forum, ma non so come mai mi è toccato fare una nuova iscrizione, fatto sta ho fatto una ricerca nella barra di ricerca e non ho trovato nessuna discussione in merito a l'argomento papersize.

      Mi spiego meglio:
      E' tutta la mattina che provo a risolvere un problema, ma visto che non riesco a risolverlo mi trovo al punto di chiedere aiuto a voi.
      Sto facendo un piccolo programma per gestire una piccola biblioteca, e in due punti diversi del file ho bisogno di stampare di etichette di misure diverse con la stampante Brother QL-700.
      Ho provato con il registratore di macro e mi da un generico papersize = 274 e papersize = 333
      Indagando un po' sul web alla guida di microsoft ho visto che si possono impostare diversi formati preimpostati  tra cui un formato impostato dall'utente inserendo "papersize = vbPRPSUser".
      A questo punto sono andato a indagare su come utilizzare l'opzione vbPRPSUser e sarei arrivato a questa macro

      Sub Macro1()

      Dim StampantePredefinita As Variant
      StampantePredefinita = Application.ActivePrinter
      Application.ActivePrinter = "Brother QL-700 su ne03:"

      Range("i391:j391").Select
      With Worksheets("Catalogo").PageSetup
      .Orientation = xlPortrait
      .Printer.PaperSize = vbPRPSUser
      .Printer.Height = 42 'altezza della pagina
      .Printer.Width = 62 'larghezza della pagina
      .LeftMargin = Application.InchesToPoints(0)
      .RightMargin = Application.InchesToPoints(0)
      .TopMargin = Application.InchesToPoints(0)
      .BottomMargin = Application.InchesToPoints(0)
      .HeaderMargin = Application.InchesToPoints(0)
      .FooterMargin = Application.InchesToPoints(0)
      .Zoom = 110
      End With
      Selection.PrintOut Copies:=1, Collate:=True
      Application.ActivePrinter = StampantePredefinita
      End Sub

      Solo dando il via alla macro mi si ferma alla riga
      .Printer.PaperSize = vbPRPSUser
      dandomi come errore "Errore di run-time 438 proprietà o metodo non supportati dall'oggetto.
      Sono andato ulteriormente ad indagare e mi sono fatto delle idee, che mi ha portato a fare altri tentativi, che non vi sto a descrivere perché probabilmente vi confonderei le idee e perché i risultati sono stati scarsi.

      Vi ringrazio sin da adesso per il tempo che dedicate al mio piccolo problema

      #8353 Score: 0 | Risposta

      Marius44
      Moderatore
        58 pts

        Ciao

        Non ne sono certo ma ritengo che devi agire così:

        Printer.Height = 10080 '- 7 pollici  per esempio
        Printer.Width = 7200 '- 5 pollici per esempio
        Printer.Print "" '- Inizializza le impostazioni 

        L'impostazione della proprietà Altezza o Larghezza della stampante imposta automaticamente PaperSize su vbPRPSUser e non è necessaria quella riga di codice che ti blocca.

         

        Fai sapere. Ciao,

        Mario

        #8362 Score: 0 | Risposta

        Piperino
        Partecipante

          Grazie Marius, ho provato a modificare la macro come mi hai suggerito tu

          Sub Macro1()

          Dim StampantePredefinita As Variant
          StampantePredefinita = Application.ActivePrinter
          Application.ActivePrinter = "Brother QL-700 su ne03:"

          Range("i391:j391").Select
          With Worksheets("Catalogo").PageSetup
          .Orientation = xlPortrait
          .Printer.Height = 42 'altezza della pagina
          .Printer.Width = 62 'larghezza della pagina
          .LeftMargin = Application.InchesToPoints(0)
          .RightMargin = Application.InchesToPoints(0)
          .TopMargin = Application.InchesToPoints(0)
          .BottomMargin = Application.InchesToPoints(0)
          .HeaderMargin = Application.InchesToPoints(0)
          .FooterMargin = Application.InchesToPoints(0)
          .Zoom = 110
          End With
          Selection.PrintOut Copies:=1, Collate:=True
          Application.ActivePrinter = StampantePredefinita
          End Sub

          Ma mi da sempre il solito errore "Errore di run-time 438 proprietà o metodo non supportati dall'oggetto." evidenziandomi la riga .Printer.Height = 42 'altezza della pagina

          Mi permetto di fare un'altra domanda, la misura della pagina in quale unità di misura va espressa?

          #8375 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            Ma per impostare i valori del foglio di carta hai provato a registrare una macro e a guardare il risultato?

            Essendo in Excel devi usare le costanti xl invece di quelle VB6...

            il foglio A4 corrisponde a .PaperSize = xlPaperA4. Segue esempio.

            Option Explicit
            
            Sub Macro1()
            Dim StampantePredefinita As Variant
            StampantePredefinita = Application.ActivePrinter
            Application.ActivePrinter = "Brother QL-700 su ne03:"
            
            Range("i391:j391").Select
            
            With ActiveSheet.PageSetup
                    .LeftHeader = ""
                    .CenterHeader = ""
                    .RightHeader = ""
                    .LeftFooter = ""
                    .CenterFooter = ""
                    .RightFooter = ""
                    .LeftMargin = Application.InchesToPoints(0.7)
                    .RightMargin = Application.InchesToPoints(0.7)
                    .TopMargin = Application.InchesToPoints(0.75)
                    .BottomMargin = Application.InchesToPoints(0.75)
                    .HeaderMargin = Application.InchesToPoints(0.3)
                    .FooterMargin = Application.InchesToPoints(0.3)
                    .PrintHeadings = False
                    .PrintGridlines = False
                    .PrintComments = xlPrintNoComments
                    .PrintQuality = 600
                    .CenterHorizontally = False
                    .CenterVertically = False
                    .Orientation = xlPortrait
                    .Draft = False
                    .PaperSize = xlPaperA4
                    .FirstPageNumber = xlAutomatic
                    .Order = xlDownThenOver
                    .BlackAndWhite = False
                    .Zoom = 100
                    .PrintErrors = xlPrintErrorsDisplayed
                    .OddAndEvenPagesHeaderFooter = False
                    .DifferentFirstPageHeaderFooter = False
                    .ScaleWithDocHeaderFooter = True
                    .AlignMarginsHeaderFooter = True
                    .EvenPage.LeftHeader.Text = ""
                    .EvenPage.CenterHeader.Text = ""
                    .EvenPage.RightHeader.Text = ""
                    .EvenPage.LeftFooter.Text = ""
                    .EvenPage.CenterFooter.Text = ""
                    .EvenPage.RightFooter.Text = ""
                    .FirstPage.LeftHeader.Text = ""
                    .FirstPage.CenterHeader.Text = ""
                    .FirstPage.RightHeader.Text = ""
                    .FirstPage.LeftFooter.Text = ""
                    .FirstPage.CenterFooter.Text = ""
                    .FirstPage.RightFooter.Text = ""
                End With
                
            Selection.PrintOut Copies:=1, Collate:=True
            Application.ActivePrinter = StampantePredefinita
            End Sub
            
            #8477 Score: 0 | Risposta

            Piperino
            Partecipante

              vecchio frac ha scritto:

              Ma per impostare i valori del foglio di carta hai provato a registrare una macro e a guardare il risultato?

              si ho provato e il risukltato è stato questo

              Piperino ha scritto:

              Ho provato con il registratore di macro e mi da un generico papersize = 274 e papersize = 333

              però al momento della riesecuzione della macro registrata lui stampa sul formato impostato sull'anteprima di stampa fregandosene del numero messo.

               

              vecchio frac ha scritto:

              il foglio A4 corrisponde a .PaperSize = xlPaperA4. Segue esempio.

              come vedi dal mio primo posto avevo indagato anche su questo, e avevo trovato la soluzione, ma io devo stampare con una stampa etichetta e due etichette di misure diverse (create da me) in due momenti diversi

            Login Registrati
            Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
            Rispondi a: impostare misure proprie del foglio di stampa
            Gli allegati sono permessi solo ad utenti REGISTRATI
            Le tue informazioni: