Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1459 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Utiliser une macro Excel pour choisir une imprimante

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utiliser une macro Excel pour choisir une imprimante

n°626343
tux46
Posté le 30-01-2004 à 17:44:44  profilanswer
 

J'ai un fichier Excel contenant une macro me permettant de définir les paramètres d'impression et notamment l'imprimante destinataire du document. Cette macro fonctionnait sur des machines avec W98 et ne fonctionne plus avec W XP Pro. Le débugger me signale que le port d'imprimante Ne0x n'est pas le bon celui ci varie d'une machine à l'autre en fonction de l'ordre dans lequel les imprimantes réseaux ont été installé sur la machine. Y'a t'il une solution pour trouver automatiquement le nom ou l'adresse de l'imprimante désirée.

mood
Publicité
Posté le 30-01-2004 à 17:44:44  profilanswer
 

n°628221
itawa
Posté le 02-02-2004 à 03:30:19  profilanswer
 

Bonjour,
 
Voila une solution qui pourrait peut etre t'aider, ca va lister tutes les imprimantes exustante sur l'ordinateur. Tu n'as plus qu'e selectionner la bonne imprimante par son nom:
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
Private Function Imprimantes()
  Dim PrinterEnum() As Long, Impr() As String
  Dim Needed As Long, Returned As Long, i As Integer
  EnumPrintersA 2, vbNullString, 5, 0, 0, Needed, 0
  If Needed = 0 Then Exit Function
  ReDim PrinterEnum(Needed / 4)
  EnumPrintersA 2, vbNullString, 5, PrinterEnum(0), _
  Needed, Needed, Returned
  ReDim Impr(1 To Returned)
  For i = 1 To Returned
    Impr(i) = Space$(lstrlenA(PrinterEnum(i * 5 - 5)))
    lstrcpyA Impr(i), PrinterEnum(i * 5 - 5)
  Next i
  Imprimantes = Impr
End Function
Sub ListeImprimante()
Dim Impr
For Each Impr In Imprimantes
MsgBox Impr
Next
End Sub
 

n°2013989
mygoo0ool
Posté le 03-08-2010 à 16:31:35  profilanswer
 

SUPER !!
Merci pour ce post ! ça fonctionne nikel :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Utiliser une macro Excel pour choisir une imprimante

 

Sujets relatifs
Dépendance de la version d' Excel pour accès par VB ou Java (POI)Ouvrir un user form à l'ouverture d'un fichier excel
Macro de tri[Perl] Création d'un script CGI quels modules utiliser?
formule de calcul Excelchoisir la carte réseau du socket en Java
[Impression] Page Web sur imprimante noir & blancPb avec le fichier VBA6.dll sur Excel
VB macro word : code : sur un click ouvrir un autre document wordquel objet choisir pour mon besoin?
Plus de sujets relatifs à : Utiliser une macro Excel pour choisir une imprimante


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR