OVH Cloud OVH Cloud

imprimante par défaut

8 réponses
Avatar
Eric
Bonjour,

Sur l'excellent site excelabo, j'ai trouvé une macro permettant de définir
l'imprimante par défaut de Windows

http://www.excelabo.net/xl/imprimer.php#piloterimprimante

J'ai un problème qui doit être tout bête, mais je n'arrive pas à lancer la
macro Sub ChangeImprimanteParDéfaut(Nom As String)

Par quoi faut-il remplacer le (Nom as string) ?

Ce que je souhaite faire, c'est forcer le changement d'imprimante à la fin
de ma macro (qui entres autres, pilote word et une autre appli en
automation) . Celle proposée semble me convenir car elle agit directement
sur Windows et non pas seulement sur XL.

En effet, Application.ActivePrinter = "machin sur NExx" ne fonctionne pas
tout le temps.

D'avance merci
Eric

8 réponses

Avatar
michdenis
Bonjour Éric,

IL y a une toute petite erreur sur le site de Misange à propos de la fonction et de la procédure.

Dans cette ligne de code que l'on retrouve dans les 2 procédures (function et sub)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"

On se doit d'insérer un "" avant le "Win.ini" comme ceci :
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"


Section API à déclarer dans le haut du module :

Const HWND_BROADCAST = &HFFFF
Const WM_WININICHANGE = &H1A

Private Declare Function GetPrivateProfileString _
Lib "Kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize _
As Long, ByVal lpFileName As String) As Long

Private Declare Function GetWindowsDirectory _
Lib "Kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize _
As Long) As Long

Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, ByVal lParam As Any) _
As Long

Private Declare Function WritePrivateProfileString _
Lib "Kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

Dim Chemin As String
Dim NC As Long
Dim Ret As String

Sub ChangeImprimanteParDéfaut(Nom As String)
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"
Ret = String(255, 0)
NC = GetPrivateProfileString("Devices", Nom, "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
WritePrivateProfileString "windows", "device", Nom & "," & Ret, Chemin
SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, "windows"
End Sub

Function ImprimanteParDéfaut() As String
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"
Ret = String(255, 0)
NC = GetPrivateProfileString("windows", "device", "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
NC = InStr(Ret, ",")
ImprimanteParDéfaut = Left(Ret, NC - 1)

End Function

'------------------------------
Sub PourLancerLaProcédureImPrimanteParDéfaut()

'HP LaserJet 3200 Series PS = Nom de l'imprimante apparaissant
' dans la fenêtre " imprimante" du panneau de configuration

ChangeImprimanteParDéfaut ("HP LaserJet 3200 Series PS")

End Sub
'------------------------------


Et ça roule !


Salutations!











"Eric" a écrit dans le message de news:
Bonjour,

Sur l'excellent site excelabo, j'ai trouvé une macro permettant de définir
l'imprimante par défaut de Windows

http://www.excelabo.net/xl/imprimer.php#piloterimprimante

J'ai un problème qui doit être tout bête, mais je n'arrive pas à lancer la
macro Sub ChangeImprimanteParDéfaut(Nom As String)

Par quoi faut-il remplacer le (Nom as string) ?

Ce que je souhaite faire, c'est forcer le changement d'imprimante à la fin
de ma macro (qui entres autres, pilote word et une autre appli en
automation) . Celle proposée semble me convenir car elle agit directement
sur Windows et non pas seulement sur XL.

En effet, Application.ActivePrinter = "machin sur NExx" ne fonctionne pas
tout le temps.

D'avance merci
Eric
Avatar
Misange
Aie aie aie, je sais... J'ai un paramètre à changer dans mes procédures
pour doubler les (le c'est le signe d'échappement en php et du coup
il est supprimé à la lecture ) C'est dans ma liste des todo depuis déjà
un moment...

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

on 09/11/2004 13:07:
Bonjour Éric,

IL y a une toute petite erreur sur le site de Misange à propos de la fonction et de la procédure.

Dans cette ligne de code que l'on retrouve dans les 2 procédures (function et sub)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"

On se doit d'insérer un "" avant le "Win.ini" comme ceci :
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"


Section API à déclarer dans le haut du module :

Const HWND_BROADCAST = &HFFFF
Const WM_WININICHANGE = &H1A

Private Declare Function GetPrivateProfileString _
Lib "Kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize _
As Long, ByVal lpFileName As String) As Long

Private Declare Function GetWindowsDirectory _
Lib "Kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize _
As Long) As Long

Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, ByVal lParam As Any) _
As Long

Private Declare Function WritePrivateProfileString _
Lib "Kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

Dim Chemin As String
Dim NC As Long
Dim Ret As String

Sub ChangeImprimanteParDéfaut(Nom As String)
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"
Ret = String(255, 0)
NC = GetPrivateProfileString("Devices", Nom, "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
WritePrivateProfileString "windows", "device", Nom & "," & Ret, Chemin
SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, "windows"
End Sub

Function ImprimanteParDéfaut() As String
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) + "win.ini"
Ret = String(255, 0)
NC = GetPrivateProfileString("windows", "device", "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
NC = InStr(Ret, ",")
ImprimanteParDéfaut = Left(Ret, NC - 1)

End Function

'------------------------------
Sub PourLancerLaProcédureImPrimanteParDéfaut()

'HP LaserJet 3200 Series PS = Nom de l'imprimante apparaissant
' dans la fenêtre " imprimante" du panneau de configuration

ChangeImprimanteParDéfaut ("HP LaserJet 3200 Series PS")

End Sub
'------------------------------


Et ça roule !


Salutations!











"Eric" a écrit dans le message de news:
Bonjour,

Sur l'excellent site excelabo, j'ai trouvé une macro permettant de définir
l'imprimante par défaut de Windows

http://www.excelabo.net/xl/imprimer.php#piloterimprimante

J'ai un problème qui doit être tout bête, mais je n'arrive pas à lancer la
macro Sub ChangeImprimanteParDéfaut(Nom As String)

Par quoi faut-il remplacer le (Nom as string) ?

Ce que je souhaite faire, c'est forcer le changement d'imprimante à la fin
de ma macro (qui entres autres, pilote word et une autre appli en
automation) . Celle proposée semble me convenir car elle agit directement
sur Windows et non pas seulement sur XL.

En effet, Application.ActivePrinter = "machin sur NExx" ne fonctionne pas
tout le temps.

D'avance merci
Eric





Avatar
sabatier
j'ai cru un moment qu'inspirée par LeSteph, tu t'étais mise à l'espagnol,
flo...
jps

"Misange" a écrit dans le message de
news:
C'est dans ma liste des todo
Avatar
michdenis
Bonjour Misange,

" Aie aie aie, je sais... "

C'était seulement pour permettre à Éric de faire rouler les procédures !

Maintenant lui aussi sait !!!

;-))


Salutations!
Avatar
Misange
tu aurais pu penser aussi à la liste des tout doux !
j'ai su pépier en espagnol mais aujourd'hui si je le comprends encore
(au moins le sens général) quand j'essaie de le parler c'est assez
comique, mélange hispano anglais qu'il vaut mieux camoufler derrière des
cuicui futés.

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


on 09/11/2004 13:56:
j'ai cru un moment qu'inspirée par LeSteph, tu t'étais mise à l'espagnol,
flo...
jps

"Misange" a écrit dans le message de
news:
C'est dans ma liste des todo



Avatar
Eric
Bonjour Michdenis,
Merci de ta réponse, cependant cela ne fonctionne pas. J'ai recopié le
contenu de ton message dans un nouveau module.


Quand je complète
Sub ChangeImprimanteParDéfaut(Nom as String)

par

Sub ChangeImprimanteParDéfaut("Acrobat Distiller") 'imprimante fichier

ou Sub ChangeImprimanteParDéfaut("Xerox sur XEROX") 'Imprimante réseau

J'ai un message "Erreur de compilation" et pourtant les noms des imprimantes
sont conforme au nom figurant dans le panneau de configuration

Pour info je suis sous W2K + Office 2002


Eric




"michdenis" a écrit dans le message de
news:
Bonjour Éric,

IL y a une toute petite erreur sur le site de Misange à propos de la
fonction et de la procédure.


Dans cette ligne de code que l'on retrouve dans les 2 procédures (function
et sub)

Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"


On se doit d'insérer un "" avant le "Win.ini" comme ceci :
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"



Section API à déclarer dans le haut du module :

Const HWND_BROADCAST = &HFFFF
Const WM_WININICHANGE = &H1A

Private Declare Function GetPrivateProfileString _
Lib "Kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize _
As Long, ByVal lpFileName As String) As Long

Private Declare Function GetWindowsDirectory _
Lib "Kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize _
As Long) As Long

Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, ByVal lParam As Any) _
As Long

Private Declare Function WritePrivateProfileString _
Lib "Kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

Dim Chemin As String
Dim NC As Long
Dim Ret As String

Sub ChangeImprimanteParDéfaut(Nom As String)
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"

Ret = String(255, 0)
NC = GetPrivateProfileString("Devices", Nom, "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
WritePrivateProfileString "windows", "device", Nom & "," & Ret, Chemin
SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, "windows"
End Sub

Function ImprimanteParDéfaut() As String
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"

Ret = String(255, 0)
NC = GetPrivateProfileString("windows", "device", "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
NC = InStr(Ret, ",")
ImprimanteParDéfaut = Left(Ret, NC - 1)

End Function

'------------------------------
Sub PourLancerLaProcédureImPrimanteParDéfaut()

'HP LaserJet 3200 Series PS = Nom de l'imprimante apparaissant
' dans la fenêtre " imprimante" du panneau de configuration

ChangeImprimanteParDéfaut ("HP LaserJet 3200 Series PS")

End Sub
'------------------------------


Et ça roule !


Salutations!











"Eric" a écrit dans le message de news:


Bonjour,

Sur l'excellent site excelabo, j'ai trouvé une macro permettant de définir
l'imprimante par défaut de Windows

http://www.excelabo.net/xl/imprimer.php#piloterimprimante

J'ai un problème qui doit être tout bête, mais je n'arrive pas à lancer la
macro Sub ChangeImprimanteParDéfaut(Nom As String)

Par quoi faut-il remplacer le (Nom as string) ?

Ce que je souhaite faire, c'est forcer le changement d'imprimante à la fin
de ma macro (qui entres autres, pilote word et une autre appli en
automation) . Celle proposée semble me convenir car elle agit directement
sur Windows et non pas seulement sur XL.

En effet, Application.ActivePrinter = "machin sur NExx" ne fonctionne pas
tout le temps.

D'avance merci
Eric





Avatar
michdenis
Bonjour Éric,

Si tu as une erreur de compilation, c'est qu'il y a une erreur de syntaxe ... ou une longue ligne de code n'est pas
coupée de la bonne manière ... mais cela n'invalide pas la capacité de la procédure à faire le travail.

Est-ce que les API ont été déclaré dans le haut du module ?
As-tu des lignes "Rouges" dans les API ? = coupure de la ligne incorrecte !

Utilise la touche F8 et exécute la procédure Pas à Pas. Peut être qu'excel te pointera là où le bât blesse !

Ceci étant dit, je n'ai aucune idée à savoir si cette même procure est application dans son intégrité à tous les
systèmes d'exploitation !

Testé sous windows xp pro et excel 2002


Salutations!



"Eric" a écrit dans le message de news: %
Bonjour Michdenis,
Merci de ta réponse, cependant cela ne fonctionne pas. J'ai recopié le
contenu de ton message dans un nouveau module.


Quand je complète
Sub ChangeImprimanteParDéfaut(Nom as String)

par

Sub ChangeImprimanteParDéfaut("Acrobat Distiller") 'imprimante fichier

ou Sub ChangeImprimanteParDéfaut("Xerox sur XEROX") 'Imprimante réseau

J'ai un message "Erreur de compilation" et pourtant les noms des imprimantes
sont conforme au nom figurant dans le panneau de configuration

Pour info je suis sous W2K + Office 2002


Eric




"michdenis" a écrit dans le message de
news:
Bonjour Éric,

IL y a une toute petite erreur sur le site de Misange à propos de la
fonction et de la procédure.


Dans cette ligne de code que l'on retrouve dans les 2 procédures (function
et sub)

Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"


On se doit d'insérer un "" avant le "Win.ini" comme ceci :
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"



Section API à déclarer dans le haut du module :

Const HWND_BROADCAST = &HFFFF
Const WM_WININICHANGE = &H1A

Private Declare Function GetPrivateProfileString _
Lib "Kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize _
As Long, ByVal lpFileName As String) As Long

Private Declare Function GetWindowsDirectory _
Lib "Kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize _
As Long) As Long

Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, ByVal lParam As Any) _
As Long

Private Declare Function WritePrivateProfileString _
Lib "Kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

Dim Chemin As String
Dim NC As Long
Dim Ret As String

Sub ChangeImprimanteParDéfaut(Nom As String)
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"

Ret = String(255, 0)
NC = GetPrivateProfileString("Devices", Nom, "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
WritePrivateProfileString "windows", "device", Nom & "," & Ret, Chemin
SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, "windows"
End Sub

Function ImprimanteParDéfaut() As String
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"

Ret = String(255, 0)
NC = GetPrivateProfileString("windows", "device", "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
NC = InStr(Ret, ",")
ImprimanteParDéfaut = Left(Ret, NC - 1)

End Function

'------------------------------
Sub PourLancerLaProcédureImPrimanteParDéfaut()

'HP LaserJet 3200 Series PS = Nom de l'imprimante apparaissant
' dans la fenêtre " imprimante" du panneau de configuration

ChangeImprimanteParDéfaut ("HP LaserJet 3200 Series PS")

End Sub
'------------------------------


Et ça roule !


Salutations!











"Eric" a écrit dans le message de news:


Bonjour,

Sur l'excellent site excelabo, j'ai trouvé une macro permettant de définir
l'imprimante par défaut de Windows

http://www.excelabo.net/xl/imprimer.php#piloterimprimante

J'ai un problème qui doit être tout bête, mais je n'arrive pas à lancer la
macro Sub ChangeImprimanteParDéfaut(Nom As String)

Par quoi faut-il remplacer le (Nom as string) ?

Ce que je souhaite faire, c'est forcer le changement d'imprimante à la fin
de ma macro (qui entres autres, pilote word et une autre appli en
automation) . Celle proposée semble me convenir car elle agit directement
sur Windows et non pas seulement sur XL.

En effet, Application.ActivePrinter = "machin sur NExx" ne fonctionne pas
tout le temps.

D'avance merci
Eric





Avatar
Eric
Merci de ta réponse,

J'avais juste oublié de lancer la macro :

Sub PourLancerLaProcédureImPrimanteParDéfaut()

ChangeImprimanteParDéfaut ("PDF")

End Sub

Tout roule
Merci beaucoup




"michdenis" a écrit dans le message de
news:
Bonjour Éric,

Si tu as une erreur de compilation, c'est qu'il y a une erreur de syntaxe
... ou une longue ligne de code n'est pas

coupée de la bonne manière ... mais cela n'invalide pas la capacité de la
procédure à faire le travail.


Est-ce que les API ont été déclaré dans le haut du module ?
As-tu des lignes "Rouges" dans les API ? = coupure de la ligne incorrecte
!


Utilise la touche F8 et exécute la procédure Pas à Pas. Peut être qu'excel
te pointera là où le bât blesse !


Ceci étant dit, je n'ai aucune idée à savoir si cette même procure est
application dans son intégrité à tous les

systèmes d'exploitation !

Testé sous windows xp pro et excel 2002


Salutations!



"Eric" a écrit dans le message de news:
%

Bonjour Michdenis,
Merci de ta réponse, cependant cela ne fonctionne pas. J'ai recopié le
contenu de ton message dans un nouveau module.


Quand je complète
Sub ChangeImprimanteParDéfaut(Nom as String)

par

Sub ChangeImprimanteParDéfaut("Acrobat Distiller") 'imprimante fichier

ou Sub ChangeImprimanteParDéfaut("Xerox sur XEROX") 'Imprimante réseau

J'ai un message "Erreur de compilation" et pourtant les noms des
imprimantes

sont conforme au nom figurant dans le panneau de configuration

Pour info je suis sous W2K + Office 2002


Eric




"michdenis" a écrit dans le message de
news:
Bonjour Éric,

IL y a une toute petite erreur sur le site de Misange à propos de la
fonction et de la procédure.


Dans cette ligne de code que l'on retrouve dans les 2 procédures
(function


et sub)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"


On se doit d'insérer un "" avant le "Win.ini" comme ceci :
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"



Section API à déclarer dans le haut du module :

Const HWND_BROADCAST = &HFFFF
Const WM_WININICHANGE = &H1A

Private Declare Function GetPrivateProfileString _
Lib "Kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName _
As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize _
As Long, ByVal lpFileName As String) As Long

Private Declare Function GetWindowsDirectory _
Lib "Kernel32" Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize _
As Long) As Long

Private Declare Function SendMessage Lib _
"user32" Alias "SendMessageA" _
(ByVal hWnd As Long, ByVal wMsg As Long, _
ByVal wParam As Integer, ByVal lParam As Any) _
As Long

Private Declare Function WritePrivateProfileString _
Lib "Kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal _
lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long

Dim Chemin As String
Dim NC As Long
Dim Ret As String

Sub ChangeImprimanteParDéfaut(Nom As String)
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"

Ret = String(255, 0)
NC = GetPrivateProfileString("Devices", Nom, "", Ret, 255, Chemin)
Ret = Left(Ret, NC)
WritePrivateProfileString "windows", "device", Nom & "," & Ret, Chemin
SendMessage HWND_BROADCAST, WM_WININICHANGE, 0, "windows"
End Sub

Function ImprimanteParDéfaut() As String
Chemin = String(260, 0)
Chemin = Left$(Chemin, GetWindowsDirectory(Chemin, Len(Chemin))) +
"win.ini"

Ret = String(255, 0)
NC = GetPrivateProfileString("windows", "device", "", Ret, 255,
Chemin)


Ret = Left(Ret, NC)
NC = InStr(Ret, ",")
ImprimanteParDéfaut = Left(Ret, NC - 1)

End Function

'------------------------------
Sub PourLancerLaProcédureImPrimanteParDéfaut()

'HP LaserJet 3200 Series PS = Nom de l'imprimante apparaissant
' dans la fenêtre " imprimante" du panneau de configuration

ChangeImprimanteParDéfaut ("HP LaserJet 3200 Series PS")

End Sub
'------------------------------


Et ça roule !


Salutations!











"Eric" a écrit dans le message de news:


Bonjour,

Sur l'excellent site excelabo, j'ai trouvé une macro permettant de
définir


l'imprimante par défaut de Windows

http://www.excelabo.net/xl/imprimer.php#piloterimprimante

J'ai un problème qui doit être tout bête, mais je n'arrive pas à lancer
la


macro Sub ChangeImprimanteParDéfaut(Nom As String)

Par quoi faut-il remplacer le (Nom as string) ?

Ce que je souhaite faire, c'est forcer le changement d'imprimante à la
fin


de ma macro (qui entres autres, pilote word et une autre appli en
automation) . Celle proposée semble me convenir car elle agit
directement


sur Windows et non pas seulement sur XL.

En effet, Application.ActivePrinter = "machin sur NExx" ne fonctionne
pas


tout le temps.

D'avance merci
Eric