Bonjour à tous,
J'arrive très bien à faire apparaitre la fenêtre qui permet de choisir une
imprimante parmi celles qui sont installées avec :
Application.Dialogs(xlDialogPrinterSetup).Show
Mais je constate que ce code me présente toutes les imprimantes installées
sans différencier celles qui sont dispo de celles qui ne le sont pas. Je
voudrais ne voir apparaitre que les imprimantes disponibles (celles qui ne
sont pas disponibles apparaitraient en grisé et les dispos en normal !
Est-ce possible ?
Merci à tous
Michel
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
JohnFuss
Bonjour,
pour ma part j'utilise cette fonction made in moi-même pour connaitre le nombre d'imprimante, avoir des infos sur l'une de ces imprimantes (par son numéro) et le cas échéant la mettre 'par défaut'. Peut-être y trouveras-tu ton bonheur.
Bon courage.
John
'--------------------------------------------------------------------------------------- ' Function : GetPrinterInfo As String ' Sujet : Index de 0 à Count - 1, -1 renvoi le nom de l'imprimante par defaut ' SetDefault = True => defini l'imprimante Index comme defaut ' Renvoi : L'info demandée sur les imprimantes ' Exemple : For i = 1 To Val(GetPrinterInfo(, PrintersCount)) '--------------------------------------------------------------------------------------- ' Public Function GetPrinterInfo(Optional Index As Integer = -1, Optional TypeRetour As PrinterInfos = PrintersName, Optional SetDefault As Boolean = False) As String Dim PrnList As Object, i As Integer On Error GoTo GetPrinterInfo_Error
If TypeRetour = PrintersCount Then Set PrnList = CreateObject("WScript.Network").EnumPrinterConnections GetPrinterInfo = CStr(PrnList.Count / 2) Else With CreateObject("WScript.Network") Set PrnList = .EnumPrinterConnections If Index = -1 Then For i = 1 To PrnList.Count - 1 Step 2 If InStr(Application.ActivePrinter, PrnList(i)) > 0 Then GetPrinterInfo = PrnList(i) Exit For End If Next Else GetPrinterInfo = PrnList(Index * 2 + 1) If SetDefault And InStr(Application.ActivePrinter, PrnList(Index * 2 + 1)) = 0 Then .SetDefaultPrinter PrnList(Index * 2 + 1) End If End With End If Set PrnList = Nothing GetPrinterInfo_Error: End Function
"Michel Voirain" a écrit dans le message de news:
Bonjour à tous, J'arrive très bien à faire apparaitre la fenêtre qui permet de choisir une imprimante parmi celles qui sont installées avec : Application.Dialogs(xlDialogPrinterSetup).Show Mais je constate que ce code me présente toutes les imprimantes installées sans différencier celles qui sont dispo de celles qui ne le sont pas. Je voudrais ne voir apparaitre que les imprimantes disponibles (celles qui ne sont pas disponibles apparaitraient en grisé et les dispos en normal ! Est-ce possible ? Merci à tous Michel
Bonjour,
pour ma part j'utilise cette fonction made in moi-même pour connaitre le
nombre d'imprimante, avoir des infos sur l'une de ces imprimantes (par son
numéro) et le cas échéant la mettre 'par défaut'.
Peut-être y trouveras-tu ton bonheur.
Bon courage.
John
'---------------------------------------------------------------------------------------
' Function : GetPrinterInfo As String
' Sujet : Index de 0 à Count - 1, -1 renvoi le nom de l'imprimante par
defaut
' SetDefault = True => defini l'imprimante Index comme defaut
' Renvoi : L'info demandée sur les imprimantes
' Exemple : For i = 1 To Val(GetPrinterInfo(, PrintersCount))
'---------------------------------------------------------------------------------------
'
Public Function GetPrinterInfo(Optional Index As Integer = -1, Optional
TypeRetour As PrinterInfos = PrintersName, Optional SetDefault As Boolean =
False) As String
Dim PrnList As Object, i As Integer
On Error GoTo GetPrinterInfo_Error
If TypeRetour = PrintersCount Then
Set PrnList = CreateObject("WScript.Network").EnumPrinterConnections
GetPrinterInfo = CStr(PrnList.Count / 2)
Else
With CreateObject("WScript.Network")
Set PrnList = .EnumPrinterConnections
If Index = -1 Then
For i = 1 To PrnList.Count - 1 Step 2
If InStr(Application.ActivePrinter, PrnList(i)) > 0 Then
GetPrinterInfo = PrnList(i)
Exit For
End If
Next
Else
GetPrinterInfo = PrnList(Index * 2 + 1)
If SetDefault And InStr(Application.ActivePrinter,
PrnList(Index * 2 + 1)) = 0 Then .SetDefaultPrinter PrnList(Index * 2 + 1)
End If
End With
End If
Set PrnList = Nothing
GetPrinterInfo_Error:
End Function
"Michel Voirain" <michel.voirain@wanadoo.fr> a écrit dans le message de
news: Otn0zEl3GHA.836@TK2MSFTNGP02.phx.gbl...
Bonjour à tous,
J'arrive très bien à faire apparaitre la fenêtre qui permet de choisir une
imprimante parmi celles qui sont installées avec :
Application.Dialogs(xlDialogPrinterSetup).Show
Mais je constate que ce code me présente toutes les imprimantes installées
sans différencier celles qui sont dispo de celles qui ne le sont pas. Je
voudrais ne voir apparaitre que les imprimantes disponibles (celles qui ne
sont pas disponibles apparaitraient en grisé et les dispos en normal !
Est-ce possible ?
Merci à tous
Michel
pour ma part j'utilise cette fonction made in moi-même pour connaitre le nombre d'imprimante, avoir des infos sur l'une de ces imprimantes (par son numéro) et le cas échéant la mettre 'par défaut'. Peut-être y trouveras-tu ton bonheur.
Bon courage.
John
'--------------------------------------------------------------------------------------- ' Function : GetPrinterInfo As String ' Sujet : Index de 0 à Count - 1, -1 renvoi le nom de l'imprimante par defaut ' SetDefault = True => defini l'imprimante Index comme defaut ' Renvoi : L'info demandée sur les imprimantes ' Exemple : For i = 1 To Val(GetPrinterInfo(, PrintersCount)) '--------------------------------------------------------------------------------------- ' Public Function GetPrinterInfo(Optional Index As Integer = -1, Optional TypeRetour As PrinterInfos = PrintersName, Optional SetDefault As Boolean = False) As String Dim PrnList As Object, i As Integer On Error GoTo GetPrinterInfo_Error
If TypeRetour = PrintersCount Then Set PrnList = CreateObject("WScript.Network").EnumPrinterConnections GetPrinterInfo = CStr(PrnList.Count / 2) Else With CreateObject("WScript.Network") Set PrnList = .EnumPrinterConnections If Index = -1 Then For i = 1 To PrnList.Count - 1 Step 2 If InStr(Application.ActivePrinter, PrnList(i)) > 0 Then GetPrinterInfo = PrnList(i) Exit For End If Next Else GetPrinterInfo = PrnList(Index * 2 + 1) If SetDefault And InStr(Application.ActivePrinter, PrnList(Index * 2 + 1)) = 0 Then .SetDefaultPrinter PrnList(Index * 2 + 1) End If End With End If Set PrnList = Nothing GetPrinterInfo_Error: End Function
"Michel Voirain" a écrit dans le message de news:
Bonjour à tous, J'arrive très bien à faire apparaitre la fenêtre qui permet de choisir une imprimante parmi celles qui sont installées avec : Application.Dialogs(xlDialogPrinterSetup).Show Mais je constate que ce code me présente toutes les imprimantes installées sans différencier celles qui sont dispo de celles qui ne le sont pas. Je voudrais ne voir apparaitre que les imprimantes disponibles (celles qui ne sont pas disponibles apparaitraient en grisé et les dispos en normal ! Est-ce possible ? Merci à tous Michel