› Excel e gli applicativi Microsoft Office › impostare misure proprie del foglio di stampa
-
AutoreArticoli
-
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 macroSub Macro1()Dim StampantePredefinita As VariantStampantePredefinita = Application.ActivePrinterApplication.ActivePrinter = "Brother QL-700 su ne03:"Range("i391:j391").SelectWith 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 = 110End WithSelection.PrintOut Copies:=1, Collate:=TrueApplication.ActivePrinter = StampantePredefinitaEnd SubSolo 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
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 impostazioniL'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
Grazie Marius, ho provato a modificare la macro come mi hai suggerito tu
Sub Macro1()Dim StampantePredefinita As VariantStampantePredefinita = Application.ActivePrinterApplication.ActivePrinter = "Brother QL-700 su ne03:"Range("i391:j391").SelectWith 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 = 110End WithSelection.PrintOut Copies:=1, Collate:=TrueApplication.ActivePrinter = StampantePredefinitaEnd SubMa 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 paginaMi permetto di fare un'altra domanda, la misura della pagina in quale unità di misura va espressa?
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 SubMa 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
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.
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
-
AutoreArticoli
