› Sviluppare funzionalita su Microsoft Office con VBA › Opzioni in Metodo Printout
-
AutoreArticoli
-
Buongiorno a tutti!
Sto cercando di stampare una pagina di un multipage contenuto in una userform (quello attivo ovviamente)
Qualcuno ha già fatto?
Grazie
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!
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 WithSi, VF!
Il problema è che io NON devo stampare uno Sheet, ma una UserForm!!!!!

Adesso provo 🙂
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 SubOk, ok!
In realtà è un workaround...
Comunque grazie perché ad ora è l'unica soluzione possibile!

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.
-
AutoreArticoli
