Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 10/10/2008, 20h56   #1 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
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
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 10/10/2008, 23h08   #2 (permalink)
Membre émérite
 
Avatar de JackOuYA
 
Date d'inscription: juin 2008
Messages: 964
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
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 00h15   #3 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
Par défaut

Merci ca marche

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

il faut :

Code :
MenuCell "AjoutePrefixe", "Ajouter Prefixe"
au lieu de :

Code :
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

Dernière modification par zazaraignée ; 11/10/2008 à 14h21 Motif: Ajout des balises [code].
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 00h26   #4 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
Par défaut

j'ai trouvé comment supprimer :

Code :
Application.CommandBars("Cell").Controls(stMess).Delete
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 06h39   #5 (permalink)
Responsable PowerPoint
 
Avatar de Philippe JOCHMANS
 
Date d'inscription: mai 2005
Localisation: Loir et Cher et Touraine
Âge: 40
Messages: 10 017
Envoyer un message via MSN à Philippe JOCHMANS
Par défaut

Citation:
Envoyé par jlgcf Voir le message
j'ai trouvé comment supprimer :

Code :
Application.CommandBars("Cell").Controls(stMess).Delete
Donc à priori c'est résolu, alors un petit clique sur
__________________
En cas de questions techniques par MP ou message visiteur
Office : :Les Cours, Les FAQs
VB : Les Cours, Les FAQs
Mes articles : ici
Me connaitre
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 20h29   #6 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
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 :
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 :
Application.CommandBars("Cell").Controls.Count
ne donne pas le nombre de ces commmandes d'une part et

Code :
Application.CommandBars("Cell").Controls(i).Name
n'est pas reconnu (avec

Code :
i  = 1 to Application.CommandBars("Cell").Controls.Count
d'autre part

Merci
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 21h00   #7 (permalink)
Membre éprouvé
 
Date d'inscription: mai 2007
Messages: 493
Par défaut

Bonsoir,

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

Code :
Application.CommandBars("Cells").Reset
A l'ouverture tu ajoute ton bouton.

Cordialement,

Tirex28/
tirex28 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 21h04   #8 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
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?
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 21h21   #9 (permalink)
Membre éprouvé
 
Date d'inscription: mai 2007
Messages: 493
Par défaut

Re,

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

Code :
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/

Dernière modification par Pierre Fauconnier ; 13/10/2008 à 22h04 Motif: Suite à réorganisation de la discussion
tirex28 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 21h25   #10 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
Par défaut

Code :
Application.CommandBars("Cells").Reset
Génère un message d'erreur :

"Argument ou appel de procédure incorrect"

mais avec

Code :
Application.CommandBars("Cell").Reset
c'est bon

Merci
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 21h49   #11 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
Par défaut

Le tag ne supprime qu'une occurence

merci
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 21h59   #12 (permalink)
Membre éprouvé
 
Date d'inscription: mai 2007
Messages: 493
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 :
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/

Dernière modification par Pierre Fauconnier ; 13/10/2008 à 22h04 Motif: Suite à réorganisation de la discussion
tirex28 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 11/10/2008, 22h29   #13 (permalink)
Membre actif
 
Date d'inscription: juin 2007
Messages: 179
Par défaut

Merci !
Daejung est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBAACCESS

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide