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 :

Problème impression userform


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Bonjour,

    J'utilise le code suivant (merci silkyroad)

    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
    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.Paste
     
        'impression centrée dans la page
        With Ws
            .PageSetup.CenterHorizontally = True
            .PageSetup.CenterVertically = True
            .PrintOut
        End With
    End Sub
    Cependant il colle sur la feuille ws ce qu'il a en mémoire du copier (par exemple si avant d'appuyer sur le bouton de mon userform, j'ai fait un copier coller de "toto" il va me coller toto sur la feuille ws au lieu de coller le snapshot. par si j'appuie une seconde fois sur imprimer il m'imprimera mon userform (en gros il a un temps de retard pour s'imprimer) de la même manière si j'imprime mon userform une première fois (en cliquant 2 fois sur imprimer) et que je modifie mon userform alors de la meme manière il faudra que je clique 2 fois sur imprimer pour pouvoir imprimer le userform à jour. Je ne comprends pas pourquoi

    alors que si je fais un coller dans word manuellement j'ai bien l'userform qui se colle correctement ... (ceci signifie donc que mon snpshot est correct et qu'il réalise le coller avant le copier ou que excel ne rafraichit pas la mémoire du coller
    Merci de votre aide

    J'ai un peu modifier mais ça ne fonctionne toujours pas. Voici mon code à présent :

    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
    29
    30
    31
    32
    33
    34
    35
     
    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 CB_Imprimer_Click() 'recopie d'un module présent sur le net dédié à l'impression (légèrement adapté à notre cas)
        On Error GoTo ErrorHandler 'gestion des erreurs si erreur alors aller au point ErrorHandler (voir en bas)
        Dim Ws As Worksheet
        keybd_event vbKeySnapshot, 1, 0&, 0& 'Copie d'écran de la forme active=copie l'userform
        DoEvents
        Set Ws = Sheets.Add 'Ajoute une feuille pour coller l'image de la forme
        Ws.Paste 'colle le contenu du snapshot dans la feuille
        'impression centrée dans la page
        With Ws
            .PageSetup.Orientation = xlLandscape 'Met la feuille en mode paysage
            .PageSetup.Zoom = False
            .PageSetup.FitToPagesTall = 1 'dit que le contenu du classeur ne doit être imprimé que sur une feuille en hauteur
            .PageSetup.FitToPagesWide = 1 'dit que le contenu du classeur ne doit être imprimé que sur une feuille en largeur
            .PageSetup.CenterHorizontally = True 'centre horizontalement sur la page
            .PageSetup.CenterVertically = True 'centre verticalement
        End With
        U2.Hide 'masque l'userform2
        Application.Dialogs(xlDialogPrint).Show 'montre la boite de dialogue imprimer
        U2.Show 'remontre l'userform2
        Application.DisplayAlerts = False 'empèche les message d'alerte type etes vous sur de vouloir supprimer
        Ws.Delete 'supprimer la feuille créée
        Application.DisplayAlerts = True 'rétabli les messages d'alerte
        Exit Sub
    ErrorHandler: 'point de gestion des erreurs
        MsgBox ("Erreur grave rencontrée : " & Err.Description) 'si erreur alors message qui affiche "erreur rencontrée avec le descriptif de l'erreur"
        Application.DisplayAlerts = True
        On Error Resume Next 'après avoir validé l'erreur on passe à la suite de la macro
    End Sub

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2009
    Messages : 652
    Par défaut
    Bonjour,

    Visitez le lien suivant (message #6)
    http://www.developpez.net/forums/d13...omprehensible/

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Merci beaucoup beaucoup beaucoup beaucoup, malgré une recherche sur le forum ce post m'avait échappé et j'en suis désolé.

    Merci énormément

    Bonne soirée

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

Discussions similaires

  1. problème impression userform (manque une partie)
    Par eleanor62200 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/05/2011, 10h28
  2. problème impression- epson stylus R300
    Par phoenix440 dans le forum Périphériques
    Réponses: 4
    Dernier message: 15/12/2005, 17h33
  3. [VB .NET] [Crystal reports] Problème impression
    Par Nicolas2005 dans le forum SDK
    Réponses: 1
    Dernier message: 09/11/2005, 12h35
  4. Problème impression état
    Par soso78 dans le forum Access
    Réponses: 3
    Dernier message: 26/09/2005, 11h13
  5. Visual C++ 6 : Problème impression d'écran noir
    Par charliejo dans le forum MFC
    Réponses: 6
    Dernier message: 24/01/2005, 09h52

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