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

Microsoft Office Discussion :

ActivePrinter : Différence Word/Excel [Toutes versions]


Sujet :

Microsoft Office

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut ActivePrinter : Différence Word/Excel
    Salut à tous,

    Alors je vais essayer d’aller droit au but concernant mon problème, j’expliquerai tout le contexte s’il le faut, mais c’est un peu long
    En gros, j’ai besoin de connaître le nom complet de l’imprimante (nom + port) pour imprimer en VBA dans Word et Excel (sans intervention humaine, il n’y a personne devant le serveur).
    J’ai donc un script vbs qui permet d’afficher le nom complet (nom + port) de l’imprimante par défaut du poste.

    Voici le script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set objWord = CreateObject("Word.Application")
    MsgBox objWord.ActivePrinter
    objWord.Quit
    Set objWord = Nothing
    Lorsqu’on l’exécute, ça renvoie un truc du genre « monImprimante on Ne04: »
    Par contre, si on crée un objet "Excel.Application" dans le script, ça renvoie un truc du genre : « monImprimante sur Ne04: »

    Bien sûr, lorsqu'on essaie d'imprimer sur l'imprimante avec "on Ne04" sur Excel, ça ne fonctionne pas, et vice-versa sur Word avec "sur".

    Ca me gêne énormément car ma contrainte est que le nom complet de l’imprimante doit être identique pour Word et Excel, sinon ça me fait changer trop de chose dans mon logiciel.
    Testé et approuvé sur :
    · mon poste WinXP (Français) et Office 2007 (Français)
    · un serveur Win2003 (Anglais) et Office 2003 (Français)
    · un serveur Win2008 (Français) et Office 2007 (Français)

    Quelqu’un a une idée de la raison de cette différence sur le « on/sur » entre Word et Excel ? Comment contourner ?

    Pour lancer l’impression, on utilise la technique standard :
    · sauvegarder l’ActivePrinter
    · modifier l’ActivePrinter avec « monImprimante sur Ne04: »
    · restaurer l’ActivePrinter
    J’ai cru comprendre que le port était important lorsqu’on modifie l’ActivePrinter, mais si je l’enlève (si je mets « monImprimante » tout court), ça fonctionne.
    Vous savez si ça sert encore à quelque chose ? Si non, ça m’arrangerait bien car ça voudrait dire que je n’ai pas à me soucier de la différence « on/sur » dans le nom complet.

    Sur ce, j'espère avoir été clair

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une idée serait peut-être de passer par des informations en dehors d'Office par exemple de ce genre : http://excel.developpez.com/faq/?pag...tutImprimantes

    En cherchant un peu tu pourrais peut-être trouver le code pour rendre active l'imprimante que tu souhaites.

    Regardes également les autres FAQ Office, il y a différents codes faisant appel à des API sur les imprimantes.

    Philippe

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Bonjour Philippe, merci pour cette réponse rapide.

    En creusant, je pense avoir mis le doigt sur un truc qui me permettra effectivement de me passer de cette notion de port.

    Pour info, voici exactement le code que j'utilise pour imprimer.
    En word:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.WordBasic.FilePrintSetup Printer:=NomPrinter$, DoNotSetAsSysDefault:=1
    J'utilise cette syntaxe car plusieurs instances de Word peuvent tourner en même temps, et je ne veux pas modifier l'imprimante par défaut du poste (cf. http://support.microsoft.com/kb/216026/fr)

    En Excel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveSheet.PrintOut Copies:=NbrImpression, ActivePrinter:=Imprimante, Collate:=True
    D'après cet article http://www.teachexcel.com/excel-help...o.php?i=273719, pour Excel, on peut se passer du port lorsqu'on utilise la commande PrintOut (alors qu'on ne peut pas se passer du port si on utilisait un truc du genre Application.ActivePrinter = xxx)
    D'après cet article http://pubs.logicalexpressions.com/p...cle.asp?id=183, pour Word, on peut aussi se passer du port.

    Bref, je vais en effet utiliser le script que tu m'as donné pour récupérer les noms des imprimantes, et ça devrait me suffire.

    Merci encore.
    A+

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

Discussions similaires

  1. VBA Word / Excel
    Par forsay1 dans le forum VBA Word
    Réponses: 3
    Dernier message: 29/12/2005, 16h48
  2. VBA Word / Excel
    Par forsay1 dans le forum VBA Word
    Réponses: 6
    Dernier message: 28/12/2005, 15h39
  3. VBA WORD / Excel
    Par forsay1 dans le forum VBA Word
    Réponses: 7
    Dernier message: 23/12/2005, 14h14
  4. VBA WORD / EXCEL
    Par forsay1 dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/12/2005, 09h58
  5. Export d'etat ACCESS vers WORD/EXCEL : pb de mise en forme
    Par leguminator dans le forum Access
    Réponses: 2
    Dernier message: 25/10/2005, 11h03

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