modifier l,imprimante par défaut du panneau de configuration

Bonjour,

 

J'ai cherché et cherché sans succès.

 

J'aurais besoin de modifier modifier l,imprimante par défaut du panneau de configuration.

 

Quel serait le bon code?

 

Merci à l'avance.

Bonjour,

Un exemple :

'-----------------------------------------
Sub test()
'Nom de l'imprimante tel qu'écrit dans le panneau
'de configuration de Windows
Call Imprimante_Par_Défaut("HP Deskjet 930c/932c/935c")
End Sub

'-----------------------------------------
Sub Imprimante_Par_Défaut(Nom_Imprimante As String)
Dim strComputer As String, objWMIService As Object
Dim colInstalledPrinters As Object, objPrinter As Object

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
   ("Select * from Win32_Printer Where Name = '" & Nom_Imprimante & "'")
For Each objPrinter In colInstalledPrinters
   objPrinter.SetDefaultPrinter
Next
End Sub
'-----------------------------------------

MichD
---------------------------------------------------------------

MichD
----------------------------------------

Cette réponse vous a-t-elle été utile ?

Nous sommes désolés de ne pas pouvoir vous aider.

Super ! Merci de vos commentaires.

Êtes-vous satisfait de cette réponse ?

Nous vous remercions de vos commentaires, qui nous aideront à améliorer le site.

Êtes-vous satisfait de cette réponse ?

Merci de vos commentaires

Bonjour,

Une autre solution :

Application.Dialogs(xlDialogPrinterSetup).Show

Cordialement.
Daniel
________________________
La plus perdue de toutes les journées est celle où l'on n'a pas ri. Chamfort

Cette réponse vous a-t-elle été utile ?

Nous sommes désolés de ne pas pouvoir vous aider.

Super ! Merci de vos commentaires.

Êtes-vous satisfait de cette réponse ?

Nous vous remercions de vos commentaires, qui nous aideront à améliorer le site.

Êtes-vous satisfait de cette réponse ?

Merci de vos commentaires

Bonjour,

 

Merci...c'est ce que je recherche à faire mais...il y a probablement un point qui m'échappe.

 

Dans...Call Imprimante_Par_Défaut("HP Deskjet 930c/932c/935c")...je ne connais pas le nom de l'imprimante. J'ai essayé de la définir par une variable ex.: Var_Defaultprint et j'ai alors inscrit Call Imprimante_Par_Défaut(Var_Defaultprint)...mais ça ne fonctionne pas.

 

Y a-t'il alors un ajustement à effectuer ou comment y arriver?

 

Merci à l'avance.

Cette réponse vous a-t-elle été utile ?

Nous sommes désolés de ne pas pouvoir vous aider.

Super ! Merci de vos commentaires.

Êtes-vous satisfait de cette réponse ?

Nous vous remercions de vos commentaires, qui nous aideront à améliorer le site.

Êtes-vous satisfait de cette réponse ?

Merci de vos commentaires

Tu veux dire que tu définir une imprimante par défaut,
mais tu ne connais pas les imprimantes disponibles?

Essaie ceci :
 '-----------------------------------------
Sub test()
'Nom de l'imprimante tel qu'écrit dans le panneau
'de configuration de Windows
Dim strComputer As String, objWMIService As Object
Dim colInstalledPrinters As Object, objPrinter As Object
Dim X As Variant, Arr()

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
   & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
   ("Select * from Win32_Printer")
For Each objPrinter In colInstalledPrinters
   a = a + 1
   Message = Message & a & " - Nom: " & objPrinter.Name & vbCrLf
   ReDim Preserve Arr(1 To a)
   Arr(a) = objPrinter.Name
Next
X = Application.InputBox(Prompt:= _
   "Insérer le chiffre correspondant à l'imprimante désirée." & _
   vbCrLf & Message, Title:="Choisissez une imprimante", Type:=1)
If X = False Then Exit Sub

Call Imprimante_Par_Défaut(Arr(X))
End Sub

'-----------------------------------------
Sub Imprimante_Par_Défaut(Nom_Imprimante As Variant)
Dim strComputer As String, objWMIService As Object
Dim colInstalledPrinters As Object, objPrinter As Object

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
  ("Select * from Win32_Printer Where Name = '" & Nom_Imprimante & "'")
For Each objPrinter In colInstalledPrinters
  objPrinter.SetDefaultPrinter
Next
End Sub
'-----------------------------------------
 MichD
---------------------------------------------------------------

MichD
----------------------------------------

Cette réponse vous a-t-elle été utile ?

Nous sommes désolés de ne pas pouvoir vous aider.

Super ! Merci de vos commentaires.

Êtes-vous satisfait de cette réponse ?

Nous vous remercions de vos commentaires, qui nous aideront à améliorer le site.

Êtes-vous satisfait de cette réponse ?

Merci de vos commentaires

à la suite de cette ligne de code dans la procédure "Test()"
If X = False Then Exit Sub

Tu devrais ajouter ceci afin d'éviter ceux qui choisisse un
numéro d'imprimante inexistant.

If X < 1 Or X > UBound(Arr) Then
   MsgBox "Votre numéro du choix de l'imprimante est " & _
   "inexistant.", vbCritical + vbOKOnly, "Procédure avortée"
   Exit Sub
End If

MichD
---------------------------------------------------------------

MichD
----------------------------------------

Cette réponse vous a-t-elle été utile ?

Nous sommes désolés de ne pas pouvoir vous aider.

Super ! Merci de vos commentaires.

Êtes-vous satisfait de cette réponse ?

Nous vous remercions de vos commentaires, qui nous aideront à améliorer le site.

Êtes-vous satisfait de cette réponse ?

Merci de vos commentaires

 
 

Informations sur la question


Dernière mise à jour 28 janvier 2021 Consultations 319 Produit(s) concerné(s) :