Par VBA je cherche =C3=A0 savoir le ID d'un bouton dans un menu.
Par exemple =E2=80=A6 Dans le menu Insertion et dans la section Tableaux =
=E2=80=A6 il y a le bouton Tableau avec son image.
Je recherche le ID de ce bouton.
En Excel et dans des versions ant=C3=A9rieures =E2=80=A6 j'utilisais du cod=
e tel que MsgBox (Application.CommandBars(Nom ou X=C3=A8me).Controls(Nom ou=
le X=C3=A8me).ID)
Mais maintenant =E2=80=A6 si je comprend bien =E2=80=A6 il y a le Ruban, le=
s menus, les sous-menus et les boutons. J'ai vraiment cherch=C3=A9 =E2=80=
=A6 tent=C3=A9 avec l'enregistreur de macros mais sans succ=C3=A8s.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Péhemme
Bonjour, Depuis Excel 2007, il n'est plus possible (où je n'ai jamais trouvé) de connaître l'ID d'un bouton 'natif' du ruban, seules le nom des images (imageMso) peuvent être connues via : Fichier/Personnaliser le ruban, en pointant la souris sur le nom sur l'icône. En revanche, si tu parles d'un ruban que tu as créé, tu n'as pas d'autres moyens que de retourner dans le 'xml' et repérer le nom que tu lui as donné. Je n'ai pas été d'une grande aide... J'espère qu'un gourou te donneras une réponse plus satisfaisante. Bonne journée Michel "Roland Miller" a écrit dans le message de groupe de discussion : Bonjour, Par VBA je cherche à savoir le ID d'un bouton dans un menu. Par exemple … Dans le menu Insertion et dans la section Tableaux … il y a le bouton Tableau avec son image. Je recherche le ID de ce bouton. En Excel et dans des versions antérieures … j'utilisais du code tel que MsgBox (Application.CommandBars(Nom ou Xème).Controls(Nom ou le Xème).ID) Mais maintenant … si je comprend bien … il y a le Ruban, les menus, les sous-menus et les boutons. J'ai vraiment cherché … tenté avec l'enregistreur de macros mais sans succès. Sauriez-vous comment faire? Merci à l'avance.
Bonjour,
Depuis Excel 2007, il n'est plus possible (où je n'ai jamais trouvé) de
connaître l'ID d'un bouton 'natif' du ruban, seules le nom des images
(imageMso) peuvent être connues via :
Fichier/Personnaliser le ruban, en pointant la souris sur le nom sur
l'icône.
En revanche, si tu parles d'un ruban que tu as créé, tu n'as pas d'autres
moyens que de retourner dans le 'xml' et repérer le nom que tu lui as donné.
Je n'ai pas été d'une grande aide...
J'espère qu'un gourou te donneras une réponse plus satisfaisante.
Bonne journée
Michel
"Roland Miller" a écrit dans le message de groupe de discussion :
91edb848-23b4-4e5b-b578-966024d7355e@googlegroups.com...
Bonjour,
Par VBA je cherche à savoir le ID d'un bouton dans un menu.
Par exemple … Dans le menu Insertion et dans la section Tableaux … il y a le
bouton Tableau avec son image.
Je recherche le ID de ce bouton.
En Excel et dans des versions antérieures … j'utilisais du code tel que
MsgBox (Application.CommandBars(Nom ou Xème).Controls(Nom ou le Xème).ID)
Mais maintenant … si je comprend bien … il y a le Ruban, les menus, les
sous-menus et les boutons. J'ai vraiment cherché … tenté avec l'enregistreur
de macros mais sans succès.
Bonjour, Depuis Excel 2007, il n'est plus possible (où je n'ai jamais trouvé) de connaître l'ID d'un bouton 'natif' du ruban, seules le nom des images (imageMso) peuvent être connues via : Fichier/Personnaliser le ruban, en pointant la souris sur le nom sur l'icône. En revanche, si tu parles d'un ruban que tu as créé, tu n'as pas d'autres moyens que de retourner dans le 'xml' et repérer le nom que tu lui as donné. Je n'ai pas été d'une grande aide... J'espère qu'un gourou te donneras une réponse plus satisfaisante. Bonne journée Michel "Roland Miller" a écrit dans le message de groupe de discussion : Bonjour, Par VBA je cherche à savoir le ID d'un bouton dans un menu. Par exemple … Dans le menu Insertion et dans la section Tableaux … il y a le bouton Tableau avec son image. Je recherche le ID de ce bouton. En Excel et dans des versions antérieures … j'utilisais du code tel que MsgBox (Application.CommandBars(Nom ou Xème).Controls(Nom ou le Xème).ID) Mais maintenant … si je comprend bien … il y a le Ruban, les menus, les sous-menus et les boutons. J'ai vraiment cherché … tenté avec l'enregistreur de macros mais sans succès. Sauriez-vous comment faire? Merci à l'avance.
Péhemme
J'ai lu trop rapidement ton message. Je confirme ce que j'ai écrit sur l'ID du bouton, en revanche, pour celui qui t'intéresse, son imageMso est : TableInsertExcel Si tu veux l'utiliser dans un ruban que tu développes, c'est ce nom que tu dois prendre (l'id, c'est toi qui le donne). Michel "Roland Miller" a écrit dans le message de groupe de discussion : Bonjour, Par VBA je cherche à savoir le ID d'un bouton dans un menu. Par exemple … Dans le menu Insertion et dans la section Tableaux … il y a le bouton Tableau avec son image. Je recherche le ID de ce bouton. En Excel et dans des versions antérieures … j'utilisais du code tel que MsgBox (Application.CommandBars(Nom ou Xème).Controls(Nom ou le Xème).ID) Mais maintenant … si je comprend bien … il y a le Ruban, les menus, les sous-menus et les boutons. J'ai vraiment cherché … tenté avec l'enregistreur de macros mais sans succès. Sauriez-vous comment faire? Merci à l'avance.
J'ai lu trop rapidement ton message.
Je confirme ce que j'ai écrit sur l'ID du bouton, en revanche, pour celui
qui t'intéresse, son imageMso est : TableInsertExcel
Si tu veux l'utiliser dans un ruban que tu développes, c'est ce nom que tu
dois prendre (l'id, c'est toi qui le donne).
Michel
"Roland Miller" a écrit dans le message de groupe de discussion :
91edb848-23b4-4e5b-b578-966024d7355e@googlegroups.com...
Bonjour,
Par VBA je cherche à savoir le ID d'un bouton dans un menu.
Par exemple … Dans le menu Insertion et dans la section Tableaux … il y a le
bouton Tableau avec son image.
Je recherche le ID de ce bouton.
En Excel et dans des versions antérieures … j'utilisais du code tel que
MsgBox (Application.CommandBars(Nom ou Xème).Controls(Nom ou le Xème).ID)
Mais maintenant … si je comprend bien … il y a le Ruban, les menus, les
sous-menus et les boutons. J'ai vraiment cherché … tenté avec l'enregistreur
de macros mais sans succès.
J'ai lu trop rapidement ton message. Je confirme ce que j'ai écrit sur l'ID du bouton, en revanche, pour celui qui t'intéresse, son imageMso est : TableInsertExcel Si tu veux l'utiliser dans un ruban que tu développes, c'est ce nom que tu dois prendre (l'id, c'est toi qui le donne). Michel "Roland Miller" a écrit dans le message de groupe de discussion : Bonjour, Par VBA je cherche à savoir le ID d'un bouton dans un menu. Par exemple … Dans le menu Insertion et dans la section Tableaux … il y a le bouton Tableau avec son image. Je recherche le ID de ce bouton. En Excel et dans des versions antérieures … j'utilisais du code tel que MsgBox (Application.CommandBars(Nom ou Xème).Controls(Nom ou le Xème).ID) Mais maintenant … si je comprend bien … il y a le Ruban, les menus, les sous-menus et les boutons. J'ai vraiment cherché … tenté avec l'enregistreur de macros mais sans succès. Sauriez-vous comment faire? Merci à l'avance.
MichD
Bonjour, Sur ce site, tu trouveras tous les explications et fichiers exemples à télécharger sur le ruban d'Excel. (en anglais) https://www.rondebruin.nl/win/section2.htm MichD
Bonjour,
Sur ce site, tu trouveras tous les explications et fichiers exemples à
télécharger sur le ruban d'Excel. (en anglais)
Bonjour, Sur ce site, tu trouveras tous les explications et fichiers exemples à télécharger sur le ruban d'Excel. (en anglais) https://www.rondebruin.nl/win/section2.htm MichD
Roland Miller
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référ é. Mais je me pose tout de même une question. Manuellement … Dans Personnaliser le ruban … je suis arriv é à créer un onglet avec un groupe et aussi à ajouter u n bouton relié à une de mes macros. Mais … ceci demeure d ans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite. Mon besoin est de désactiver ou supprimer ce nouvel onglet si je chang e de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de mac ro ne donne rien pour ceci??? Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans c e classeur. Merci à l'avance,
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référ é.
Mais je me pose tout de même une question.
Manuellement … Dans Personnaliser le ruban … je suis arriv é à créer un onglet avec un groupe et aussi à ajouter u n bouton relié à une de mes macros. Mais … ceci demeure d ans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite.
Mon besoin est de désactiver ou supprimer ce nouvel onglet si je chang e de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de mac ro ne donne rien pour ceci???
Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans c e classeur.
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référ é. Mais je me pose tout de même une question. Manuellement … Dans Personnaliser le ruban … je suis arriv é à créer un onglet avec un groupe et aussi à ajouter u n bouton relié à une de mes macros. Mais … ceci demeure d ans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite. Mon besoin est de désactiver ou supprimer ce nouvel onglet si je chang e de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de mac ro ne donne rien pour ceci??? Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans c e classeur. Merci à l'avance,
MichD
Le 22/01/20 à 09:48, Roland Miller a écrit :
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référé. Mais je me pose tout de même une question. Manuellement … Dans Personnaliser le ruban … je suis arrivé à créer un onglet avec un groupe et aussi à ajouter un bouton relié à une de mes macros. Mais … ceci demeure dans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite. Mon besoin est de désactiver ou supprimer ce nouvel onglet si je change de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de macro ne donne rien pour ceci??? Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans ce classeur. Merci à l'avance,
Bonjour, Le plus simple, au début de ta macro, tu inscris ceci : '---------------------- If Ucase(activeworkbook.name)= Ucase("NomDuClasseur.xlsm" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if '---------------------- MichD
Le 22/01/20 à 09:48, Roland Miller a écrit :
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référé.
Mais je me pose tout de même une question.
Manuellement … Dans Personnaliser le ruban … je suis arrivé à créer un onglet avec un groupe et aussi à ajouter un bouton relié à une de mes macros. Mais … ceci demeure dans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite.
Mon besoin est de désactiver ou supprimer ce nouvel onglet si je change de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de macro ne donne rien pour ceci???
Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans ce classeur.
Merci à l'avance,
Bonjour,
Le plus simple, au début de ta macro, tu inscris ceci :
'----------------------
If Ucase(activeworkbook.name)= Ucase("NomDuClasseur.xlsm" then
'Ton code
Else
Msgbox "Cette action n'est pas disponible dans ce classeur."
End if
'----------------------
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référé. Mais je me pose tout de même une question. Manuellement … Dans Personnaliser le ruban … je suis arrivé à créer un onglet avec un groupe et aussi à ajouter un bouton relié à une de mes macros. Mais … ceci demeure dans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite. Mon besoin est de désactiver ou supprimer ce nouvel onglet si je change de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de macro ne donne rien pour ceci??? Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans ce classeur. Merci à l'avance,
Bonjour, Le plus simple, au début de ta macro, tu inscris ceci : '---------------------- If Ucase(activeworkbook.name)= Ucase("NomDuClasseur.xlsm" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if '---------------------- MichD
MichD
Le 22/01/20 à 10:27, MichD a écrit :
Le 22/01/20 à 09:48, Roland Miller a écrit :
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référé. Mais je me pose tout de même une question. Manuellement … Dans Personnaliser le ruban … je suis arrivé à créer un onglet avec un groupe et aussi à ajouter un bouton relié à une de mes macros. Mais … ceci demeure dans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite. Mon besoin est de désactiver ou supprimer ce nouvel onglet si je change de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de macro ne donne rien pour ceci??? Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans ce classeur. Merci à l'avance,
Bonjour, Le plus simple, au début de ta macro, tu inscris ceci : '---------------------- If Ucase(activeworkbook.name)= Ucase("NomDuClasseur.xlsm" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if '---------------------- MichD
Ouais, que se passe-t-il si tu modifies le nom du classeur? Une autre approche simple, tu crées un nom dans la collection "Name" en vba auquel tu attribues une valeur particulière. Pour créer le "NOM" invisible par l'interface de calcul : Remplace toto par un nom plus rare et original. Cette ligne de code doit s'exécuter seulement une fois après quoi, tu peux la supprimer. Names.Add "toto", "MonFichierParticulier", False Maintenant dans la petite procédure que je t'ai soumise, tu remplaces par ceci : If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if Maintenant, même si le classeur change de nom, cela n'altèrera pas ta procédure. MichD
Le 22/01/20 à 10:27, MichD a écrit :
Le 22/01/20 à 09:48, Roland Miller a écrit :
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référé.
Mais je me pose tout de même une question.
Manuellement … Dans Personnaliser le ruban … je suis arrivé à créer un
onglet avec un groupe et aussi à ajouter un bouton relié à une de mes
macros. Mais … ceci demeure dans tous les classeurs à moins de
manuellement aller le décocher ou supprimer par la suite.
Mon besoin est de désactiver ou supprimer ce nouvel onglet si je
change de classeur. N'y a-t'il pas du code pour faire ceci?
L'enregisteur de macro ne donne rien pour ceci???
Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans ce
classeur.
Merci à l'avance,
Bonjour,
Le plus simple, au début de ta macro, tu inscris ceci :
'----------------------
If Ucase(activeworkbook.name)= Ucase("NomDuClasseur.xlsm" then
'Ton code
Else
Msgbox "Cette action n'est pas disponible dans ce classeur."
End if
'----------------------
MichD
Ouais, que se passe-t-il si tu modifies le nom du classeur? Une autre
approche simple, tu crées un nom dans la collection "Name" en vba auquel
tu attribues une valeur particulière.
Pour créer le "NOM" invisible par l'interface de calcul :
Remplace toto par un nom plus rare et original.
Cette ligne de code doit s'exécuter seulement une fois après quoi, tu
peux la supprimer.
Names.Add "toto", "MonFichierParticulier", False
Maintenant dans la petite procédure que je t'ai soumise, tu remplaces
par ceci :
If Ucase([toto])= Ucase("MonFichierParticulier" then
'Ton code
Else
Msgbox "Cette action n'est pas disponible dans ce classeur."
End if
Maintenant, même si le classeur change de nom, cela n'altèrera pas ta
procédure.
Bonjour. Merci. J'ai lu attentivement ce dont vous m'avez référé. Mais je me pose tout de même une question. Manuellement … Dans Personnaliser le ruban … je suis arrivé à créer un onglet avec un groupe et aussi à ajouter un bouton relié à une de mes macros. Mais … ceci demeure dans tous les classeurs à moins de manuellement aller le décocher ou supprimer par la suite. Mon besoin est de désactiver ou supprimer ce nouvel onglet si je change de classeur. N'y a-t'il pas du code pour faire ceci? L'enregisteur de macro ne donne rien pour ceci??? Bien sûr aussi j'aimerais réactiver l'onglet si je reviens dans ce classeur. Merci à l'avance,
Bonjour, Le plus simple, au début de ta macro, tu inscris ceci : '---------------------- If Ucase(activeworkbook.name)= Ucase("NomDuClasseur.xlsm" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if '---------------------- MichD
Ouais, que se passe-t-il si tu modifies le nom du classeur? Une autre approche simple, tu crées un nom dans la collection "Name" en vba auquel tu attribues une valeur particulière. Pour créer le "NOM" invisible par l'interface de calcul : Remplace toto par un nom plus rare et original. Cette ligne de code doit s'exécuter seulement une fois après quoi, tu peux la supprimer. Names.Add "toto", "MonFichierParticulier", False Maintenant dans la petite procédure que je t'ai soumise, tu remplaces par ceci : If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if Maintenant, même si le classeur change de nom, cela n'altèrera pas ta procédure. MichD
Roland Miller
Encore merci. Mais … pas de problèmes pour gérer le classeur. MOn probl ème est que je ne sais pas quel code utiliser? 'Ton code. Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Ong let? If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if
Encore merci.
Mais … pas de problèmes pour gérer le classeur. MOn probl ème est que je ne sais pas quel code utiliser? 'Ton code.
Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Ong let?
If Ucase([toto])= Ucase("MonFichierParticulier" then
'Ton code
Else
Msgbox "Cette action n'est pas disponible dans ce classeur."
End if
Encore merci. Mais … pas de problèmes pour gérer le classeur. MOn probl ème est que je ne sais pas quel code utiliser? 'Ton code. Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Ong let? If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if
MichD
Le 22/01/20 à 10:52, Roland Miller a écrit :
Encore merci. Mais … pas de problèmes pour gérer le classeur. MOn problème est que je ne sais pas quel code utiliser? 'Ton code. Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Onglet? If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if
Les 2 suggestions faites ne désactivent pas ou active une commande. Il limite simplement l'action de cette macro à ce classeur spécifique. Où j'ai écrit ton code, c'est le code de ta macro, c'est tout. Sinon, tu dois consulter le site internet que je t'ai suggéré et apprendre à construire un menu particulier pour un classeur. L'apprentissage prend un certain temps... moi, je n'interviens pas sur ce sujet particulier. MichD
Le 22/01/20 à 10:52, Roland Miller a écrit :
Encore merci.
Mais … pas de problèmes pour gérer le classeur. MOn problème est que je ne sais pas quel code utiliser? 'Ton code.
Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Onglet?
If Ucase([toto])= Ucase("MonFichierParticulier" then
'Ton code
Else
Msgbox "Cette action n'est pas disponible dans ce classeur."
End if
Les 2 suggestions faites ne désactivent pas ou active une commande. Il
limite simplement l'action de cette macro à ce classeur spécifique. Où
j'ai écrit ton code, c'est le code de ta macro, c'est tout.
Sinon, tu dois consulter le site internet que je t'ai suggéré et
apprendre à construire un menu particulier pour un classeur.
L'apprentissage prend un certain temps... moi, je n'interviens pas sur
ce sujet particulier.
Encore merci. Mais … pas de problèmes pour gérer le classeur. MOn problème est que je ne sais pas quel code utiliser? 'Ton code. Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Onglet? If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if
Les 2 suggestions faites ne désactivent pas ou active une commande. Il limite simplement l'action de cette macro à ce classeur spécifique. Où j'ai écrit ton code, c'est le code de ta macro, c'est tout. Sinon, tu dois consulter le site internet que je t'ai suggéré et apprendre à construire un menu particulier pour un classeur. L'apprentissage prend un certain temps... moi, je n'interviens pas sur ce sujet particulier. MichD
MichD
Le 22/01/20 à 10:52, Roland Miller a écrit :
Encore merci. Mais … pas de problèmes pour gérer le classeur. MOn problème est que je ne sais pas quel code utiliser? 'Ton code. Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Onglet? If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if
Une autre alternative est de créer une barre d'outils personnalisée qui apparait dans le menu "Complément" du ruban. Pour ce faire, tu peux utiliser la manière de code dans les anciens classeurs d'avant 2007. Je te donne un exemple de code. Cette barre d'outils peut être créée par les événements dans le thisworkbook de ton classeur : à copier dans le ThisWorkbook '------------------------------------ Private Sub Workbook_Activate() Creer_Barre_Menu End Sub '------------------------------------ Private Sub Workbook_Deactivate() supprimer_Ma_Barre End Sub '------------------------------------ Ce qui suit : Dans un module standard, le code implique que le nom du module est module1. Tu peux le modifier si tu places ce code dans un module ayant un autre nom. '------------------------------------ Sub Creer_Barre_Menu() Dim Mbar As CommandBar On Error Resume Next Call Application.CommandBars("MichD").Delete Set Mbar = Application.CommandBars.Add("MichD") With Mbar .Visible = True .Position = msoBarTop End With With Mbar.Controls With .Add .Style = msoButtonIconAndCaption .Caption = "Ok1" .Style = msoButtonIconAndCaption .OnAction = "Module1.MaMacro" 'Utiliser une image déjà dans la feuille comme image 'sur ton bouton de commande. 'Nom de la feuille et l'image où se retrouve l'image 'Feuil1 n'est pas le nom de l'onglet de la feuille 'mais la propriété Name 'Worksheets("Feuil1").Shapes("MichD1").Copy 'Pour utiliser l'image d'un bouton existant '.FaceId = 19 '.PasteFace End With With .Add .Style = msoButtonIconAndCaption .Caption = "Ok2" .Style = msoButtonIconAndCaption .OnAction = "Module1.MaMacro1" Feuil1.Shapes("MichD2").Copy ' .FaceId = 27 .PasteFace End With End With End Sub '------------------------------------ Sub supprimer_Ma_Barre() Application.CommandBars("MichD").Delete End Sub '------------------------------------ MichD
Le 22/01/20 à 10:52, Roland Miller a écrit :
Encore merci.
Mais … pas de problèmes pour gérer le classeur. MOn problème est que je ne sais pas quel code utiliser? 'Ton code.
Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Onglet?
If Ucase([toto])= Ucase("MonFichierParticulier" then
'Ton code
Else
Msgbox "Cette action n'est pas disponible dans ce classeur."
End if
Une autre alternative est de créer une barre d'outils personnalisée qui
apparait dans le menu "Complément" du ruban. Pour ce faire, tu peux
utiliser la manière de code dans les anciens classeurs d'avant 2007.
Je te donne un exemple de code. Cette barre d'outils peut être créée par
les événements dans le thisworkbook de ton classeur :
à copier dans le ThisWorkbook
'------------------------------------
Private Sub Workbook_Activate()
Creer_Barre_Menu
End Sub
'------------------------------------
Private Sub Workbook_Deactivate()
supprimer_Ma_Barre
End Sub
'------------------------------------
Ce qui suit :
Dans un module standard, le code implique que le nom du module est
module1. Tu peux le modifier si tu places ce code dans un module ayant
un autre nom.
'------------------------------------
Sub Creer_Barre_Menu()
Dim Mbar As CommandBar
On Error Resume Next
Call Application.CommandBars("MichD").Delete
Set Mbar = Application.CommandBars.Add("MichD")
With Mbar
.Visible = True
.Position = msoBarTop
End With
With Mbar.Controls
With .Add
.Style = msoButtonIconAndCaption
.Caption = "Ok1"
.Style = msoButtonIconAndCaption
.OnAction = "Module1.MaMacro"
'Utiliser une image déjà dans la feuille comme image
'sur ton bouton de commande.
'Nom de la feuille et l'image où se retrouve l'image
'Feuil1 n'est pas le nom de l'onglet de la feuille
'mais la propriété Name
'Worksheets("Feuil1").Shapes("MichD1").Copy
'Pour utiliser l'image d'un bouton existant
'.FaceId = 19
'.PasteFace
End With
With .Add
.Style = msoButtonIconAndCaption
.Caption = "Ok2"
.Style = msoButtonIconAndCaption
.OnAction = "Module1.MaMacro1"
Feuil1.Shapes("MichD2").Copy
' .FaceId = 27
.PasteFace
End With
End With
End Sub
'------------------------------------
Sub supprimer_Ma_Barre()
Application.CommandBars("MichD").Delete
End Sub
'------------------------------------
Encore merci. Mais … pas de problèmes pour gérer le classeur. MOn problème est que je ne sais pas quel code utiliser? 'Ton code. Quel code utiliser pour désactiver l'onglet et/ou le Groupe dans l'Onglet? If Ucase([toto])= Ucase("MonFichierParticulier" then 'Ton code Else Msgbox "Cette action n'est pas disponible dans ce classeur." End if
Une autre alternative est de créer une barre d'outils personnalisée qui apparait dans le menu "Complément" du ruban. Pour ce faire, tu peux utiliser la manière de code dans les anciens classeurs d'avant 2007. Je te donne un exemple de code. Cette barre d'outils peut être créée par les événements dans le thisworkbook de ton classeur : à copier dans le ThisWorkbook '------------------------------------ Private Sub Workbook_Activate() Creer_Barre_Menu End Sub '------------------------------------ Private Sub Workbook_Deactivate() supprimer_Ma_Barre End Sub '------------------------------------ Ce qui suit : Dans un module standard, le code implique que le nom du module est module1. Tu peux le modifier si tu places ce code dans un module ayant un autre nom. '------------------------------------ Sub Creer_Barre_Menu() Dim Mbar As CommandBar On Error Resume Next Call Application.CommandBars("MichD").Delete Set Mbar = Application.CommandBars.Add("MichD") With Mbar .Visible = True .Position = msoBarTop End With With Mbar.Controls With .Add .Style = msoButtonIconAndCaption .Caption = "Ok1" .Style = msoButtonIconAndCaption .OnAction = "Module1.MaMacro" 'Utiliser une image déjà dans la feuille comme image 'sur ton bouton de commande. 'Nom de la feuille et l'image où se retrouve l'image 'Feuil1 n'est pas le nom de l'onglet de la feuille 'mais la propriété Name 'Worksheets("Feuil1").Shapes("MichD1").Copy 'Pour utiliser l'image d'un bouton existant '.FaceId = 19 '.PasteFace End With With .Add .Style = msoButtonIconAndCaption .Caption = "Ok2" .Style = msoButtonIconAndCaption .OnAction = "Module1.MaMacro1" Feuil1.Shapes("MichD2").Copy ' .FaceId = 27 .PasteFace End With End With End Sub '------------------------------------ Sub supprimer_Ma_Barre() Application.CommandBars("MichD").Delete End Sub '------------------------------------ MichD
Roland Miller
Encore un grand merci. Je comprend bien. J'utilise depuis plusieurs années et je maîtrise bien tout ce qui concerne Sub Creer_Barre_Menu(). Mais alors … je cherchais à savoir le ID des images des bouton s pour utiliser des … nouveaux boutons … dont je n'ai pas l e ID. (Controls.ID et/ou FaceID) À l'époque de 2003 … je réussissais. J'ai viens de trouver ce que je cherchais et si ça peut aider quelqu'u n … tant mieux. Voici le lien : https://fring.developpez.com/vba/ex cel/faceid/#L1.1
Encore un grand merci. Je comprend bien.
J'utilise depuis plusieurs années et je maîtrise bien tout ce qui concerne Sub Creer_Barre_Menu().
Mais alors … je cherchais à savoir le ID des images des bouton s pour utiliser des … nouveaux boutons … dont je n'ai pas l e ID. (Controls.ID et/ou FaceID) À l'époque de 2003 … je réussissais.
J'ai viens de trouver ce que je cherchais et si ça peut aider quelqu'u n … tant mieux. Voici le lien : https://fring.developpez.com/vba/ex cel/faceid/#L1.1
Encore un grand merci. Je comprend bien. J'utilise depuis plusieurs années et je maîtrise bien tout ce qui concerne Sub Creer_Barre_Menu(). Mais alors … je cherchais à savoir le ID des images des bouton s pour utiliser des … nouveaux boutons … dont je n'ai pas l e ID. (Controls.ID et/ou FaceID) À l'époque de 2003 … je réussissais. J'ai viens de trouver ce que je cherchais et si ça peut aider quelqu'u n … tant mieux. Voici le lien : https://fring.developpez.com/vba/ex cel/faceid/#L1.1