Microsoft 365 Menu du ruban en Compléments VBA

youky(BJ)

XLDnaute Barbatruc
Bonjour tous,
Je souhaite après avoir créé mon menu simplement sélectionner l'onglet compléments qui viens de se faire afin d'accéder direct à ces menus.
Si certain d'entres vous connaissent la solution que je n'ai pas trouvée je les en remercie.
C'est un vieux fichier de 2003 que j'essai de remettre à jour
Bruno
 

Pièces jointes

  • MenuRuban.xlsm
    32.9 KB · Affichages: 10

patricktoulon

XLDnaute Barbatruc
bonjour @youky(BJ)
le probleme avec la création des commandbars sur les version suppérieures à 2003 c'est que ca va dans un onglet "compléments" automatiquement
c'est pour la rétrocompatibilité

sauf que l'onglet complément tu n'y a pas acces si tu n'a pas de variable ribbon
car là il ne s'agit pas d'activer ta barre ("BILLARD2") mais d'activer l'onglet "complément" du ruban
ce n'est pas la même chose

pour activer un onglet dans le ruban il aurait fallu créer ta barre en xml avec customUI et utiliser ribbon onload en callback

il existe des api pour chopper l'object ruban mais c'est tortueux et verbeux et pas sur

il existe une astuce pour créer un onglet plus ses composant en xml par macro et la faire marcher
mais je ne sais pas comment la supprimer a part a la fermeture du fichier
et la barre est présente dans toute les fenêtres excel
 

youky(BJ)

XLDnaute Barbatruc
Re bonjour tous et merci.
Je viens de trouver la solution. J'ai cherché tout l'après midi
Je fais un OnTime sur la macro "affiche" avec 1 seconde de décalage
Sub affiche()
CreateObject("WScript.Shell").SendKeys "%"
CreateObject("WScript.Shell").SendKeys "M"
CreateObject("WScript.Shell").SendKeys "%"
End Sub

Voici le fichier modifié
Bruno
 

Pièces jointes

  • MenuRuban.xlsm
    29.5 KB · Affichages: 10

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Je viens de trouver la solution. J'ai cherché tout l'après midi
Je fais un OnTime sur la macro "affiche" avec 1 seconde de décalage
Sub affiche()
CreateObject("WScript.Shell").SendKeys "%"
CreateObject("WScript.Shell").SendKeys "M"
CreateObject("WScript.Shell").SendKeys "%"
End Sub
Est-ce que ce n'est pas plutôt ceci :
VB:
Sub affiche()
'
    CreateObject("WScript.Shell").SendKeys "%m2%"

End Sub
Je dis ça car chez moi les Compléments sont accessibles par M2.
Est-ce que ça dépend du PC ??? 🤔

Et pourquoi
VB:
Application.OnTime Now + TimeValue("00:00:01"), "affiche"
plutôt que simplement
VB:
    affiche
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 266
Membres
103 167
dernier inscrit
miriame