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 :

Passer un argument par .OnAction [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut Passer un argument par .OnAction
    Bonjour,

    Je me trouve confronté à un problème que je ne sais pas résoudre.

    Dans une macro, je crée une série de bouton par la méthode Add et j'affecte le nom de chaque bouton par une variable appelée message de type string.

    Par OnAction, je souhaite lancer une procédure en faisant passer en argument le nom de ce bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With feuille.Buttons.Add(rngPos.Left, rngPos.Top, rngPos.Resize(, 1).Width, rngPos.Height)
        .Caption = "v"
        .Name = message
        .OnAction = "Coche"
    End With
    Dans l'exemple ci-dessus la procédure coche n'a pas d'argument, mais lorsque j'essaie d'en faire passer un, La macro me renvoie un message d'erreur.

    exemple de ce que j'ai essayé (Ne rigolez pas trop, je débute)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .OnAction = "Coche(Me)"
    .OnAction = "Coche('&message&')"
    .OnAction = "Coche(.Name)"
    .OnAction....
    .

    Merci à vous tous si vous pouvez m'éclairer sur le sujet.

    A bientôt

    Jha

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Essaie quelque chose dans ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "'Coche " & chr(34) & .Name & chr(34) & "'"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut
    Je viens d'essayer, ça marche.

    Merci beaucoup

    Citation Envoyé par Minick Voir le message
    Salut,

    Essaie quelque chose dans ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "'Coche " & chr(34) & .Name & chr(34) & "'"
    Merci aussi à Tototiti2008 et à Philippe pour s'être pencher sur la question. Je vais d'ailleurs aller voir le lien de Philippe pour plus d'info

  4. #4
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 174
    Billets dans le blog
    2
    Par défaut
    Bonjour Minick, Bonjour Philippe,
    Re,

    Eh bien comme ça je me coucherais moins bête

  5. #5
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 174
    Billets dans le blog
    2
    Par défaut
    Bonjour ericjha,

    à ma connaissance, on ne peut pas passer d'argument sur un OnAction, de même que l'on ne peut pas associer une macro à un bouton si celle-ci a des arguments en entrée

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je n'ai pas testé sous Excel, mais sous Access (qui utilise la même bibliothèque) c'est possible : http://starec.developpez.com/tuto/barrecommande/#LVI-A

    philippe

  7. #7
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Re,

    De rien, si tu veux passer plusieurs arguments, il suffit de les separer par des virgules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .OnAction = "'Coche " & chr(34) & .Name & chr(34) & "," & chr(34) & .Name & chr(34) & "'"

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

Discussions similaires

  1. [template] passer un argument par valeur ou en const &
    Par méphistopheles dans le forum C++
    Réponses: 33
    Dernier message: 04/07/2010, 19h46
  2. Passer des arguments par les signaux des event-box
    Par black is beautiful dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 30/10/2008, 08h43
  3. Réponses: 4
    Dernier message: 04/01/2008, 21h19
  4. Réponses: 4
    Dernier message: 07/06/2007, 11h40
  5. Réponses: 8
    Dernier message: 30/05/2005, 13h55

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