Bonjour à tous,

Voici le contexte :

J'ai développé une petite interface (formulaire Access) qui permet à des utilisateurs d'imprimer une lettre personnalisée (en fait un état Access avec les coordonnées d'un client) ainsi qu'un PDF correspondant au produit qu'ils ont choisi pour le client sélectionné (ces PDF sont stockés dans un répertoire réseau et appelés par le formulaire en vba).

Lorsque l'utilisateur clique sur imprimer, un mini-formulaire continu s'ouvre. Sur cet événement, il récupère la liste des imprimantes installées sur le poste de l'utilisateur et les lui affiche. Ce dernier peut alors cocher l'imprimante sur laquelle il souhaite lancer l'impression.

J'ai déjà trouvé une api qui me permet de récupérer la liste des imprimantes, de stocker les caractéristiques de l'actuelle imprimante par défaut, de modifier l'imprimante par défaut en fonction du choix effectué dans le mini formulaire, d'imprimer l'état sur cette imprimante. La fonction utilisée, une fois les impressions réalisées, remet l'imprimante d'origine par défaut.

Le hic intervient quand j'imprime le pdf (à l'aide de vba), bien que l'imprimante par défaut ait été modifiée (j'ai pu le vérifier dans le panneau de configuration), il m'imprime toujours le pdf sur l'imprimante qui était paramétrée par défaut avant le changement (???).

Je n'arrive pas à comprendre où se situe le problème. Quelqu'un peut-il m'aider ?

J'utilise la ligne suivante pour lancer l'impression du PDF :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
ShellExecute MonFormulaire.hWnd, "print", stNomFichier, "", "", 1
La variable stNomFichier véhicule le chemin complet du PDF à imprimer.

Un grand merci par avance pour votre aide.

Bien cordialement.

elg