Page 1 sur 1

[..] Sélection de l'imprimante sous excel

Posté : mar. 31 août 2010 15:09
par peuchere83
Bonjour à tous,

je viens de tomber sur une "coquille" dans mon programme de pilotage d'imprimante au travers d'excel :
je pilote 3 imprimantes USB qui peuvent changer de port à chaque démarrage.
Par exemple je possède une 'HP LaserJet 1020' qui est reconnue (actuellement sous Excel) avec le nommage suivant : 'HP LaserJet 1020 sur Ne02:'

La dernière partie du nom (Ne02:) change quasiment à chaque démarrage (cela peut être Ne03:, ...).
Cela est lié à l'ordre de détection des différentes imprimantes par le poste.
Je n'arrive pas à comprendre la logique de détection et donc à modifier cela dans mon programme.

J'ai déjà regardé la fonction donné par Tlem sur le post suivant : http://www.autoit.fr/forum/viewtopic.php?f=11&t=4794 mais sans succès : je n'arrive pas à définir le numééro qui doit être utilisé (02 dans mon exemple).

Voici un bout de mon code pour comprendre l'importance de cette information.

Code : Tout sélectionner

$RefImp1020 = "HP LaserJet 1020 sur Ne02:"

If $oExcel = "" Then $oExcel = ObjCreate("Excel.Application")
$oExcel.Visible = 0                  ; Afficher excel (=1) ou masquer (=0)
$oExcel.WorkBooks.Open($PathFileProd)            ; Ouverture du fichier
$oExcel.ActiveSheet.PageSetup.Zoom = 91
$oExcel.ActivePrinter = $RefImp1020                 ; Impression sur l'imprimante 1020
$oExcel.ActiveSheet.PrintOut
Par avance merci à tous.

Re: [..] Sélection de l'imprimante sous excel

Posté : mar. 31 août 2010 17:06
par scorp84
Bonjour peuchere83,

Je suis entrain de bosser sur un projet de changement d'imprimante si celle par défaut est OFFLINE.

Voici ce que j'ai commencé à faire :
► Afficher le texte
Il n'est pas fini, mais j'espère que cela pourra t'aider à récupérer des infos pour obtenir le nom qui te convient.

En espérant avoir pu t'aider.

Amicalement.

BM

Re: [..] Sélection de l'imprimante sous excel

Posté : mar. 31 août 2010 17:13
par peuchere83
Merci Scorp84,

mon problème n'est pas la récupération du nom brut de l'imprimante mais le port que semble lui rajouter excel (ex dans mon cas 'Ne02:' )
Par contre ton programme m'intéresse je vais donc le regarder de plus près.

je vais continuer mes recherches sur les forum VBA au cas où.

Cordialement

Re: [..] Sélection de l'imprimante sous excel

Posté : mar. 31 août 2010 17:39
par peuchere83
Après recherche, la seule solution semble de tester les différentes possibilités (de Ne01: à Ne10:)

Je vais donc devoir (je pense) utiliser une gestion d'erreur sur les objets com.

Si quelqu'un a une autre idée, je prends de suite !!! :P

@+

Re: [..] Sélection de l'imprimante sous excel

Posté : mar. 31 août 2010 18:50
par Jerome
Coucou,

Je ne sait pas si sa peut t'aider, mais je post au cas ou ...

http://www.autoitscript.fr/forum/viewto ... =11&t=4794


Jérôme

Re: [..] Sélection de l'imprimante sous excel

Posté : mar. 31 août 2010 20:09
par scorp84
J'ai aussi trouvé ça :
► Afficher le texte
Tu verras "$objItem.PortName" (59). ça devrait t'aider à récupérer le port.

Si tu veux en savoir plus :
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
http://www.autoitscript.com/forum/index ... opic=18524

Amicalement.

BM

Re: [..] Sélection de l'imprimante sous excel

Posté : mer. 01 sept. 2010 11:26
par peuchere83
Merci pour ces réponses !!!

Mais malheureusement cela ne change rien à mon problème :
@Jerome :
Oui j'ai déjà utilisé le fonction de Tlem (dixit mon 1er post)

@scorp84 :
Ta fonction est la même que Tlem (avec beaucoup plus d'information) mais malheureusement le numéro qui change sur excel ne correspond pas au port (je pensais cela moi aussi mais à tord)
Par exemple dans mon cas ma HP LaserJet 1020 est sur le port USB001 (dixit ton code) alors qu'excel me la déclare comme : 'HP LaserJet 1020 sur Ne04:'

Je suis donc entrain de faire une gestion d'erreur sur les objets com.

Merci

Re: [..] Sélection de l'imprimante sous excel

Posté : mer. 01 sept. 2010 11:46
par SrBelial
tu utilise des imprimantes qui ne sont pas déclarées en tant qu'imprimantes locales, elles te sont remontées par les autres machines présentes sur le réseau !

en conséquence : soit tu installe ces imprimantes directement sur ton post (aucun branchement à faire, juste suivre la procédure normale d'ajout d'imprimante en la recherchant dans l'annuaire réseau)
soit tu utilise directement des fonctions de connexion à des ressources distantes, ça pourrait éventuellement aider ...
_WinNet_AddConnection2 ou _WinNet_AddConnection3
(voir un sujet initié par Sh4dows pour en apprendre un peu plus)

en revanche après à toi de voir comment cela serait utilisable pour utiliser les imprimantes connectés par ce biais là ... parce que moi j'en sais pas plus !

Re: [..] Sélection de l'imprimante sous excel

Posté : mer. 01 sept. 2010 12:44
par peuchere83
SrBelial a écrit :tu utilise des imprimantes qui ne sont pas déclarées en tant qu'imprimantes locales, elles te sont remontées par les autres machines présentes sur le réseau !
Se sont des imprimantes USB qui sont physiquement reliées à mon PC. Comment ne peuvent elles pas être déclarées comme imprimantes locales :?:

De plus j'ai essayé aussi avec une imprimante réseau et elle est aussi nommée de la même manière sous excel : SonNom sur Ne0x:


Par avance merci.

Re: [..] Sélection de l'imprimante sous excel

Posté : mer. 01 sept. 2010 15:35
par SrBelial
si elles sont déclarées comme s'appelant "laserqqch sur Neo#" c'est qu'elles sont considérées comme des imprimantes réseau, et que c'est le poste Neo# qui partage ces imprimantes qui te permet d'y accéder ...

du coup tu as beau avoir un cable USB .... quand tu imprime ça fait tout le circuit :
ton poste => réseau/routeur/switch/autre => Neo# => réseau/routeur/etc ... => ton poste => imprimante

(à moins que ce soient des imprimantes possédant une interface ethernet ou wifi auquel cas après le second passage dans le réseau ça ne passe pas par ton poste mais direct à l'imprimante ...

Re: [..] Sélection de l'imprimante sous excel

Posté : jeu. 02 sept. 2010 09:32
par peuchere83
Merci pour ces informations SrBelial.

Mon seul problème est que je ne vois pas comment installer mes imprimantes pour qu'elles soient considérées comme en local.
Car si je suis ton raisonnement, si je débranche mon câble réseau, je devrais être dans l'impossibilité d'imprimer sur mon imprimante USB ?!
Or cela fonctionne et elle est toujours détectées de la même manière sous Excel.

Le poste Neox n'existe pas sur mon réseau. Je pense donc que c'est excel qui le crée pour son fonctionnement sur port usb car en port lpt1 pas de problème.

D'ailleurs pourrais tu faire le test suivant pour moi stp :
tu dois certainement avoir une imprimante usb connectée à ton poste. Peux tu vérifier son nom sous excel ?
Pour cela tu créés une nouvelle macro (outils>macro>nouvelle macro) et tu lance une impression de ta page vierge sur ton imprimante usb. Tu arretes ensuite l'enregistrement de la macro, puis tu vas dans outils>macro>macros et tu sélectionne modifié pour voir le nom détecté.

Je me doute que tu connais forcément cette manipulation mais je la précise pour les autres personnes du forum qui auront la gentillesse de tester cela pour moi.

Par avance merci.