OVH Cloud OVH Cloud

Probleme d'impression

8 réponses
Avatar
JLuc
Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante
redirigee sur un fichier "par defaut" (cette application utilise
l'imprimante windows par defaut). Apres, je lance mon application excel
pour traite le fichier precedent et l'imprimer. J'aimerais que ma
procedure me redefinisse la *bonne* imprimante par defaut (ou meme
temporairement, ce serai bien aussi) pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables

--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:\Program Files\Microsoft Office\Office\1036\VBALIST.XLS

8 réponses

Avatar
michdenis
Bonjour JLuc,

Modifie ceci : HP DeskJet 930C/932C/935C pour le nom
de l'imprimante désiré affiché dans le panneau de configuration.

'----------------------
Application.ActivePrinter = "HP DeskJet 930C/932C/935C sur LPT1:"
Worksheets("Feuil1").PrintOut
'----------------------


Ceci devrait te permettre d'imprimer la "Feuil1" avec l'imprimante mentionnée.


Salutations!






"JLuc" a écrit dans le message de news:
Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante
redirigee sur un fichier "par defaut" (cette application utilise
l'imprimante windows par defaut). Apres, je lance mon application excel
pour traite le fichier precedent et l'imprimer. J'aimerais que ma
procedure me redefinisse la *bonne* imprimante par defaut (ou meme
temporairement, ce serai bien aussi) pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables

--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
Avatar
JLuc
*Bonjour michdenis*,
Merci pour ta reponse.
Ce qui voudrais dire qu'il faut rajouter le nom du port d'impression en
plus de son nom ?

Bonjour JLuc,

Modifie ceci : HP DeskJet 930C/932C/935C pour le nom
de l'imprimante désiré affiché dans le panneau de configuration.

'----------------------
Application.ActivePrinter = "HP DeskJet 930C/932C/935C sur LPT1:"
Worksheets("Feuil1").PrintOut
'----------------------


Ceci devrait te permettre d'imprimer la "Feuil1" avec l'imprimante
mentionnée.


Salutations!






"JLuc" a écrit dans le message de news:
Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante
redirigee sur un fichier "par defaut" (cette application utilise
l'imprimante windows par defaut). Apres, je lance mon application excel
pour traite le fichier precedent et l'imprimer. J'aimerais que ma
procedure me redefinisse la *bonne* imprimante par defaut (ou meme
temporairement, ce serai bien aussi) pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables



--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS

Avatar
michdenis
Et ne pas oublier le ":" à la fin !

;-)


Salutations!


"JLuc" a écrit dans le message de news:
*Bonjour michdenis*,
Merci pour ta reponse.
Ce qui voudrais dire qu'il faut rajouter le nom du port d'impression en
plus de son nom ?

Bonjour JLuc,

Modifie ceci : HP DeskJet 930C/932C/935C pour le nom
de l'imprimante désiré affiché dans le panneau de configuration.

'----------------------
Application.ActivePrinter = "HP DeskJet 930C/932C/935C sur LPT1:"
Worksheets("Feuil1").PrintOut
'----------------------


Ceci devrait te permettre d'imprimer la "Feuil1" avec l'imprimante
mentionnée.


Salutations!






"JLuc" a écrit dans le message de news:
Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante
redirigee sur un fichier "par defaut" (cette application utilise
l'imprimante windows par defaut). Apres, je lance mon application excel
pour traite le fichier precedent et l'imprimer. J'aimerais que ma
procedure me redefinisse la *bonne* imprimante par defaut (ou meme
temporairement, ce serai bien aussi) pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables



--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS

Avatar
Jacques93
Bonsoir JLuc,

Une solution avec le Scripting, qui évite d'avoir à indiquer le port :

Private Sub SetDefautPrinter(sPrinter As String, _
Optional sMachine As String = "")
Dim oNetwork
Dim str As String

Debug.Print Application.ActivePrinter
If Len(sMachine) > 0 Then
str = "" & sMachine & "" & sPrinter
Else
str = sPrinter
End If
Set oNetwork = CreateObject("WScript.Network")
oNetwork.SetDefaultPrinter str
Debug.Print Application.ActivePrinter
End Sub

Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante redirigee
sur un fichier "par defaut" (cette application utilise l'imprimante
windows par defaut). Apres, je lance mon application excel pour traite
le fichier precedent et l'imprimer. J'aimerais que ma procedure me
redefinisse la *bonne* imprimante par defaut (ou meme temporairement, ce
serai bien aussi) pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables




--
Cordialement,

Jacques.

Avatar
JLuc
*Bonjour michdenis*,
C'est super, tu m'enleve une epine du pied : ca marche. ;-)
J'aurais du le faire plus tot, definir l'imprimante par defaut
normalement, faire ma petite macro test mais stocker l'info dans une
cellule, faire pareil pour l'autre imprimante et lui affecter celle
qu'il me faut !
Merci quand meme, quand on est sur un pb, on a tendance a se butter et
a plus rien voir a cote :')
Et ne pas oublier le ":" à la fin !

;-)


Salutations!


"JLuc" a écrit dans le message de news:
*Bonjour michdenis*,
Merci pour ta reponse.
Ce qui voudrais dire qu'il faut rajouter le nom du port d'impression en
plus de son nom ?

Bonjour JLuc,

Modifie ceci : HP DeskJet 930C/932C/935C pour le nom
de l'imprimante désiré affiché dans le panneau de configuration.

'----------------------
Application.ActivePrinter = "HP DeskJet 930C/932C/935C sur LPT1:"
Worksheets("Feuil1").PrintOut
'----------------------


Ceci devrait te permettre d'imprimer la "Feuil1" avec l'imprimante
mentionnée.


Salutations!






"JLuc" a écrit dans le message de news:
Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante
redirigee sur un fichier "par defaut" (cette application utilise
l'imprimante windows par defaut). Apres, je lance mon application excel
pour traite le fichier precedent et l'imprimer. J'aimerais que ma
procedure me redefinisse la *bonne* imprimante par defaut (ou meme
temporairement, ce serai bien aussi) pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables




--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS


Avatar
JLuc
*Bonjour Jacques93*,
Ton code est super, mais, je pense, difficile a mettre en application
Si tu as lu m'a reponse faite a michdenis, c'etait finalement assez
simple. Par contre, une question...
Bonsoir JLuc,

Une solution avec le Scripting, qui évite d'avoir à indiquer le port :

Private Sub SetDefautPrinter(sPrinter As String, _
Optional sMachine As String = "")
Dim oNetwork
Dim str As String
... str ne serait pas un mot reserve, des fois ?


Debug.Print Application.ActivePrinter
If Len(sMachine) > 0 Then
str = "" & sMachine & "" & sPrinter
... et ca c'est pour le cas d'une imprimante en reseau, c'est ca ?


Else
str = sPrinter
End If
Set oNetwork = CreateObject("WScript.Network")
oNetwork.SetDefaultPrinter str
Debug.Print Application.ActivePrinter
End Sub

Bonjour tout le monde,

Dans une application, je suis oblige de definir une imprimante redirigee
sur un fichier "par defaut" (cette application utilise l'imprimante windows
par defaut). Apres, je lance mon application excel pour traite le fichier
precedent et l'imprimer. J'aimerais que ma procedure me redefinisse la
*bonne* imprimante par defaut (ou meme temporairement, ce serai bien aussi)
pour imprimer reellement
J'ai regarder du cote de Application.ActivePrinter mais je ne peux pas
changer la valeur. Voila le test que j'ai fais :

Sub Macro1()
MsgBox "The name of the active printer is " & Application.ActivePrinter
Application.ActivePrinter = "Generic / Text Only"
MsgBox "The name of the active printer is " & Application.ActivePrinter
End Sub

A la deuxieme ligne, ca plante
Merci aux âmes charitables





--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS


Avatar
Jacques93
Bonsoir JLuc,
*Bonjour Jacques93*,
Ton code est super, mais, je pense, difficile a mettre en application
Si tu as lu m'a reponse faite a michdenis, c'etait finalement assez
simple. Par contre, une question...


J'ai lu, c'était juste une autre voie, indépendante d'Excel.

[...]
Dim oNetwork
Dim str As String


.... str ne serait pas un mot reserve, des fois ?


Exact, c'est une fonction de conversion (s = str(123)), donc à éviter :-(

[...]

Debug.Print Application.ActivePrinter
If Len(sMachine) > 0 Then
str = "" & sMachine & "" & sPrinter


.... et ca c'est pour le cas d'une imprimante en reseau, c'est ca ?


Oui, mais le nom de machine étant optionnel, cela marche aussi en local

[...]

En fait l'utilisation est simple,

Si ton imprimante est en local :

SetDefautPrinter "Generic / Text Only"

Si elle est sur une machine réseau :

SetDefautPrinter "Generic / Text Only", "NomDeMachine"

--
Cordialement,

Jacques.


Avatar
JLuc
*Bonjour Jacques93*,
Ok, je comprends mieux. Merci pour tous ces precieux renseignement.
Je vais me garder ca dans un coin. :-Z
Bonsoir JLuc,
*Bonjour Jacques93*,
Ton code est super, mais, je pense, difficile a mettre en application
Si tu as lu m'a reponse faite a michdenis, c'etait finalement assez simple.
Par contre, une question...


J'ai lu, c'était juste une autre voie, indépendante d'Excel.

[...]
Dim oNetwork
Dim str As String


.... str ne serait pas un mot reserve, des fois ?


Exact, c'est une fonction de conversion (s = str(123)), donc à éviter :-(

[...]

Debug.Print Application.ActivePrinter
If Len(sMachine) > 0 Then
str = "" & sMachine & "" & sPrinter


.... et ca c'est pour le cas d'une imprimante en reseau, c'est ca ?


Oui, mais le nom de machine étant optionnel, cela marche aussi en local

[...]

En fait l'utilisation est simple,

Si ton imprimante est en local :

SetDefautPrinter "Generic / Text Only"

Si elle est sur une machine réseau :

SetDefautPrinter "Generic / Text Only", "NomDeMachine"



--
JLuc

Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS