Imprimante virtuelle et physique

Bonjour

j'ai une petite question , peut être simple ....Dans ma procédure j'ai une ligne qui est la suivante :

ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"

ensuite j'ai une instruction qui demande l'impression de ma feuille active et cette impression doit se faire physiquement via

mon imprimante canon , avec l'instruction :

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

le soucis est qu'au lieu que celle ci soit utilisée, c'est l'imprimante virtuelle (pdfCreator) qui est lancée .Que puis ajouter à mon code après l’instruction qui met en route l'imprimante virtuelle pour lui signifier de réutiliser mon imprimante physique au moment de la demande d'impression physique ?

Merci par avance pour vos suggestions ou réponses.

Cordialement

Bonjour,

Et si tu imprimais "physiquement" en premier ...

Merci pour cette réponse , mais l'impression physique est appelée à partir d'une seconde macro et le souci est que la demande

d'impression de cette seconde macro s'effectue en prenant comme reference l'imprimante pdfCreator.

Re,

Je ne pouvais deviner ce contexte ...

Du coup, il faudrait rechercher l'instruction qui permet de purger le buffer...

.. "purger le buffer"... je ne comprend pas trop ce que cela signifie

rocket4 a écrit :

.. "purger le buffer"... je ne comprend pas trop ce que cela signifie

Re,

Désolé ... mauvais franglais ...

C'est la mémoire tampon pour l'impression ... dont le rôle est de conserver les éléments d'information nécesssaires à l'impression

Merci pour l'info je vais essayer de voir de ce coté là

Bonjour,

A adapter à ton cas .

Cdlt.

Option Explicit
Public Sub ChangePrinter()
Dim sCurPrinter As String
    With Application
        sCurPrinter = .ActivePrinter
        .ActivePrinter = "Adobe PDF sur Ne03:"
        ActiveDocument.PrintOut
        .ActivePrinter = sCurPrinter
    End With
End Sub

Merci jean Eric , est ce que ta solution est à placer dans un autre module que celui donnant l'instruction d'utiliser pdfCreator?

Re,

Mon exemple montre la démarche à suivre.

Dans ton code, en début de macro, sCurPrinter est ton imprimante par défaut.

Puis tu modifies l'imprimante.

Pour ensuite revenir à la configuration initiale.

Cdlt.

bonjour et merci pour toutes vos réponses , juste une dernière question sur le meme thème :

la syntaxe suivante n'est pas exacte lorsque je veux definir mon imprimante par defaut :

Application.ActivePrinter = "Canon MP250 Printer series sur Ne03:"

pourriez vous me dire ce qui ne va pas , il y a t il des caractères en trop ?

Merci

rocket4 a écrit :

Bonjour

j'ai une petite question , peut être simple ....Dans ma procédure j'ai une ligne qui est la suivante :

ActiveSheet.PrintOut Copies:=1, ActivePrinter:="PDFCreator"

ensuite j'ai une instruction qui demande l'impression de ma feuille active et cette impression doit se faire physiquement via

mon imprimante canon , avec l'instruction :

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

le soucis est qu'au lieu que celle ci soit utilisée, c'est l'imprimante virtuelle (pdfCreator) qui est lancée .Que puis ajouter à mon code après l’instruction qui met en route l'imprimante virtuelle pour lui signifier de réutiliser mon imprimante physique au moment de la demande d'impression physique ?

Merci par avance pour vos suggestions ou réponses.

Cordialement

Bonjour

Pourquoi ne pas mettre dans la seconde instruction :

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True , ActivePrinter:="LE NOM DE TA CANON"

Car il a gardé en mémoire la précédente instruction disant que c'est la PDF qui est l’imprimante active

cdt,

Bonjour,

Procédure à copier dans un module standard.

Dans VBE, faire 'Ctrl+G' pour afficher la fenêtre Exécution.

Lance la procédure.

Quels sont les résultats dans la fenêtre?

Cdlt.

Option Explicit

Public Sub ChangePrinter()
Dim sCurPrinter As String
' Jean-Eric - Imprimante par défaut ="Samsung M2020 Series sur Ne00:"

    With Application
        sCurPrinter = .ActivePrinter
        Debug.Print sCurPrinter
        .ActivePrinter = "Adobe PDF sur Ne03:"
        ' code
        Debug.Print .ActivePrinter
        .ActivePrinter = sCurPrinter
        Debug.Print sCurPrinter
        ' code
    End With

End Sub

Merci Jean Eric , ca plante à la ligne

  .ActivePrinter = "Adobe PDF sur Ne03:"

je pense que l'idée d'alterner entre l'imprimante physique et virtuelle est peut être bien lourd en procédure à la relfexion je pense abandonner l'idée ..ca valait la peine d'essayer pour voir ...et je vous remercie tous infiniment pour vos solutions quand bien même cela n'a pas abouti ).

rocket4 a écrit :

Merci Jean Eric , ca plante à la ligne

  .ActivePrinter = "Adobe PDF sur Ne03:"

je pense que l'idée d'alterner entre l'imprimante physique et virtuelle est peut être bien lourd en procédure à la relfexion je pense abandonner l'idée ..ca valait la peine d'essayer pour voir ...et je vous remercie tous infiniment pour vos solutions quand bien même cela n'a pas abouti ).

As tu regarde mon post?

Bonjour , ti_chou_3

j'ai testé ta ligne :

 ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True , ActivePrinter:="LE NOM DE TA CANON"

elle reste sans effet , pour le vérifier sur ma feuille de calcul je vais dans "menu" puis "imprimer" une fenetre de configuration d'impression s'ouvre en désignant toujours pdfcreator comme imprimante par défaut , il faut donc que je sélectionne manuellement mon imprimante physique .


je retire ce que j'ai dit ! finalement ca marche , c’était du à une mauvaise saisie du nom de mon imprimante ..honte à moi Merci à toi

Rechercher des sujets similaires à "imprimante virtuelle physique"