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 :

OnAction avec un argument (syntaxe ?)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Par défaut OnAction avec un argument (syntaxe ?)
    Bonjour,

    Situation :
    J'ai créer une barre d'outil destinée à ouvrir des fichiers contenu dans un répertoire.
    Je scann donc le répertoire à la recherche des fichiers et je crée un menu dynamiquement.
    Le menu se présente sous forme de pop-up (listant les fichiers trouvés) dont chaque sous-menu porte le nom du fichier.

    Le but étant que lorsqu'on clique sur le nom du fichier, Excel ouvre ce fichier.

    J'arrive à créer mon menu mais je ne sais pas comment associer une action diférente lors de la création dynamique du menu.
    En fait, il suffirait que je puisse éxécuter ma macro avec un argument
    mais je ne sais pas comment associer un argument avec la méthode OnAction.

    illustration du problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    'ma macro avec un argument
    Sub Macro1(argument)
    MsgBox "Message : " & argument
    End Sub
    _______________________________________________________
     
    Sub MorceauDeCode()
    '...'
    ' je passe les détails pour se concentrer sur ce qui ne marche pas ...
    .OnAction = "Macro1"
    '...
    End Sub
    Si la macro s'exécute, un message d'erreur me mettra "argument non-facultatif

    Quelle syntaxe utilisé pour faire passer un argument ?

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    voici un exemple comment je lance une macro avec parametres

    ce bout de code provient d'un de mes programmes de génération de menu popup

    Il defini le OnAction avec passage de parametres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
               With sm(i, j)
                    .Caption = Sheets("Menu").Cells(i, j + 2).Value
                    .OnAction = "gw_lance(" & CStr(Sheets("Menu").Cells(i, nbc_menu + 4)) & ")"
               End With
    cordialement

  3. #3
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Par défaut
    Cette méthode ne fonctionne pas avec moi.

    Je n'ai plus le message d'erreur "argument facultatif" mais Excel ne trouve pas la macro !

    Si j'écris ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "Macro1(" & CStr(argument) & ")"
    j'aurai comme message d'erreur :
    impossible de trouver la macro 'Macro1(argument)'

  4. #4
    Membre régulier
    Inscrit en
    Mai 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 9
    Par défaut
    A force de persévérance, j'ai trouvé ma réponse ici : http://www.mrexcel.com/archive/VBA/7264.html (un message qui date de 7 ans !!)

    .OnAction = "'Macro1 " & Chr(34) & argument & Chr(34) & "'"


    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
     
    Sub ExtraitExemple()
    '[...]
     
                    With Option
                        .Caption = NomFichier
                        .FaceId = 156
                        .OnAction = "'OuvrirFichier " & Chr(34) & NomFichier & Chr(34) & "'"
                    End With
    '[...]
    End Sub
    ________________________________________________
    Sub OuvrirFichier(NomFichier)
    Application.Workbooks.Open (CheminParDefaut & NomFichier & ".xls")
    End Sub
    Maintenant mon menu dynamique fonctionne bien

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

Discussions similaires

  1. Lancer un programme avec des arguments via IE...
    Par petozak dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 24/03/2006, 11h51
  2. [débutant] problème avec les arguments de fopen
    Par Anouschka dans le forum C++
    Réponses: 13
    Dernier message: 23/02/2006, 14h56
  3. Réponses: 4
    Dernier message: 20/11/2005, 05h48
  4. [AS2] Pb avec variables dans syntaxe
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 05/07/2005, 11h28
  5. Lister les process avec leurs arguments
    Par jamfr73 dans le forum MFC
    Réponses: 5
    Dernier message: 23/12/2004, 10h54

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