Gestion des bacs imprimantes

Signaler
Messages postés
1
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
13 février 2006
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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.