IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment vérifier si une imprimante est installée.


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut Comment vérifier si une imprimante est installée.
    Bonjour,

    je souhaite vérifier si un imprimante a bien été installée.
    Je suppose que le nom est le nom standard, à savoir "CutePDF Writer"

    Je ne sais pas s'il faut ou pas utiliser la registry.

    Voici ce que je trouve dans le registry pour cette imprimante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [HKEY_CURRENT_USER\Printers\Settings]
    "CutePDF Writer"=hex:07,00,00,00,0d,00,0b,00,03,00,14,00,16,00,10,00,02,00,00,\
      00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
      etc. etc. etc.
    et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [HKEY_CURRENT_USER\Printers\DevModes2]
    "CutePDF Writer"=hex:43,00,75,00,74,00,65,00,50,00,44,00,46,00,20,00,57,00,72,\
      00,69,00,74,00,65,00,72,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
    etc.etc.etc.
    Merci pour votre aide.

  2. #2
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function PrintersCount() As Integer
        PrintersCount = Printers.Count
    End Function
    Ne suffit-t'il pas?


    Tu peux lister les imprimantes avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function PrintersList() As String
        Dim lp As Printer
        For Each lp In Printers
            PrintersList = PrintersList & lp.DeviceName & ";"
        Next
    End Function

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut gwinyam,

    merci pour ta réponse.

    j'ai essayé ton code mais la compilation calle sur l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Public Function PrintersList() As String
        Dim lp As Printer
        For Each lp In Printers
            PrintersList = PrintersList & lp.DeviceName & ";"
        Next
    End Function
    avec l'erreur "user-defined type not defined."

  4. #4
    Membre chevronné
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Points : 2 015
    Points
    2 015
    Par défaut
    Ah c'est embêtant... j'ai du zapper un truc... A moins que ça ne fonctionne que sous Access

    Je te redis ça

  5. #5
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    C'est résolu.

    j'ai trouvé une solution dans la faq (Imprimante ?) que j'ai adapté.

    Voici le code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Function Check_CutePdf_Writer() As Boolean
    Dim objWMIService As Object, colInstalledPrinters As Object, objPrinter As Object
    Dim nomPC As String, Resultat As String
    nomPC = "."
     
    Set objWMIService = GetObject("winmgmts:" & _
        "{impersonationLevel=impersonate}!\\" & nomPC & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.execQuery("Select * from Win32_Printer")
     
    For Each objPrinter In colInstalledPrinters
       If Trim(objPrinter.Name = "CutePDF Writer") Then
          Check_CutePdf_Writer = True
          Exit Function
       End If
    Next
    Check_CutePdf_Writer = False
     
    End Function
    Merci pour ton aide gwinyam


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/12/2007, 16h33
  2. Comment vérifier qu'une valeur est NULL ?
    Par innova dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/11/2006, 14h53
  3. Comment vérifier qu'une date est nulle
    Par stressy dans le forum Access
    Réponses: 7
    Dernier message: 09/12/2005, 15h41
  4. Réponses: 15
    Dernier message: 27/04/2005, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo