Gestion des bacs imprimantes

cs_loki99 Messages postés 1 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 13 février 2006 - 13 févr. 2006 à 15:25
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 13 févr. 2006 à 17:56
J'ai le code suivant, pourtant lors de l'impression sur la première imprimante, tout part vers le bac 2, quelqu'un à une suggestion ?

Sub NomImprimante()
Dim SearchString As String
Dim l As Integer
Dim TypeImprimante As String
Dim MyPos As Integer
Dim FinChaine As Integer


Const DebutChaine As Integer = 11 ' longueur du nom du serveur
Const SearchChar As String = "_$_" ' Spécifie la chaîne recherchée


SearchString = ActivePrinter ' Affecte le nom de la queue d'impression
MyPos = InStr(SearchString, SearchChar) ' Recherche la position déterminant la fin
long1 = Len(SearchString) ' détermine la longueur


FinChaine = long1 - MyPos


TypeImprimante = Mid(SearchString, DebutChaine, long1 - (DebutChaine + FinChaine))


Select Case TypeImprimante


Case "Q_HP_LASERJET_4200" ' driver: HP LaserJet 4200 PCL 5e 60.05.30.04
With Selection.PageSetup
.FirstPageTray = 263 ' Bac 2
.OtherPagesTray = wdPrinterDefaultBin ' Bac par défaut
End With
' Départ manuel : 258
' Bac 1 : 264
' Bac 2 : 263
' Bac 3 : 262

Case Q_HP_LASERJET_4000 ' driver: HP LaserJet 4000 Series PCL6 W2003 Original Driver
With Selection.PageSetup
.FirstPageTray = 261 ' Bac 2
.OtherPagesTray = wdPrinterDefaultBin ' Bac par défaut
End With

Case Xerox_ProC3545 ' driver: Xerox DocuColor 2240 PCL 6 WinXP
With Selection.PageSetup
.FirstPageTray = 258 ' Bac 2
.OtherPagesTray = wdPrinterDefaultBin ' Bac par défaut
End With

Case Else
MsgBox "Mauvaise imprimante"


End Select


End Sub

2 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
13 févr. 2006 à 17:55
Salut
Désolé, cette réponse ne répondra pas à ta question, juste des remarques

-1- Chez moi, ActivePrinter n'existe pas (VB6 sous Windows 2000)
Va falloir nous donner les infos de base de ta question : Langage et OS
En recherchant sur MSDN, ActivePrinter appartient au VBA de Excel 2003 ET à l'objet MapPoint ou Application. Il faut donc déclarer une instance de ce MapPoint avant, ou préciser Application.ActivePrinter
Voir cet exemple trouvé sur Google http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mappoint2004/BIZOMPActivePrinter.asp

-2- Je parie que tu n'as pas "Option Explicit" en tête de chacune de tes pages de code.
Sinon, tu aurais découvert deux erreurs :
Case Q_HP_LASERJET_4000
Case Xerox_ProC3545
Il manque les " pour désigner une chaine de caractère comme tu l'as fait sur le premier Case

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
13 févr. 2006 à 17:56
Mes excuses, VBA était le thème et je ne l'ai pas vu car il est mal placé (en dessous de la fenetre de saisie).
J'ai rien dit.
0