Test état imprimante vba

Le
Patrednef
bsr a vous tous,

Je bute sur qq chose, je souhaite écrire un petit test qui permettrait
de savoir si l'imprimante est branché sur le pc ou non:

En gros si je suis en déplacement, alors le code fait autre chose, si
je suis a la maison, alors il lance l'impression, car a la maison je
suis connecte via ma station d'acceuil

Je vous remercie grandement de vote aide

Pat
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #23518731
bonjour Pat,

voici un début ,

Sub ListsPrinters()
Dim oFSO As Object
Dim WshNetwork As Object
Dim oPrinters As Object
Dim sPathFichier As String, sChaine As String, i As Integer
sPathFichier = ThisWorkbook.FullName
sChaine = "Imprimantes connectées au poste :"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set WshNetwork = CreateObject("WScript.Network")
Set oPrinters = WshNetwork.EnumPrinterConnections
For i = 0 To oPrinters.Count - 1 Step 2
sChaine = sChaine & "Port " & oPrinters.Item(i) & " = " & oPrinters.Item(i + 1) & vbCrLf
Next
MsgBox sChaine
End Sub


--
isabelle


Le 2011-06-30 13:30, Patrednef a écrit :
bsr a vous tous,

Je bute sur qq chose, je souhaite écrire un petit test qui permettrait
de savoir si l'imprimante est branché sur le pc ou non:

En gros si je suis en déplacement, alors le code fait autre chose, si
je suis a la maison, alors il lance l'impression, car a la maison je
suis connecte via ma station d'acceuil

Je vous remercie grandement de vote aide

Pat
Patrednef
Le #23522011
Bonsoir Isabelle

Merci pour la piste, en listant les imprimantes, il trouve également
les imprimantes virtuelles type PDF creator ou XPS Writer ..

En fait je connais le nomde l'imprimante, puis je tester si celle dont
je connais le nom est "branché" sur le PC ou non "branché"

Un grand merci aux contributeurs pour votre coup de main, pourtant
bien habitué à écrire du code, je ne trouve pas le moyen de réalise r
celui la .... c'est l'age ?

Bonne soirée à vous tous,

Pat
DanielCo
Le #23522101
Bonsoir,

J'ai trouvé ça sur internet (mrexcel) :

Private Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal
lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As
String, ByVal lpInitData As Long) As Long


Public Function GetPDC(ByVal strPrinter As String) As Long
GetPDC = CreateIC("WINSPOOL", strPrinter, vbNullString, 0&)
End Function

Public Sub GetPrinter()
If GetPDC("Canon MP830 Series Printer") = 0 Then
MsgBox "Couldn't find printer :("
Else
'do some stuff
End If
End Sub

Il faut que tu mettes le nom de ton imprimante à la place de la mienne,
bien sûr. Si elle n'est pas connectée, tu reçois un message d'injure
(que j'ai eu la flemme de traduire.)

Cordialement.
Daniel


Bonsoir Isabelle

Merci pour la piste, en listant les imprimantes, il trouve également
les imprimantes virtuelles type PDF creator ou XPS Writer ..

En fait je connais le nomde l'imprimante, puis je tester si celle dont
je connais le nom est "branché" sur le PC ou non "branché"

Un grand merci aux contributeurs pour votre coup de main, pourtant
bien habitué à écrire du code, je ne trouve pas le moyen de réaliser
celui la .... c'est l'age ?

Bonne soirée à vous tous,

Pat
Maude Este
Le #23523481
Bonsour®

"Patrednef" a écrit
Merci pour la piste, en listant les imprimantes, il trouve également
les imprimantes virtuelles type PDF creator ou XPS Writer ..

En fait je connais le nomde l'imprimante, puis je tester si celle dont
je connais le nom est "branché" sur le PC ou non "branché"



autre alternative :
demander le changement ou confirmation de l'imprimante active

Sub TestPrinter()
x = Application.ActivePrinter
Rep = Application.Dialogs(xlDialogPrinterSetup).Show
y = Application.ActivePrinter
MsgBox "Avant : " & x & Chr(10) & "Maintenant : " & y
End Sub
Publicité
Poster une réponse
Anonyme