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 :

[E-03] VBA Clic droit sur une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut [E-03] VBA Clic droit sur une cellule
    Bonjour,

    Comment ajouter une commande dans la liste qui s'affiche sur clic droit dans Excel 2003?

    Merci

  2. #2
    Membre éprouvé
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Points : 1 191
    Points
    1 191
    Par défaut
    Bonsoir,

    un petit coup de google et je suis retombé ici


    Comment ajouter une commande au menu contextuel d'une cellule Excel ?

    JacqueS.

    Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

    Pour devenir mon ami laissez moi un message

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Merci ca marche

    mais apparemment il y a une inversion dans la fonction appelée :

    il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MenuCell "AjoutePrefixe", "Ajouter Prefixe"
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MenuCell "Ajouter Prefixe", "AjoutePrefixe"
    Autres soucis :
    Ces commandes sont ajoutés à chaque ouverture du classeur ce qui crée des doublons. Comment les enlever quand on le ferme?
    Pas possible que ce menu ne s'applique qu'à un seul classeur?

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    j'ai trouvé comment supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cell").Controls(stMess).Delete

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jlgcf Voir le message
    j'ai trouvé comment supprimer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cell").Controls(stMess).Delete
    Donc à priori c'est résolu, alors un petit clique sur

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Presque résolu.. une petite question subsidiaire

    dans mes tests la commande s'est ajoutée plusieurs fois dans le menu contextuel.

    Comment s'assurer que la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cell").Controls(stMess).Delete
    supprime toutes les occurences si pour une raison ou pour une autre elle venait à s'ajouter plusieurs fois?

    Je pensai passer en revue toutes les commandes du menu contextuel mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cell").Controls.Count
    ne donne pas le nombre de ces commmandes d'une part et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cell").Controls(i).Name
    n'est pas reconnu (avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    i  = 1 to Application.CommandBars("Cell").Controls.Count
    d'autre part

    Merci

  7. #7
    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 : 824
    Points
    824
    Par défaut
    Bonsoir,

    En fermant ton classeur tu peux restaurer le menu à son état originel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cells").Reset
    A l'ouverture tu ajoute ton bouton.

    Cordialement,

    Tirex28/

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Merci mais si d'autres utilisateurs ont des macro qui ajoute des commandes aux menus contextuels je vais les supprimer aussi, non?

  9. #9
    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 : 824
    Points
    824
    Par défaut
    Re,

    Dans ce cas tu peux toujours tagger ton bouton pour le retrouver:

    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 AjoutBouton()
       Dim btn As CommandBarButton
       Set btn = Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton)
       With btn
          .OnAction = "NomProcedure"
          .Caption = "&Legende"
          .Tag = "xyz123"
       End With
    End Sub
     
    Sub EffacerBouton()
       Dim btn As CommandBarButton
       Set btn = Application.CommandBars("Cell").FindControl(Tag:="xyz123")
       btn.Delete
    End Sub

    Cordialement,

    Tirex28/

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cells").Reset
    Génère un message d'erreur :

    "Argument ou appel de procédure incorrect"

    mais avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Cell").Reset
    c'est bon

    Merci

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Le tag ne supprime qu'une occurence

    merci

  12. #12
    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 : 824
    Points
    824
    Par défaut
    Re,



    Citation Envoyé par jlgcf
    Le tag ne supprime qu'une occurence
    Ce qui est normalement suffisant si tu n'en ajoute pas a tour de bras, dans le cas contraire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub EffacerBoutonS()
       Dim btn As CommandBarButton
       On Error GoTo Fin
       Do
          Set btn = Application.CommandBars("Cell").FindControl(Tag:="xyz123")
          btn.Delete
       Loop
    Fin:
    End Sub
    Bonne soirée,

    Tirex28/

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 855
    Points : 581
    Points
    581
    Par défaut
    Merci !

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

Discussions similaires

  1. Modifier menu clic droit sur une image
    Par humitake dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/05/2011, 18h27
  2. clic double sur une cellule d'un dbgrid
    Par thered dans le forum Bases de données
    Réponses: 4
    Dernier message: 24/12/2009, 20h45
  3. interdire le clic droit sur une image?
    Par bylka dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/03/2009, 16h24
  4. [VBA-Excel] DblClick sur une cellule
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/01/2007, 10h51
  5. [MFC] clic droit sur une listbox ?
    Par julien.nasser dans le forum MFC
    Réponses: 1
    Dernier message: 07/06/2006, 14h53

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