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

VBA Word Discussion :

Définir l'imprimante sans changer l'imprimante par défaut de windows


Sujet :

VBA Word

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 89
    Points
    89
    Par défaut Définir l'imprimante sans changer l'imprimante par défaut de windows
    Bonjour,
    Quand j'ouvre la boite de dialogue 'imprimer' et que je sélectionne une autre imprimante, le bouton Annuler se transforme en bouton Fermer,
    et dans ce cas c'est cette imprimante qui sera utilisée pour les impressions suivantes, mais l'imprimante par défaut de windows n'est pas affectée.

    Quand j'enregistre la macro correspondante,c'est la commande Activeprinter ="nom de l'imprimante" qui est générée.
    Mais quand j'exécute cette macro, ActivePrinter va modifier l'imprimante par défaut de windows.
    Comment obtenir par VBA le même résultat qu'à la souris dans l'interface de word,
    c'est-à-dire ne pas changer l'imprimante par défaut de Windows ?

    Cette question a déjà été posée sur ce forum il y a deux ans,
    avec pour réponse de mémoriser l'imprimante dans une variable, et de la rétablir ensuite, mais cela ne me convient pas:
    En effet, mon application fonctionne en tache de fond, et envoie des impressions sans intervention de l'utilisateur,
    et cela ne doit impérativement pas interférer sur les imprimantes par défaut, même pour une courte durée, car l'utilisateur peut être emmené à modifier l'imprimante par défaut au même moment (cela arrive fréquemment).

    Y a t il un moyen ?

    Merci

  2. #2
    Membre régulier
    Avatar de wape
    Profil pro
    Inscrit en
    Février 2003
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2003
    Messages : 90
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    Essaye éventuellement ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Dialogs(wdDialogFilePrintSetup)
        .Printer = "HP LaserJet P2035" '<-- Nom de l'imprimante à adapter
        .DoNotSetAsSysDefault = True
        .Execute
    End With
    wape

  3. #3
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    La solution est d'utiliser une variable pour stocker le nom de l'imprimante.
    On change l'imprimante par défaut, on imprime et on redéfinit l'imprimante par défaut avec le contenu de la variable.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub ImprimeR01()
    Dim stPrinter As String
     
    stPrinter = Application.activePrinter
    Application.ActivePrinter = "Mon imprimante "
    ...
    Application.ActivePrinter = stPrinter
    End Sub

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par wape Voir le message
    Essaye éventuellement ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Dialogs(wdDialogFilePrintSetup)
        .Printer = "HP LaserJet P2035" '<-- Nom de l'imprimante à adapter
        .DoNotSetAsSysDefault = True
        .Execute
    End With
    wape
    Merci Wape, Excellente solution !
    je ne connaissait pas l'objet Dialogs, qui est vraiment très puissant et permet de solutionner beaucoup de choses difficiles à exécuter en VBA classique !

    Citation Envoyé par Heureux-oli Voir le message
    La solution est d'utiliser une variable pour stocker le nom de l'imprimante.
    On change l'imprimante par défaut, on imprime et on redéfinit l'imprimante par défaut avec le contenu de la variable.
    [/code]
    Merci Heureux-oli, mais cela ne me convient pas
    J'avais précisé dans ma question :
    Citation Envoyé par azur668 Voir le message
    Cette question a déjà été posée sur ce forum il y a deux ans,
    avec pour réponse de mémoriser l'imprimante dans une variable, et de la rétablir ensuite, mais cela ne me convient pas:
    En effet, mon application fonctionne en tache de fond, et envoie des impressions sans intervention de l'utilisateur,
    et cela ne doit impérativement pas interférer sur les imprimantes par défaut, même pour une courte durée, car l'utilisateur peut être emmené à modifier l'imprimante par défaut au même moment (cela arrive fréquemment).
    Merci quand même de t'être penché sur mon problème

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 140
    Points : 89
    Points
    89
    Par défaut autre solution
    Suite à la réponse de Wape, j'ai trouvé sur le site Microsoft http://support.microsoft.com/kb/216026/fr une autre solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WordBasic.FilePrintSetup Printer:="HP LaserJet 4 on LPT2", DoNotSetAsSysDefault:=1
    L'aide de Word indique qu'il vaut mieux utiliser les methodes VBA
    plutôt que l'objet Dialog chaque fois qu'une équivalence existe

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

Discussions similaires

  1. Choisir l'imprimante sans changer celle par défaut
    Par Shiven dans le forum VBA Word
    Réponses: 9
    Dernier message: 26/09/2007, 15h02
  2. Réponses: 1
    Dernier message: 12/01/2007, 10h19
  3. Comment changer l'icone par défaut ?
    Par Mariussy dans le forum EDI
    Réponses: 3
    Dernier message: 19/09/2005, 20h23
  4. [Tomcat] Changer le répertoire par défaut
    Par leminipouce dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 23/05/2005, 16h06
  5. [2.1][Workspace]Changer le répertoire par défaut
    Par Pill_S dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 29/06/2004, 13h34

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