Afficher un message
Vieux 18/11/2005, 15h48   #7 (permalink)
Ti_
XLDnaute Impliqué
 
Avatar de Ti_
 
Date d'inscription: février 2005
Version Excel : Excel 2003 (PC)
Messages: 746
Par défaut Re:Imprimer Userform en mode paysage

Intéressant Michel, je connaissais kbd_event, mais je me demandais ce que donnerait ce vbkeySnapshot et j'aurais dit a priori qu'il copierait tout l'écran, ce qui n'aurait guère été intéressant. Je garderai cette astuce

Mais comme Carlos, ça ne m'intéressait guère de passer par Word, aussi j'ai un peu simplifié ta macro en passant simplement par une feuille Excel (laquelle peut être masquée au demeurant).

Avantage, outre qu'on n'a plus à piloter word, c'est qu'on peut très facilement définir une fois pour toutes les propriétés de cette feuille (Orientation, définition des marges, centrer horizontalement/verticalement etc.)

Private Sub CommandButton2_Click()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Application.ScreenUpdating = False
With Feuil3 'le codename de la feuille masque
.Paste .Range('A1')
'si la feuille était masquée
.Visible = xlSheetVisible
.PrintOut
.Shapes(1).Delete
.Visible = xlSheetHidden
End With
Application.ScreenUpdating = True
End Sub

On peut aussi lancer un printpreview, mais alors il ne faut pas oublier de masquer d'abord le userform par un me.Hide, sinon on plante irrémédiablement Excel !
__________________
Veriti
Ti_ est déconnecté   Réponse avec citation