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 :

Pb Menu OnAction dans Module de Classe


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 61
    Par défaut Pb Menu OnAction dans Module de Classe
    Bonjour à tous,

    Voila mon Pb, J'ai créer 2 element de Menu personnalisé depuis un Module de classe comme ceci...
    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
    23
    24
    25
    26
           
    Private Sub CreateItemMenuWmb()
       Dim PMnu As Object
       DeleteItemMenuWmb
       Set PMnu = CommandBars(cWmb).Controls.Add(Type:=msoControlPopup, Before:=8)
       With PMnu
          .Caption = "Mode Edition"
       End With   
    With CommandBars(cWmb).Controls("Affichage")
          .Controls.Add(Type:=msoControlButton).Caption = cM52
          .Controls(cM52).OnAction = "MenuClick"
          .Controls(cM52).Tag = "52"
       End With
       With CommandBars(cWmb).Controls(cM2)
          .Controls.Add(Type:=msoControlButton).Caption = cM53
          .Controls(cM53).OnAction = "MenuClick"
          .Controls(cM53).Tag = "53"
       End With
       Set PMnu = Nothing
    End Sub
    
    Private Sub MenuClick
       Select Case CommandBars.ActionControl.Tag
       'Réponse au evenements...
       End Select
    End sub
    Mais voila, lorsque je clique sur un élement de menu, Excel m'affiche une boite
    Impossible de trouver la macro "MenuClick"
    Tous ça, parce que MenuClick est referencé dans mon module de classe.
    En effet lorsque je reference "MenuClick" dans un module normal, cela fonctionne parfaitement...
    Ma question est:
    Y a t'il moyen de renseigné OnAction de manière à ce que je puisse répondre à mes évenements de click dans mon module de classe

    D'avance Merci de vos réponses

    Laurent

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut Laurent GAUDILLIER et le forum
    enlever le private,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub MenuClick
       Select Case CommandBars.ActionControl.Tag
       'Réponse au evenements...
       End Select
    End sub
    mais je pense qu'il faut que la macro MenuClick se trouve dans un module général, comme pour une Function : quand tu veux qu'excel travaille tout seul, faut pas trop lui compliquer la tâche
    À moins que la syntaxe de OnAction admette une syntaxe te permettant la désignation du module
    .
    Tu peux tenter avec "AAA.MenuClick" ou "AAA!MenuClick" (AAA étant le nom informatique de la feuille).
    Mais ce matin, je suis flemmard, et j'ai pas envie de tester.
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 61
    Par défaut
    Bonsoir,

    J'ai tout essayer mais sans resultats. Je peut toujours mettre MenuCklick dans
    un module standard mais je perd ainsi l'avantage de la POO, c'est dommage
    Je vais devoir me résigné

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Comme le dit Gorfaël, tu peux utiliser la procédure en la préfixant avec l'objet issu de la classe, du moment que tu la mette Public.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 61
    Par défaut
    Bonjour à tous,

    Le Pb est que mème en préfixant MenuClick du nom de mon instance de classe
    en l'ocurrence ici : LGProc.Menuclick , ça ne fonctionne pas !
    je précise que mon sub MenuClick est déclaré Public

    Merci quand mème pour votre aide
    Amicalement Laurent

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Peux-tu donner le code qui appelle cette procédure?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. [XL-2007] Adapter petit code dans module de classe
    Par eliot.raymond dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/11/2012, 15h13
  2. Find Range dans module de classe
    Par ylemasson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2011, 11h45
  3. Pb ajout objet dans module de classe
    Par steph6499 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 06/02/2011, 17h55
  4. Gestion erreur dans module de class E97
    Par Eric_03 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/12/2008, 16h45
  5. Utilisation composant timer dans module de classe
    Par MaximeM dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 26/06/2007, 13h35

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