Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.24b27d5bba199654.40692@free.fr.ns... Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.24b27d5bba199654.40692@free.fr.ns... Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.24b27d5bba199654.40692@free.fr.ns... Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
A = Application.ActivePrinter
Salutations!
"JLuc" a écrit dans le message de news:
*Bonjour michdenis*,
J'ai fais un copier coller et tester et ca marche. il ne me reste plus
qu'a trouver la solution pour avoir le port d'imprimante utiliseBonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== >> 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >>
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
A = Application.ActivePrinter
Salutations!
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.24e77d5b2c5429fe.40692@free.fr.ns... *Bonjour michdenis*,
J'ai fais un copier coller et tester et ca marche. il ne me reste plus
qu'a trouver la solution pour avoir le port d'imprimante utilise
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== >> 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >>
Salutations!
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.24b27d5bba199654.40692@free.fr.ns... Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
A = Application.ActivePrinter
Salutations!
"JLuc" a écrit dans le message de news:
*Bonjour michdenis*,
J'ai fais un copier coller et tester et ca marche. il ne me reste plus
qu'a trouver la solution pour avoir le port d'imprimante utiliseBonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== >> 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >>
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" <ns.jeanluc.laurent@free.fr.ns> a écrit dans le message de news:
mn.24b27d5bba199654.40692@free.fr.ns... Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonjour JLuc
De Laurent Longre sur le site de Frédéric Sigonneau
Attribute VB_Name = "ImprimantesInstallees"
'===================================================== > 'mpfe L Longre : Question :
'Quelqu'un connait il un moyen via VBA de connaitre la liste des imprimantes
'installées sur un PC et surtout de connaitre les qualités d'impression
possibles ?
'Précision : Je ne veux pas connaitre seulement l'imprimante active, mais
toutes
'celles que l'utilisateur a installé sur son PC et connaitre la qualité
'd'impression de chacune d'elle.
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 Sub RtlMoveMemory Lib "Kernel32" (pDest As Long, _
ByVal pSource As Long, ByVal Length 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
Sub Test()
Dim PrinterEnum() As Long, Impr As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Res As Long
EnumPrintersA 2, vbNullString, 2, 0, 0, Needed, 0
If Needed = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
ReDim PrinterEnum(Needed / 4)
If EnumPrintersA(2, vbNullString, 2, PrinterEnum(0), Needed, _
Needed, Returned) = 0 Then MsgBox "Erreur", vbCritical: Exit Sub
For I = 1 To Returned * 21 Step 21
Impr = Space$(lstrlenA(PrinterEnum(I)))
lstrcpyA Impr, PrinterEnum(I)
If PrinterEnum(I + 6) Then _
RtlMoveMemory Res, PrinterEnum(I + 6) + 58, 2
MsgBox "Imprimante : " & Impr & vbCr & vbCr & "Résolution : " _
& IIf(PrinterEnum(I + 6), Res, "Inconnue")
Next I
End Sub
'===================================================== >
Salutations!
"JLuc" a écrit dans le message de news:
Bonsoir les lecteurs,
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
Bonsour®
JLuc wrote:Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
heu ....
Sub ChoixIMP()
Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Bonsour®
JLuc wrote:
Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
heu ....
Sub ChoixIMP()
Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Bonsour®
JLuc wrote:Y a t'il une methode ou un moyen de connaitre le nom de toutes les
imprimantes installees sur un pc en vba ?
J'aimerais faire un applicatif pour choisir une imprimante par defaut
pour un classeur.
Merci d'avance
heu ....
Sub ChoixIMP()
Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Application.Dialogs(xlDialogPrinterSetup).Show
me permet de definir une imprimante /par defaut/ pour le temps que
Application.Dialogs(xlDialogPrinterSetup).Show
me permet de definir une imprimante /par defaut/ pour le temps que
Application.Dialogs(xlDialogPrinterSetup).Show
me permet de definir une imprimante /par defaut/ pour le temps que