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 :

lancer une macro en construisant son nom


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de e040098k
    Inscrit en
    Avril 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 197
    Par défaut lancer une macro en construisant son nom
    Bonjour,

    Je développe une interface de menu pour une petite appli excel. Je vous souhaite que celle-ci puisse s'utiliser aussi bien au clavier qu'à la souris. Ainsi par exemple atteindre une feuille des deux manières différentes

    J'ai fait ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub opt1_Click()
        Sheets("Reguls_de_stock").Select
        Me.Hide
    End Sub
     
    Private Sub TB_ChoixOption_KeyPress(KeyAscii As Integer)
        If KeyAscii = vbKeyReturn Then
     
        opt & TB_ChoixOption.Value & _Click 'Ici je veux qu'il lance l'évenement "opt1_Click" 
     
        End If
    End Sub
    Comment puis-je dans la 2ème macro lancer la première en utilisant la valeur de TB_ChoixOption ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si les 2 macro sont dans le même module il devrait suffire d'ajouter Run :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Run opt & TB_ChoixOption.Value & _Click

  3. #3
    Membre confirmé Avatar de e040098k
    Inscrit en
    Avril 2007
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 197
    Par défaut
    Bonjour,

    Non cela ne fonctionne pas la ligne reste en rouge!

    De plus je n'avais pas tester le code mais cle me donne l'erreur suivante au lancement :

    "La déclaration de la procédure ne correspond pas à l'évenement ou à la procédure de même nom!"


    !!!!

  4. #4
    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
    Bonjour à tous

    j'ai deja cherché, mais je n'ai pas trouvé le moyen de lancer un macro à partir d'un variable

    alors j'ai triché, j'ai créé le call et je l'ai inserré dans le code

    tu crees un module que tu nommes Lance_Opt par exemple
    dedans tu mets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Go_Opt()
     
    end sub
    maintenant la macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub TB_ChoixOption_KeyPress(KeyAscii As Integer)
        dim ordre as string
        If KeyAscii = vbKeyReturn Then
              ordre =  "Call Opt" & TB_ChoixOption.Value
              With ThisWorkbook.VBProject.VBComponents("Lance_Opt").CodeModule
                      For ligne = 1 To .CountOfLines
                           If .Lines(ligne, 1) = "Go_Opt()" Then .InsertLines ligne + 1, ordre: Exit For
                      Next ligne
                      Call Go_Opt
                      .DeleteLines ligne + 1, 1
               End With
     
        End If
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjours,

    On est toujours surpris quand cela fonctionne chez l'un et pas chez l'autre.
    Je n'ai aucun problème pour lancer la macro de ce type.

    Avez-vous vérifié en mode débogage le contenu des variables ?

    Que contient la variable "opt" ?

  6. #6
    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:

    c'est peut etre la le probleme jacques_jean

    opt n'est pas à mon avis une variable et doit etre traité avec "opt"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour Wilfried42,

    En effet c'est déjà une possibilité mais je viens seulement de voir que le code contient une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub TB_ChoixOption_KeyPress(KeyAscii As Integer)
        If KeyAscii = vbKeyReturn Then
     
        opt & TB_ChoixOption.Value & _Click 'Ici je veux qu'il lance l'évenement "opt1_Click" 
     
        End If
    End Sub
    ici il ne faut pas oublier les "" et vous pouvez ajouter Run devant la ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    opt & TB_ChoixOption.Value & "_Click" 'Ici je veux qu'il lance l'évenement "opt1_Click"

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

Discussions similaires

  1. [AC-2000] Faire référence à une variable en construisant son nom
    Par ClaudeLELOUP dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/10/2010, 22h29
  2. [VBA] Lancer une form à partir de son nom
    Par truman dans le forum Général VBA
    Réponses: 28
    Dernier message: 18/05/2006, 15h41
  3. [VBA] Executer une fonction en passant son nom en argument
    Par David Guyon dans le forum Access
    Réponses: 4
    Dernier message: 05/10/2005, 20h56
  4. lancer une macro Access
    Par xmarabout dans le forum ASP
    Réponses: 1
    Dernier message: 26/09/2005, 14h03
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 13h15

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