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 :

simplifier un code


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut simplifier un code
    Bonjour a tous
    je me demande si il n'y a pas un moyen de simplifier ce code
    j'entends par la supprimer le besoins des 2 boucles imbriquées

    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
    Sub WMI()
        Dim oWMISrvEx As Object    'SWbemServicesEx
        Dim oWMIObjSet As Object    'SWbemServicesObjectSet
        Dim oWMIObjEx As Object    'SWbemObjectEx
        Dim oWMIProp As Object    'SWbemProperty
        Dim sWQL As String    'WQL Statement
        Dim n As Long             'Generic Counter
        sWQL = "Select * From Win32_VideoController" ' classe utilisée
        Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
        Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
        For Each oWMIObjEx In oWMIObjSet
            For Each oWMIProp In oWMIObjEx.Properties_
                If oWMIProp.Name = "CurrentHorizontalResolution" Then Debug.Print "resolution horizontale " & oWMIProp.Value
                If oWMIProp.Name = "CurrentVerticalResolution" Then Debug.Print "resolution vertcale " & oWMIProp.Value
            Next
        Next
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    Nom : Capture.PNG
Affichages : 313
Taille : 126,4 Ko

    je te propose cette modif qui liste toutes les properties
    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
     
    Sub v2WMI()
        Dim oWMISrvEx As Object    'SWbemServicesEx
        Dim oWMIObjSet As Object    'SWbemServicesObjectSet
        Dim oWMIObjEx As Object    'SWbemObjectEx
        Dim oWMIProp As Object    'SWbemProperty
        Dim sWQL As String    'WQL Statement
        Dim n As Long             'Generic Counter
        sWQL = "Select * From Win32_VideoController" ' classe utilisée
        Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
        Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
        For Each oWMIObjEx In oWMIObjSet
            For Each oWMIProp In oWMIObjEx.Properties_
                'Debug.Print oWMIProp.Name & " " & oWMIProp.Value
                msg = msg & oWMIProp.Name & " " & oWMIProp.Value & vbCrLf
            Next
        Next
        MsgBox msg
    End Sub
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour et merci pour le retour

    en fait je la connais cette macro mais je m'intéresse a faire sauter les boucles qui me sont inutile car le connais déjà les deux propriétés
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonour à tous
    Le VRAI problème est que WMI n'est pas FORCEMENT disponible sur toutes les machines et/ou OS.
    Etre dépendant de sa disponibilité, n'est alors pas mieux que de l'être de l'utilisation de fonctions de l'Api de Windows.
    Et c'est donc kif-kif !
    Ta demande ne précise pas en quelles unités tu veux que soit exprimées ces dimensions. Si cela importe peu -->> pas de problème --->> facile de les avoir en points.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,


    cette modif affiche : 3840

    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
     
    Sub v3WMI()
        Dim oWMISrvEx As Object    'SWbemServicesEx
        Dim oWMIObjSet As Object    'SWbemServicesObjectSet
        Dim oWMIObjEx As Object    'SWbemObjectEx
        Dim oWMIProp As Object    'SWbemProperty
        Dim sWQL As String    'WQL Statement
        Dim n As Long             'Generic Counter
        sWQL = "Select * From Win32_VideoController" ' classe utilisée
        Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
        Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
        For Each oWMIObjEx In oWMIObjSet
        msg = oWMIObjEx.CurrentHorizontalResolution
        Next
        MsgBox msg
    End Sub
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bon ben c'est déjà bien une boucle en moins
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    tu peux énumérer dans un tableau...
    Tab(1)=oWMIObjEx.CurrentHorizontalResolution
    Tab(2)=oWMIObjEx.CurrentVerticalResolution

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    @unparia
    oui je sais j'explore toutes les possibilités

    @mjpmjp
    oui mais comme apres test il y a qu'un seul oWMIObjEx dans oWMIObjSet

    j'aurais voulu remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each oWMIObjEx In oWMIObjSet
        msg = oWMIObjEx.CurrentHorizontalResolution
        Next
    par un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WMIObjSet.item(1).CurrentHorizontalResolution
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Je sais/devine ce que cache en réalité ta démarche -->>
    Tu cherches à faire en VBA/Excel ce que VBA/Word fait assez parfaitement avec sa méthode Global.PointsToPixels, méthode
    Histoire de déterminer la conversion de points en pixels, n'est-ce pas ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  10. #10
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour !

    Citation Envoyé par unparia Voir le message
    Histoire de déterminer la conversion de points en pixels, n'est-ce pas ?
    Même en VBA Excel ce n'est pas compliqué une fois la définition d'un point bien comprise,
    s'agissant toujours de relativiser avec le dpi de la résolution (nombre de pixels par pouce) …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  11. #11
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    Nom : Capture.PNG
Affichages : 306
Taille : 84,1 Ko

    pourquoi erreur ?
    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
     
    Sub v4WMI()
        Dim oWMISrvEx As Object    'SWbemServicesEx
        Dim oWMIObjSet As Object    'SWbemServicesObjectSet
        Dim oWMIObjEx As Object    'SWbemObjectEx
        Dim oWMIProp As Object    'SWbemProperty
        Dim sWQL As String    'WQL Statement
        Dim n As Long             'Generic Counter
     
     
        sWQL = "Select * From Win32_VideoController" ' classe utilisée
        Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
        Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
     
        MsgBox oWMIObjSet.Item(1).Properties_.Item(1).Name
    End Sub
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par unparia Voir le message
    Je sais/devine ce que cache en réalité ta démarche -->>
    Tu cherches à faire en VBA/Excel ce que VBA/Word fait assez parfaitement avec sa méthode Global.PointsToPixels, méthode
    Histoire de déterminer la conversion de points en pixels, n'est-ce pas ?
    oui le but de la prolongation de l'autre discution c'est exactement ca
    arriver a faire sans les api

    tu viens de donner une piste
    et si je créais un doc word juste pour ca

    @mjpmjp
    et oui!!!!!! c'est ca le soucis que je pige pas
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    j'ai vu ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function myCollection() As Object
         Set myCollection = New Collection
         myCollection.Add Item:=Range("A1").Cells, key:="a"
         myCollection.Add Item:=Range("B1").Cells, key:="b"
     End Function
     
     Sub foo()
         Dim xVal As Collection
         Set xVal = myCollection()
         MsgBox xVal("a").Address
     End Sub
    pour Collection... j'arrive à rien

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Bonjour !
    Même en VBA Excel ce n'est pas compliqué une fois la définition d'un point bien comprise,
    s'agissant toujours de relativiser avec le dpi de la résolution (nombre de pixels par pouce) …
    marc oui mais le but étant de trouver le dpi sans api ou l'operande obtenu par le calcul avec les api

    @mjpmjp une revision sur la portée des variables et la transmision de variable et les fonctions qui deviennent variables et l'object collection s'impose
    déjà on a un soucis ici
    tu ne peut pas dimer une variable en tant que collection et dire ensuite que cette variable est unefonction instanciée en tant qu'Object devenant une collection
    mais ca n'a aucun intérêt dans cet exercice
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour patricktoulon,

    seul Item... ne fonctionne pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        MsgBox oWMIObjSet.Count
     
        MsgBox oWMIObjSet.Security_.AuthenticationLevel
     
        MsgBox oWMIObjSet.Security_.Privileges.Count
     
        'erreur....Item...
        MsgBox oWMIObjSet.Item(1).Properties_.Item(1).Count
    le code "collection" n'est pas de moi...
    l'idée était que on travaille sur des collections ...enfin je crois (disait la grenouille )

    j'ai essayé item1, item alt255 1,...
    pas possible de passer

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour mjpmjp
    oui moi aussi j'avais essaiyé et rien quedal walou walou
    ca n'est peut être pas possible sur cet object
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    @Patrick
    Pour supprimer la seconde boucle il suffit de s'adresser directement à la propriété voulue (et par son nom)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    '....
    For Each oWMIObjEx In oWMIObjSet
        MsgBox oWMIObjEx.Properties_("CurrentHorizontalResolution").Value
    Next
    @Patrick, bis

    Tu peux même économiser ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sWQL = "SELECT CurrentHorizontalResolution,CurrentVerticalResolution FROM Win32_VideoController"
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  18. #18
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Points : 1 441
    Points
    1 441
    Par défaut
    bonjour,

    je reviens à la charge,

    avec ce code je ne passe pas la "barrière" de "Item 1"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub v7WMI()
        sWQL = "Select * From Win32_VideoController" ' classe utilisée
        Set oWMISrvEx = GetObject("winmgmts:root/CIMV2")
        'Set oWMIObjGet = oWMISrvEx.get()
        Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL)
     
        'affiche 0
        Debug.Print oWMIObjSet.Security_.Privileges.Count    
    End Sub
    MAIS avec ce code OUI, MAIS...
    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
    20
    21
     
    Sub v8WMI()
        strComputer = "."
        strNameSpace = "root\CIMV2"
        strClass = "Win32_VideoController"
        strDisplayName = "WINMGMTS:{authenticationLevel=pktPrivacy,impersonationLevel=impersonate}"
     
        'Set objClass = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\" & strNameSpace & ":" & strClass)
        'Set objClass = GetObject(strDisplayName & "!\\" & strComputer & "\" & strNameSpace & ":" & strClass)
        Set objClass = GetObject("winmgmts:" & strNameSpace & ":" & strClass)
     
        'affiche la liste mais pas les valeurs (= Null)
        'For Each objClassProperty In objClass.Properties_
        '    Debug.Print objClassProperty.Name & " = " & objClassProperty.Value
        'Next
     
        'affiche 59
        Debug.Print objClass.Properties_.Count
        'affiche Null
        Debug.Print objClass.Properties_("Caption").Value 'item7
    End Sub
    MAIS la "Value" est Null (pour tous !!)
    Nom : Capture.PNG
Affichages : 251
Taille : 7,3 Ko
    alors que avec le premier code
    Nom : Capture2.PNG
Affichages : 247
Taille : 8,2 Ko

    je viens de voir que "Local" est False ...
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour mjpmjp
    oui j'avais déjà testé

    je crois qu'il n'est pas possible sans énumération par itération dans une boucle
    j'apprécie le travail de recherche que tu fait
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [E-00] Utilisation d'un auxilliaire pour simplifier le code
    Par anyah dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 21/11/2008, 17h31
  2. Simplifier le code
    Par Msieurduss dans le forum Langage
    Réponses: 8
    Dernier message: 18/06/2008, 10h07
  3. Réponses: 4
    Dernier message: 10/05/2008, 12h31
  4. Simplifier mon code "Majuscule/Minuscule"
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2008, 17h05
  5. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15

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