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 :

Convertir les noms de constantes Excel en valeurs numériques


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 59
    Points : 47
    Points
    47
    Par défaut Convertir les noms de constantes Excel en valeurs numériques
    Bonjour,

    J’ai un tableau Excel avec les 258 constantes des boites de dialogue standard Excel.
    Ces constantes servent à afficher les boîtes de dialogue standard à partir du VBA grâce à l’ instruction Application.Dialogs(Nom de la constante).Show.

    Pour connaître manuellement la valeur numérique de la constante, il suffit de taper ? nom de la constante dans la fenêtre d’exécution.
    Par exemple : ? xlDialogActivate retourne 103

    Existe-t-il la possibilité de convertir automatiquement les noms de constantes en valeur numérique.
    Si j’ai xlDialogActivate dans la cellule A1, je souhaite que la macro retourne 103 dans la cellule B1 et ainsi de suite pour les 258 constantes.

    Merci d’avance pour votre aide !

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2007
    Messages : 514
    Points : 820
    Points
    820
    Par défaut
    Bonjour,

    - Nécessite d'activer la référence Microsoft Visual Basic for Applications Extensibility 5.3.

    - Necessite d'autoriser la manipulation du projet dans Outils>Macros>Securite>Editeurs approuvés>Faire confiance au projet Visual Basic

    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
    22
    Sub GetConstantsValue()
        Dim Plage As Range, Cell As Range
        Dim M As VBComponent, K As String
     
        Set Plage = Range("A1:A258")                    'A adapter
     
        With ThisWorkbook.VBProject.VBComponents
            Set M = .Add(vbext_ct_StdModule)            'Ajoute un module
            With M.CodeModule
                .AddFromString "Sub PrintConstValues"   'Ecrit une procedure
                For Each Cell In Plage
                    K = Cell.Value
                   .InsertLines .CountOfLines + 1, _
                        "Cells(" & Cell.Row & ", " & Cell.Column + 1 & ").Value = " & K
                Next
               .InsertLines .CountOfLines + 1, "End Sub"
            End With
            Application.Run "PrintConstValues"          'Lance la procedure
            .Remove M                                   'Supprime le module
        End With
     
    End Sub
    Les valeurs des constantes sont inscrites en colonne B. Par curiosité, que veux tu faire avec ca?

    Cordialement,

    Tirex28/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Bonjour Tirex28,

    Je satisfais d’abord ta curiosité : je souhaite visualiser successivement et rapidement l’ensemble des boites de dialogue standard Microsoft afin de voir celles qui me seront utiles pour mes applications. Je peux le faire manuellement mais c’est par curiosité d’esprit que je cherche une solution pour convertir le nom des constantes en valeur numérique.

    • J’ai coché la référence Microsoft Visual Basic for Applications Extensibility 5.3.
    • J’ai tenté d'autoriser la manipulation du projet. Sous Excel 2007 : OptionsExcel/Centre de gestion de la confidentialité/Paramètres du centre de gestion de la confidentialité/Éditeurs approuvés. La liste est vide et ne peux donc cocher Faire confiance au projet Visual Basic.
    • Lors de la compilation, j’ai donc l’erreur d’exécution 1004 : La méthode Project de l’objet Workbook a échoué.
    • Je vais essayer dans la matinée sous Excel 2003.

    Même si cela ne fonctionne pas encore (pour l’instant), je te remercie de ton aide. Je n’aurais jamais trouvé seul. De plus, j’ai déjà eu cette erreur d’exécution (1004 : La méthode Project de l’objet Workbook a échoué) dans une autre application et j’ai à ce moment là renoncé.

    Cordialement,

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Re-Bonjour Tirex28,

    Je viens d’essayer sous Excel 2003 et cela fonctionne parfaitement. Un grand merci pour ton aide.

    Ile me reste donc à résoudre le problème de faire confiance au Projet Visual Basic sous Excel 2007, ce qui me sera utile aussi pour une autre application. Sous Excel 2007, je n’arrive pas à afficher la boite de dialogue Sécurité comme dans Excel 2003.

    Cordialement,

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    février 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 59
    Points : 47
    Points
    47
    Par défaut
    Re-Bonjour Tirex28,

    J’ai trouvé :
    • Onglet Développeur
    • Groupe Code
    • Sécurité des macros
    • Paramètres des macros
    • Paramètres des macros pour développeurs
    • Cocher : Accès approuvé au modèle d’objet du projet VBA

    Le problème est donc complètement résolu. Merci pour tes bons tuyaux !

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

Discussions similaires

  1. [Toutes versions] Renommer automatiquement les noms des feuilles excel
    Par anneso9 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/06/2011, 09h56
  2. Réponses: 2
    Dernier message: 08/10/2010, 12h15
  3. Copier les nom des plages EXCEL et JXL
    Par krikri150489 dans le forum Langage
    Réponses: 0
    Dernier message: 29/03/2010, 22h39
  4. [VBA EXCEL] comment effacer les noms des querytables
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/10/2006, 18h06
  5. [XSLT] Convertir toutes les noms de balise en minuscule ?
    Par ghohm dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/07/2006, 13h49

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