*selection d'imprimante dans Excel

Bonjour
Dans une macro sous excel j'ouvre une boite de dialogue pour selectionner l'imprimante. (Nous avons plusieurs imprimantes reseau)
la ligne de code est :
Application.Dialogs(xlDialogPrinterSetup).Show

Le probleme est que quelle que soit l'imprimante selectionnée dans cette boite, c'est toujours l'imprimante par defaut de windows qui est utilisée ?!
Même dans les menus d'Excel je ne trouve pas où selectionner une imprimante quand je lance une impression ?

Qu'oublis-je ?
Ca se passe où ?

Merci par avance pour toute info
jjd

2 réponses

  1. Contributeur
    Salut,

    Dans l'aide vba :
    PrintOut, méthode
    Voir aussi S'applique à Exemple Spécificités
    Cette méthode imprime l'objet.

    expression.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

    expression Obligatoire. Expression qui renvoie un des objets répertoriés dans la liste S'applique à.

    From Argument de type Variant facultatif. Numéro de la page à partir de laquelle commence l'impression. Si vous ne spécifiez pas cet argument, l'impression commence à la première page.

    To Argument de type Variant facultatif. Numéro de la dernière page à imprimer. Si vous ne spécifiez pas cet argument, l'impression s'effectue jusqu'à la dernière page.

    Copies Argument de type Variant facultatif. Nombre de copies à imprimer. Si vous ne spécifiez pas cet argument, une seule copie est imprimée.

    Preview Argument de type Variant facultatif. Affectez-lui la valeur True pour que Microsoft Excel affiche un aperçu de l'objet avant de l'imprimer. Affectez-lui la valeur False (ou ne le spécifiez pas) pour imprimer l'objet immédiatement.

    ActivePrinter Argument de type Variant facultatif. Définit le nom de l'imprimante active.

    PrintToFile Argument de type Variant facultatif. Affectez-lui la valeur True pour imprimer dans un fichier. Si vous ne spécifiez pas PrToFileName, Microsoft Excel invite l'utilisateur à entrer le nom du fichier de sortie.

    Collate Argument de type Variant facultatif. Affectez-lui la valeur True pour assembler plusieurs copies.

    PrToFileName Argument de type Variant facultatif. Si l'argument PrintToFile a la valeur True, cet argument spécifie le nom du fichier vers lequel vous souhaitez effectuer l'impression.

    Notes
    Les « pages » évoquées dans la description des arguments From et To font référence aux pages imprimées et non à toutes les pages de la feuille ou du classeur.

    Exemple
    Cet exemple montre comment imprimer la feuille active.

    ActiveSheet.PrintOut
    1
    1. Merci pour l'aide

      En fait après avoir rebooté ma machine j'ai retrouvé dans la fenetre "imprimer" la possibilité de selectionner une imprimante autre que celle par defaut !!!.
      Concernant la macro, j'utilise Application.Dialogs(xlDialogPrinterSetup).Show. Le changement d'imprimante ne fonctionne pas quand je mets ce code dans une fonction (qui retourne le nom de l'imprimante selectionnée) par contre ça marche si c'est dans un "sub" ??
      jjd
      0
    2. @jjdkil doit exister une collection printers
      essaye de regarder

      for each nimprimante in objetparent.printers
      msgbox nimprimante.name
      next
      0
    3. "si c'est dans un "sub" ??"
      oui:

      Sub choix_imprimante

      On Error Resume Next

      imprimante = Application.Dialogs(xlDialogPrinterSetup).Show
      Application.ActivePrinter = imprimante

      End Sub
      0
  2. Bonjour,

    j'aimerais savoir comment modifier le nombre de copie par defaut lors de l'impression d'un fichier.
    A chaque fois que j'ouvre ce fichier et que j'imprime il me propose obligatoirement 20 copies.
    Comment faire?
    1
    1. bonjour

      il suffit de faire Fichier / Mise en Page /

      de choisir Options et de specifier le nombre de copies

      Salutations
      0