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 :

[Excel] Problème d'impression multiple et de form


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut [Excel] Problème d'impression multiple et de form
    Bonjour à tous !

    Voilà alors j'ai un petit problème. Je débute en VB sur Excel, je cherche à imprimer plusieurs fois le même documents sur différentes imprimantes.

    Bon, jusque là j'ai réussi à le faire en farfouinant sur le forum, mais voilà ! ....

    Je ferme ma form tout de suite après l'impression avec la commande (d'ailleurs est-ce que je fais bien ? :p)

    Seulement voilà, une fois sur deux, le document ne s'imprime que sur une imprimante, et Excel se ferme entièrement (alors que je ne souhaite que fermer ma form).

    Je suppose que c'est dû au fait que le programme continue de tourner pendant les impressions, et ces dernières n'ont pas le temps de se terminer qu'on leur coupe le sifflet avec un Alt-F4 !

    J'ai trouvé sur le forum quelqu'un qui parlait du paramètre "Background" de la méthode PrintOut.

    Comme synthaxe, on donnait même comme exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AppWord.ActiveDocument.Printout Background:= True
    que j'ai transformer à ma sauce en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.PrintOut Background:=False, from:=1, To:=1, ActivePrinter:="\\ELYDIA\Lexmark C510 PS3"
    Rien n'y fait, ça veut pas prendre !

    Si vous avez une solution... Ô punissez-moi de mon ignorance et de n'avoir pas su utiliser les recherches à bon escient !

    Ah oui, et si vous pouvez me dire aussi si je fais bien d'utiliser le "fameux" Alt-F4 ! (qu'est-ce qu'on ferait sans, tout de même ! )


  2. #2
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Tu peux fermer ton formulaire moins brutalement en faisant:
    Change déjà ça, peut-être que tes impressions iront mieux.

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    2 questions...
    - Tu imprime quoi ? une feuille excel ?
    - Tu ve fermer quoi par ALT-F4..?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par Megaxel
    Tu peux fermer ton formulaire moins brutalement en faisant:
    Change déjà ça, peut-être que tes impressions iront mieux.
    Alors, résultat des courses, j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ActiveWorkbook.PrintOut from:=1, To:=1, ActivePrinter:="\\ELYDIA\Lexmark E321"
    ActiveWorkbook.PrintOut from:=1, To:=1, ActivePrinter:="\\ELYDIA\Lexmark C510 PS3"
    Unload interface
    ... et 1 : ça m'imprime les deux feuilles sur la même imprimante ! (j'ai vérifié les chemins réseau, ils sont bons)

    Quant à "Unload interface", ma form reste bel et bien planté là :s

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par bbil
    2 questions...
    - Tu imprime quoi ? une feuille excel ?
    - Tu ve fermer quoi par ALT-F4..?
    1)Oui, j'imprime une feuille Excel
    2) Jusqu'alors, je fermais mes forms avec "SendKeys ("%{F4}")"

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    est ce que tu es sure de tes noms d'imprimantes ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActivePrinter:="\\ELYDIA\Lexmark C510 PS3"

    est ce qu'il ne faut pas preciser le port utilisé ?


    quelques exemples sur mon poste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ActivePrinter = "hp deskjet 930c series sur LPT1:"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ActivePrinter = "IBM Infoprint 1332 PS3 sur Ne00:"

    as tu fais un essai d'impressions successives , manuellement et en utilisant l'enregistreur de macros , pour verifier les noms d'imprimantes


    bonne soiree
    michel

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Alors oui, en effet. Je pense que les noms que tu as doivent correspondre à des imprimantes locales et non à des imprimantes réseau.

    Etant donné que ce fichier Excel sera utilisé par différentes personnes sur le réseau, il faudrait que depuis n'importe ou, ça imprime sur ces deux imprimantes.

    Bon, sinon j'ai essayé en utilisant l'enregistreur de macro.
    Je précise que j'ai bien lancé l'impression sur une imprimante, puis sur l'autre, avant d'arrêter l'enregistrement.

    Et voilà le résultat !!! :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub test3()
    '
    ' test3 Macro
    ' Macro enregistrée le 04/01/2006 par Laurent
    '
     
    '
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
            :=True
        Application.ActivePrinter = "Lexmark C510 PS3 sur Ne01:"
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _
            ActivePrinter:="Lexmark C510 PS3 sur Ne01:", Collate:=True
    End Sub
    Il imprime deux fois... sur la même imprimante...
    J'ai lancé la macro, à tout hasard, et en effet, l'impression se fait sur la même imprimante !

  8. #8
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    a priori il y a eu un probléme dans l'enregistrement de ta macro.. car une seule des 2 imprimates et citée...? essai de refaire l'enregistrement , en changeant bien d'imprimante à chaque fois ... ( utilise en premier l'imprimante qui n'est pas par défaut.. pour être sur d'en changer..)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    oui-oui, j'ai retenté l'opération trois fois d'affilé

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonsoir

    Je précise que j'ai bien lancé l'impression sur une imprimante, puis sur l'autre, avant d'arrêter l'enregistrement.

    Et voilà le résultat !!!

    ...

    Il imprime deux fois... sur la même imprimante...

    est ce que tu veux dire que meme manuellement cela imprime sur la meme imprimante ?



    bonne soiree
    michel

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Non, si j'imprime normalement (ou lorsque j'enregistre la macro), ça m'imprime bien sur l'une, puis sur l'autre des imprimantes.

    En revanche, si je lance la macro, ça m'imprime deux fois sur la même imprimante (d'ailleurs dans le code généré par l'enregistreur les deux imprimantes sont bien identiques ! )

    Pourtant, j'ai beau être débutant, je me suis débrouillé sans trop de problèmes jusque là, mais maintenant je ne sais plus quoi faire help !

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    rebonsoir

    tu peux tester ces types de synthaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'win XP 
    ActivePrinter:= "\\RESEAU\HP sur Ne00:"
    (ou Ne01)

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'win9x 
    ActivePrinter:= "HP Laserjet sur \\RESEAU\HP:"


    bonne soiree
    michel

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Rectification :

    Si j'y vais bieeeeeeennnnnn douuuuucemennnnt, traaaaaaanquillement, lors de l'enregistrement de la macro, ça me prend en effet en compte les deux imprimantes.

    J'ai collé un "Call macro_imprimer" dans mon code et ça fonctionne... Par contre, ça ne fonctionne pas en réseau. Et si j'indique le chemin réseau, ça ne fonctionne plus chez moi.

    Il faudrait donc que je repère si le classeur est ouvert sur mon pc (ou sont les imprimantes en local) ou sur un pc du réseau, afin de lancer la bonne macro d'impression.

    J'ai pensé en utilisant le nom de mon ordinateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if "c'est mon ordi" then
    call macro1
    elseif "c'est pas mon pc" then
    call macro2
    end if
    Si par contre vous savez comment je peux faire ça, promis je ne vous embêterai plus... pour le moment !

    Déjà merci beaucoup pour votre aide SilkyRoad avait raison depuis le début en fait. Merci !

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par SilkyRoad
    rebonsoir

    tu peux tester ces types de synthaxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'win XP 
    ActivePrinter:= "\\RESEAU\HP sur Ne00:"
    (ou Ne01)

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'win9x 
    ActivePrinter:= "HP Laserjet sur \\RESEAU\HP:"


    bonne soiree
    michel
    J'ai essayé, ça ne fonctionne que pour le réseau, pas à partir de mon pc ou les imprimantes sont en local. Rien à faire

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    pour le nom de l'ordinateur voir FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environ("ComputerName")

    à priori ne marche pas sous W98 , voir détails... :

    http://vb.developpez.com/faq/?page=Reseau#nom_machine

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 106
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup pour votre aide !

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/04/2015, 12h29
  2. Problème d'impression Excel sur profil local
    Par guitou65 dans le forum Excel
    Réponses: 0
    Dernier message: 16/10/2012, 09h42
  3. problème d'impression d'un document Excel
    Par brahda dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2011, 01h04
  4. Réponses: 2
    Dernier message: 07/08/2007, 11h32

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