Mise en page et impression d'un UserForm

avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 12 janv. 2007 à 04:04
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 - 12 janv. 2007 à 21:50
Bonjour,

Je voudrais imprimer un UserForm en 3 copies.

Pour ce qui est de l'impression, tous va bien avec ce code:
Private Sub CommandButton3_Click()
UserForm3.PrintForm
UserForm3.PrintForm
UserForm3.PrintForm
End Sub

Le problème est que la mise en page ne ce fait pas. Il me manque une partie du UserForm.
Si au lieu de simprimer "Portrait" il s'imprimait "Paysage", je suis sure que ça fonctionnerais.

Mais comment faire pour le mettre en Paysage centré dans la page?

6 réponses

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
12 janv. 2007 à 05:10
bonjour

Tu peux tester cette procédure (exemple Excel) pour imprimerl'USF en mode paysage.
(tu pourras encore redimensionner l'objet collé s'il dépasse des bords de la feuille)

Option Explicit
 
Private Declare Sub keybd_event Lib "user32" ( _
        ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
        ByVal dwExtraInfo As Long)
 
Private Sub CommandButton1_Click()
    Dim Ws As Worksheet
   
    'Copie d'écran de la forme active
    keybd_event vbKeySnapshot, 1, 0&, 0&
    DoEvents
   
    'Ajoute une feuille pour coller l'image de la forme
    Set Ws = Sheets.Add
    Ws.PageSetup.Orientation = xlLandscape
    Ws.Paste
   
    'impression centrée dans la page
    With Ws
        .PageSetup.CenterHorizontally = True
        .PageSetup.CenterVertically = True
        .PrintOut
    End With
End Sub

michel
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
12 janv. 2007 à 12:23
Merci de ta réponse mais rendu à se code, ça ne marche pas:
Private Declare Sub keybd_event Lib "UserForm3" ( _
        ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
        ByVal dwExtraInfo As Long)
End Sub
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
12 janv. 2007 à 14:37
Salut,

Michel ne t'as pas mis .... Lib "UserForm3" mais ... "user32".
UserForm3 n'est pas une librairie, mais un objet...

@++


  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
12 janv. 2007 à 18:24
Je suis désolé j'ai mal inscris 

Mais je crois que je ne comprend pas le principe de se code:
Private Declare Sub keybd_event Lib "user32" ( _
        ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
        ByVal dwExtraInfo As Long)

Ou dois-je l'insérer se code?

Je cherche mais ne comprend pas ou le placer!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
12 janv. 2007 à 18:44
bonsoir

la procédure doit être placée dans le module objet du UserForm

L'USF doit contenir un CommandButton nommé "CommandButton1"

bon week end
michel
0
avyrex1926 Messages postés 360 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 3 janvier 2012 3
12 janv. 2007 à 21:50
Je sens qu'ont y arrivent,

Bon j'ai placé se code à la bonne place :
Private Declare Sub keybd_event Lib "user32" ( _
        ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
        ByVal dwExtraInfo As Long)

Maintenant, il reste un problème. Il me donne un erreur de compilation: Sub ou Fonction non définie:

Private Sub CommandButton3_Click()
Dim Ws As Worksheet
   
    'Copie d'écran de la forme active
   keybd_event
vbKeySnapshot, 1, 0&, 0&
    DoEvents
   
    'Ajoute une feuille pour coller l'image de la forme
    Set Ws = Sheets.Add
    Ws.PageSetup.Orientation = xlLandscape
    Ws.Paste
   
    'impression centrée dans la page
    With Ws
        .PageSetup.CenterHorizontally = True
        .PageSetup.CenterVertically = True
        .PrintOut
    End With


End Sub

Qu'est-ce que ça peut-être?
0
Rejoignez-nous