Ricky ti ha suggerito di impostare manualmente, dal Pannello di Controllo, Stampanti e Scanner, la proprietà della stampante che usi per impostarne l’Orientamento Orizzontale. Credo che così funzionerà (fintanto che qualcun altro cambierà, anche da programma, questa impostazione).
Per farlo da programma bisognerebbe invece usare le API di windows, ma io sono un emerito ignorante e non ho trovato nulla che potessi copiare e suggerire.
Una possibile alternativa, se ti accontenti, potrebbe essere di rimpicciolire la userform prima di stamparla (per farla stare sul foglio stretto):
- Codice: Seleziona tutto
Private Sub UserForm_Click()
'scegli printer
SelPrint = Application.Dialogs(xlDialogPrinterSetup).Show
If SelPrint = False Then
MsgBox "Stampa Cancellata"
Exit Sub
End If
Me.Zoom = 50
Application.Wait (Now + TimeValue("0:00:03"))
Me.PrintForm
Application.Wait (Now + TimeValue("0:00:03"))
Me.Zoom = 100
End Sub
La parte di scelta della stampante e’ opzionale; la puoi eliminare se non ti serve (fino a End If)
Le due Wait non so se sono necessarie, prova anche ad eliminarle, se la provi.