IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Imprimer un userform au format paysage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Imprimer un userform au format paysage
    Bonjour,

    Comme l'indique le sujet, je souhaite imprimer un userform au format paysage. Pour le moment mon code me permet de l'imprimer au format portrait, et le problème est donc qu'il ne remplit que la moitié d'une page A4. Voici mon code, trés basique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton1_Click()
        Me.PrintForm
    End Sub
    Pour effectuer mes test je n'imprime pas, mais j'enregistre au format PDF, celà est-il du à la fonction ou aux paramétres par défaut d'impression de mon ordinateur?

    C'est la première fois que j'utilise cette fonction alors je ne la connait pas trés bien ...

    Merci d'avance pour votre aide et vos conseils

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour, j'ai trouvé ceci en cherchant sur internet. Le principe estde copier l'image de l'userform, de la copier sur une feuille, de mettre ma forme au format paysage et de l'imprimer. L'userform doit être visible. Le code prévoit un boouton de commande sur l'userform pour commander l'impression. Dans un module standard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
     
    Public Const VK_SNAPSHOT = 44
    Public Const VK_LMENU = 164
    Public Const KEYEVENTF_KEYUP = 2
    Public Const KEYEVENTF_EXTENDEDKEY = 1
    Le code du bouton d'impression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub CommandButton1_Click()
    ' keybd_event VK_SNAPSHOT, 0, 0, 0
    DoEvents
    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
    keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + _
    KEYEVENTF_KEYUP, 0
    keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + _
    KEYEVENTF_KEYUP, 0
    DoEvents
    Workbooks.Add
    Application.Wait Now + TimeValue("00:00:01")
    ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False, _
    DisplayAsIcon:=False
    ActiveSheet.Range("A1").Select
    'added to force landscape
    ActiveSheet.PageSetup.Orientation = xlLandscape
    'ActiveWindow.SelectedSheets.PrintOut Copies:=1 '
    ActiveWindow.SelectedSheets.PrintPreview
    ActiveWorkbook.Close False
    End Sub
    Je ne sais pas s'il est possible d'éviter de passer par un commandbutton.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci je vais essayer ça =D de toute façon je passe déja par un commande bouton alors ce n'est pas un problème =)

  4. #4
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    En cherchant sur DVP, tu as ceci avec les liens Tutos


    Imprimer toutes les pages d'un USF Multipages

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses,

    J'ai essayé le code de Daniel, puis celui du tuto DVP et j'ai le même problème dans les deux cas... Lorsque je clique sur mon bouton imprimer, j'ai apparemment un aperçu avant impression qui s'ouvre, mais j'ai toujours mon userform en premier plan et là ça bloque, je ne peux rien fermer, rien arrêter .. je suis obligé de passer par le gestionnaire de tâches =s

    Voici le dernier code tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    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 PrintButton_Click()
        If TextBox3.Value = "" Then
            MsgBox "Vous devez rentrer le nombre de personnes de ce secteur"
        Else
            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.Paste
            ActiveSheet.PageSetup.Orientation = xlLandscape
            'impression centrée dans la page
            With Ws
                .PageSetup.CenterHorizontally = True
                .PageSetup.CenterVertically = True
                '.PrintOut
                .PrintPreview
            End With
        End If
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 42
    Par défaut
    Bonjour,

    tu ne "decharche"pas ton userform. est-ce normal ?
    tu devrait essayer de mettre
    quelque part.

    Salutation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2003] Création d'une Bannière et la mise en format paysage pour imprimer
    Par Adilleroy dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/07/2010, 12h01
  2. imprimer un userform en format paysage
    Par petiteabeille64 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/03/2008, 15h51
  3. Imprimer une page en mode paysage
    Par twizell dans le forum ASP
    Réponses: 2
    Dernier message: 13/09/2005, 22h01
  4. [CR][ASP.NET] Impression en format "paysage"
    Par David.V dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/04/2004, 22h56
  5. [Rave] Impression en format "paysage"
    Par nil dans le forum Rave
    Réponses: 3
    Dernier message: 19/04/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo