none
VBA Excel et WMI RRS feed

  • Question

  • Bonjour,

    Je recherche en vain le moyen de modifier la configuration d'une imprimante dans une application VBA sous Excel 2013.

    J'ai trouvé sur de nombreux forums le code permettant d'afficher la configuration complète des imprimantes déclarées sur mon poste, mais je ne parviens pas à modifier quelque paramètre que ce soit.

    En l'occurrence, je cherche le moyen de forcer l'impression en couleur sur une imprimante dont la configuration par défaut est Noir et Blanc.

    Le code suivant me confirme que l'imprimante est configurée en N&B.

    Sub verifier_parametre_Couleur_NB_Imprimante_V02() ' en VBA
    Dim objWMIService As Object, colItems As Object
    Dim objItem As Object
    Dim strComputer As String 
    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.execQuery("Select * from Win32_printerConfiguration", , 48) 
    For Each objItem In colItems    
    Select Case objItem.Color    
    Case 1: MsgBox objItem.Name & " : 'noir et blanc'"    
    Case 2: MsgBox objItem.Name & " : 'couleur'"    
    End Select
    Next
    End Sub

    Comment, à partir de là, puis-je la forcer en couleur  ?

    J'ai essayé ça :

    For Each objItem In colItems    
    if objitem.name = <nom de l'imprimante> then
     objitem.color = 2 
    end if
    next
    
    A l'exécution, il passe bien sur l'instruction objitem.color = 2 pour l'imprimante recherchée, mais l'impression sort toujours en N&B

    Pourriez-vous m'aider ?

    Merci d'avance.

    mercredi 21 octobre 2015 08:56

Toutes les réponses

  • Bonjour,

    Personnellement, j'ai défini deux imprimantes, une pour le recto et l'autre pour le recto verso. Ca fonctionne bien.

    Pour choisir l'imprimante :

    Application.Dialogs(xlDialogPrinterSetup).Show
    

    Cordialement.

    Daniel

    mercredi 21 octobre 2015 10:46
  • bonjour et merci pour votre réponse.
    J'ai bien pensé à ce contournement mais il n'est pas satisfaisant.
    En effet, cette application sera utilisée sur plusieurs postes et le but n'est pas de multiplier les imprimantes installées de façon à en avoir une pour chaque utilisation :
           - 1 en recto noir et blanc
           - 1 en recto couleur
           - 1 en recto-verso noir et blanc
           - 1 en recto-verso couleur
           ...
    d'autant que ces duplications seraient à faire sur chacun des postes qui utiliseraient cette macro.

    La seule solution satisfaisante me semble donc être la modification de la configuration par le code VBA.

    mercredi 21 octobre 2015 12:14
  • Bonjour à tous,

    Je suis étonné que sur un forum de développeurs sur technologies Microsoft avec autant d'intervenants de qualité, il n'y ai pas la moindre personne qui soit capable de me fournir la solution à mon problème.

    Le but n'est pas de contourner le problème en faisant des duplications sur N postes de N imprimantes pour pouvoir avoir les fonctionnalités souhaitées mais que le code de la macro permette à toutes les personnes qui auront besoin d'accéder à cette macro de pouvoir le faire sans avoir à modifier la config de leur poste.

    Je suis assez novice en développement, mais je pense qu'il ne doit pas être extraordinairement compliqué, pour nombre d'experts qui fréquentent ce forum de configurer, par le code, une imprimante (configurée en N&B par défaut pour raison évidente de coûts) en couleur.

    Merci à tous par avance de l'aide que vous voudrez bien m'apporter.

    Cordialement

    Jean-Luc

    mercredi 28 octobre 2015 08:16