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 recto verso


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Imprimer recto verso
    salut tout le monde,

    j'aimerais savoir quelle est la commande qui permet une impression en recto verso via VBA sur Excel. J'ai mon bouton imprimer qui marche mais l'impression ne se fait qu'en recto (8 pages utilisées au lieu de 4 désirées). Je précise bien sur que j'ai une imprimante en réseau qui fait "le recto verso".

    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    As-tu essayé par l'enregistreur de macros pour voir le code généré? Les pistes à explorer sont souvent dans le code généré par l'enregistreur.

    Si cette piste ne donne rien de probant...

    L'impression recto-verso est gérée par ton imprimante, il faut donc que tu puisse sélectionner cette imprimante via un objet Printer et ajuster les propriétés de cette imprimante avant de lancer l'impression.

    Il y a des tutoriels et des rubriques de la FAQ VB6 qui pourront t'aider car le principe est le même.

    Si nécessaire, plutôt que d'appeler la boîte de dialogue Impression d'Excel (qui lance l'impression sans autre forme de procès, par code, j'entends), tu peux recourir au composant Common Dialog (s'il est installé sur ta machine). Regarde dans les composants supplémentaires (dans l'éditeur VBA - le VBE - tu choisis le menu Outils, Références). Il est fort probable que tu doives cliquer sur le bouton Parcourir et choisir parmi les .OCX le composant COMDLG32.OCX.

    Il m'est difficile de te concocter un code exemple, je n'ai pas d'imprimante qui gère le recto-verso sous la main.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse mais j'ai trouvé une solution bien moins tortueuse pour mes neuronnes

    J'ai tout simplement été dans les paramètres de l'imprimante et coché le recto verso pour toutes les impressions. Bon c'est un peu chiant dans un sens car tous mes documents n'ont pas besoin du recto verso mais bon ça marche donc je m'y fais

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Recto-verso avec vba sous excel
    Bonjour

    J'ai le même problème : je n'arrive pas a paramétrer l'imprimante en recto verso.

    il existe apparement une "fonction" .duplex, mais je n'arrive pas à la faire fonctionner.

    Ci joint le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub impression()
     
    Application.ActivePrinter = "\\olympe\GUT23496 sur Ne01:"
     
       ' duplex = vbPRDPHorizontal
     
    Worksheets("Rapport").PrintOut Copies:=Nbrecopie
     
    End Sub
    Merci d'avance pour l'aide.

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Bonjour,

    J'utliserais personnellement la fonction SetPrinter de la librairie Winspool.drv de l'Api de Windows...

    Si mon application doit être distribuée, toutefois, je prendrais d'abord la précaution de vérifier (encore par l'Api de Windows) si l'imprimante peut imprimer recto-verso. Si elle ne le pouvait pas, je m'arrangerais pour envoyer un message invitant, entre chaque page, l'utilisateur à retourner son papier...

    Je cherche un exemple d'utilisation de SetPrinter et reviens... A +

    EDIT : j'en ai trouvé un là, d'exemple :
    http://support.microsoft.com/kb/828638/fr
    Il est certes écrit pour VB6, mais je ne vois rien, dans ce code, qui ne puisse être facilement être utilisé en VBA (quelques petites mofifs pour l'adapter à ta sauce et à tes besoins et le tour devrait être joué... Il faut mériter certaines choses.).
    Je n'ai pas d'imprimante gérant le recto-versi et ne peux donc tester, mais toi oui !

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci pour ton aide, je vais vérifier si ca marche

    En fait, sous word, il ne reconnait pas Printer de " SetPrinterDuplex Printer.DeviceName, 2" de l'exemple. Il indique : "variable non définie"....

    Donc j'ai un peu de mal pour faire l'adaptation....

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    OUI ?
    Et alors ?
    Dans l'exemple, l'objet Printer de VB6 a été utilisé directement.
    Il retourne le nom de l'imprimante .
    VBA n'a pas d'objet Printer... et alors ?
    Intéresse-toi donc maintenant à la fonction GetPrinter (déjà déclarée dans l'exemple) ===>> elle te permet elle aussi d'extraire le nom de l'imprimante !
    Allez ! essaye donc d'abord seul. Je ne viendrai à la rescousse que si VRAIMENT nécessaire ...

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonsoir

    Apparement, je n'arrive pas à me faire reconnaitre par l'imprimante, la macro s'arrete à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If (nDuplexSetting < 1) Or (nDuplexSetting > 3) Then
             MsgBox "Error: dwDuplexSetting is incorrect."
             Exit Function
          End If
          
          pd.DesiredAccess = PRINTER_ALL_ACCESS
          nRet = OpenPrinter(sPrinterName, hPrinter, pd)
          If (nRet = 0) Or (hPrinter = 0) Then
             If Err.LastDllError = 5 Then
                MsgBox "Access denied -- See the article for more info."
            Else
    J'ai biaisé en mettant l'imprimante par defaut en recto/verso, mais c'est pas tres satisfaisant.....

    Merci quand même pour l'aide.

    Bonne continuation

Discussions similaires

  1. [WD-2003] Imprimer recto-verso / Taper # de page
    Par Souriane dans le forum VBA Word
    Réponses: 3
    Dernier message: 27/04/2011, 19h01
  2. Imprimer Recto verso
    Par mouncefdi dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/06/2009, 18h33
  3. Imprimer Recto Verso
    Par Rambotnic29 dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/04/2009, 19h08
  4. etat imprimé recto verso depuis access
    Par panro dans le forum IHM
    Réponses: 1
    Dernier message: 30/06/2008, 15h22
  5. [CR] Générer une page blanche pour imprimer en recto-verso
    Par PasHyperPon dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 02/04/2006, 19h06

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