Sélection de l'imprimante avec VB excel 2010

tarbais -  
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

2 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Avec le texte de la macro, il serait certainement plus facile de comprendre ce qui ne va pas.
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    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+
    0