Sélection de l'imprimante avec VB excel 2010
tarbais
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
j'ai écris une macro VB sur excel 97 qui sélectionne l'imprimante pdf, imprime puis sélectionne l'imprimante papier puis imprime. Depuis que je suis passé à la version 2010, je ne sais plus comment faire, la sélection de l'imprimante pdf, puis de l'imprimante papier ne fonctionne plus !
cdlt
j'ai écris une macro VB sur excel 97 qui sélectionne l'imprimante pdf, imprime puis sélectionne l'imprimante papier puis imprime. Depuis que je suis passé à la version 2010, je ne sais plus comment faire, la sélection de l'imprimante pdf, puis de l'imprimante papier ne fonctionne plus !
cdlt
A voir également:
- Sélection de l'imprimante avec VB excel 2010
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Imprimer un tableau excel - Guide
- Spouleur imprimante - Guide
- Si ou excel - Guide
2 réponses
Bonjour,
Lister les imprimantes disponibles...
Le nom des imprimantes est dans le tableau ImprEnum()
pour imprimer sur une imprimante spécifique..
A+
Lister les imprimantes disponibles...
Option Explicit
Private Declare Function EnumPrintersA Lib "Winspool.drv" _
(ByVal flags As Long, ByVal name As String, ByVal Level As Long, _
pPrinterEnum As Long, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
Private Declare Function lstrlenA Lib "Kernel32" (ByVal lpString As Any) As Long
Private Declare Function lstrcpyA Lib "Kernel32" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
Public ImprEnum() As String
Public Function NbPrinter() As Integer
Dim PrinterEnum() As Long
Dim Needed As Long, Returned As Long, I As Integer
EnumPrintersA 2, vbNullString, 5, 0, 0, Needed, 0
ReDim PrinterEnum(Needed / 4)
EnumPrintersA 2, vbNullString, 5, PrinterEnum(0), _
Needed, Needed, Returned
ReDim ImprEnum(1 To Returned)
For I = 1 To Returned
ImprEnum(I) = Space$(lstrlenA(PrinterEnum(I * 5 - 5)))
lstrcpyA ImprEnum(I), PrinterEnum(I * 5 - 5)
Next I
NbPrinter = I - 1
End Function
Le nom des imprimantes est dans le tableau ImprEnum()
pour imprimer sur une imprimante spécifique..
Sheets("Feuil1").PrintOut Copies:=1, ActivePrinter:= _
ImprEnum(x), Collate:=True
A+