Si vous utilisez des macros pour imprimer vos feuilles de calcul, vous savez déjà que la macro peut spécifier l’imprimante réelle à laquelle la sortie doit être envoyée.

Que faire si vous souhaitez également spécifier un bac à papier spécifique à utiliser sur cette imprimante? Malheureusement, cela devient un peu un guichet collant.

Le problème est que lorsque vous cliquez sur le bouton Options dans la boîte de dialogue Mise en page afin de définir le bac à papier à utiliser, ce que vous voyez est entièrement sous le contrôle de votre pilote d’imprimante, et non sous le contrôle d’Excel.

Qu’est-ce que cela signifie pour vous? Cela signifie qu’il n’y a pas de commandes que vous pouvez utiliser dans une macro Excel pour spécifier un bac d’imprimante. Cependant, vous pouvez essayer certaines solutions de contournement. La première solution de contournement consiste simplement à définir différentes définitions d’imprimante dans Windows, chacune étant adaptée pour utiliser un bac d’imprimante spécifique. Suivez ces étapes générales:

  1. Déterminez le nombre de bacs à papier que vous souhaitez utiliser sur l’imprimante.

  2. Définissez une nouvelle imprimante pour chaque bac à papier que vous souhaitez utiliser. Par exemple, si vous souhaitez utiliser trois magasins papier différents, vous définirez trois imprimantes, chacune avec un nom représentatif d’un magasin papier.

  3. Cliquez avec le bouton droit sur une définition d’imprimante et modifiez les propriétés de l’imprimante afin qu’elle imprime dans le bac à papier souhaité.

  4. Répétez l’étape 3 pour chacune des autres définitions d’imprimante, en veillant à spécifier des magasins papier différents pour chacun.

À ce stade, vous avez configuré plusieurs définitions d’imprimante, et chacune imprimera dans un magasin papier différent sur la même imprimante. Dans Excel, vous pouvez spécifier l’imprimante souhaitée, dans une macro, afin que l’impression aille à la définition d’imprimante souhaitée, et donc au bac à papier souhaité. Le seul inconvénient de cette solution, bien sûr, est qu’elle nécessite un peu de travail de configuration. Si vous travaillez dans un bureau avec 50 utilisateurs, cela signifie que vous devrez vous assurer que les 50 ont chaque imprimante définie comme décrit ci-dessus.

Une autre solution de contournement implique l’utilisation de l’instruction SendKeys dans votre macro. Vous pouvez trouver des informations sur SendKeys dans l’aide en ligne de VBA disponible avec Excel, mais ce qu’il fait essentiellement est de bourrer le tampon du clavier avec une série d’appuis sur les touches, tout comme ils seraient tapés par l’utilisateur. Ainsi, vous pouvez théoriquement configurer la macro pour émuler les pressions sur les touches que vous suivriez pour ouvrir la boîte de dialogue Mise en page, cliquer sur Options et sélectionner un autre bac d’imprimante.

Il y a un problème potentiel avec SendKeys, cependant, et c’est un gros problème. Cela peut ne pas être fiable car il n’y a aucun moyen de garantir que les frappes vont réellement là où vous le souhaitez. Sur un système d’exploitation multithread (comme Windows), un autre processus pourrait intervenir et faire dérailler les commandes. En outre, si SendKeys fonctionne sur votre ordinateur, il peut ne pas fonctionner sur l’ordinateur de quelqu’un d’autre à moins qu’ils n’aient la même version d’Excel, la même imprimante et la même version de pilote d’imprimante.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (7010) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Specifying_a_Paper_Tray_in_a_Macro [Spécification d’un magasin papier dans une macro].