Barre menu Insertion/forme

Résolu
patefp Messages postés 6 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 9 décembre 2008 - 2 déc. 2008 à 20:53
patefp Messages postés 6 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 9 décembre 2008 - 4 déc. 2008 à 13:13
Sous excel 2007. Je souhaite pour mes élèves associer une macro à une image (Plus ludique pour eux) : L'outils de la barre du menu d'excel : Insertion/formes.
L'objectif est que quand un enfant clique sur cette image, la boite de dialogue Excel avec toutes les formes s'affiche. L'élève n'a plus qu'à cliquer pour insérer une forme sur la page Excel.
1/ Je sais mettre la macro sur une image
2/ Mais je ne sais pas la procédure (Code vba) pour lui dire : Affiche la boite à outils formes.
3/ je pense que ça doit démarré par ça :
"sélectionne la barre"
Application.CommandBars("Drawing").Visible = True
"Il me manque la suite : Affiche la boite des formes……….
Le top ce serait de pouvoir aussi afficher sur un autre bouton la boite SmartArt.
Merci de m'aider. Patefp

<!-- / message -->

4 réponses

whitelegend Messages postés 156 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 2 mars 2009
3 déc. 2008 à 11:55
patefp,

Après 2 heures de recherches intensives je n'ai pas trouvé de solution pour faire excatement ce que tu veux... Néanmoins je te donne 2 codes qui pourront peut-être t'aider.

Le 1er te dresse une liste de l'arborescence de tes menus ( en terme de programmation)
Le 1ème t'exécutera tout les menus qu'il peut exécuter ....

J'espère que tu pourras en faire quelque chose

Sub ArborescenceMenus()
k = k + 1
For i = 1 To Application.CommandBars.Count
    Range("A" & k).Value = "[" & i & "] " & Application.CommandBars.Item(i).Name
    For j = 1 To Application.CommandBars.Item(i).Controls.Count
        Range("B" & k).Value = "[" & j & "] " & Application.CommandBars.Item(i).Controls.Item(j).Caption
        k = k + 1
    Next j
Next i
End Sub

Sub ExecuteMenus()
For i = 1 To Application.CommandBars.Count
    For j = 1 To Application.CommandBars.Item(i).Controls.Count
        On Error Resume Next
        Application.CommandBars.Item(i).Controls.Item(j).Execute
        On Error Goto 0
    Next j
Next i
End Sub

LC
3
patefp Messages postés 6 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 9 décembre 2008
3 déc. 2008 à 12:19
Merci, LC
Je vais essayer de bidouiller mais entre temps on m'a donné ce code :
Sub affiche_boite_SmartArt ()
Application.CommandBars.ExecuteMso "SmartArtInsert"
End Sub
Il fonctionne et c'est exactement ce que je veux mais pour les formes (Rectangle-triangle-rond etc...).
Si quelqu'un me donner la solution pour afficher la boite à outil des formes.....
Merci de l'aide
patefp
0
whitelegend Messages postés 156 Date d'inscription vendredi 13 janvier 2006 Statut Membre Dernière intervention 2 mars 2009
3 déc. 2008 à 13:58
patefp,

Tiens voilà un lien où sont répertoriés la plupart des valeur idMso pour la fonction "ExecuteMso(idMso as String)"

Cette liste est bien sur non exhaustive dans la mesure ou le paramètre idMso "SmartArtInsert" n'apparait pas dans cette liste.

De mon coté je ne trouverai pas plus de solution j'ai épuisé mes neurones sur ce sujet

LC
0
patefp Messages postés 6 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 9 décembre 2008
4 déc. 2008 à 13:13
Lc,
Merci j'ai trouvé des solutions à d'autres problèmes mais toujours pas pour ma boite à outils formes. Donc si une personne à la solution
patefp
0
Rejoignez-nous