Microsoft 365 Ruban fichier "testRuban"

Philippe17

XLDnaute Occasionnel
Supporter XLD
Bonjour à toutes et à tous,
Après avoir obtenu avec beaucoup de sympathie et d'aide de votre part dans divers fichiers, je me lance dans le Ruban personnalisé pour mon classeur,
J'ai un fichier ci-joint, j'aimerais savoir si c'est possible uniquement dans mon classeur "TestRuban" d'avoir uniquement mon ruban "TestRuban" qui apparait ? Et, aucun des autres, croyez-vous que ce soit possible ? Merci pour vos réponses,

Bonne journée à toutes et à tous,

Philippe 😇
 

Pièces jointes

  • TestRuban.xlsx
    9.5 KB · Affichages: 4
Solution
Bonjour à tous,
Patrick à mon avis c'est pas ce qu'il demande.
Philippe,
donc décompresser le classeur Excel.
Qui à parlé de décompresser le classeur ?
Il faut bien lire les énoncés ouvrir l'archive cela donne un truc dans le genre...
000543.png

Ensuite c'est comme dans l'explorateur le fichier xml est dans le répertoire customUI
Voici le classeur avec le minimum vital les Callbacks et de quoi récupérer le ruban...

Valtrase

XLDnaute Occasionnel
quelle est la feuille "Settings" c'est pour que je comprenne de mon côté.
C'est une feuille que j'ai ajouté au projet elle me sert à stocker le Handle du ruban en cas de perte, pendant les tests et autres.
Contrairement à certains, je regroupe toutes les actions du ruban par type de contrôle, et pour éviter de surcharger mon module de Callbacks je crée des procédures dans un module standard ou je place mon code. (à chacun sa façon et je ne dénigre pas les autre.)
Par exemple le bouton customButton1 (on ne s'est pas foulé pour le nom) aura son code dans le module Ribbon et cela donne :
VB:
'@Description "Déclenchée lorsque vous cliquez sur le contrôle afin de l'utiliser."
Public Sub OnActionButton(Control As IRibbonControl)
    Select Case Control.ID
        Case "customButton1"
            ' // Ici appel de la procédure liée au bouton custom1
            Ribbon.CustomButtonProcédure
        
        Case "customButton2"
            MsgBox "Vous avez cliqué sur : " & Control.ID
        
        Case "customButton3"
            MsgBox "Vous avez cliqué sur : " & Control.ID
        
        Case Else
            Debug.Print "Case """; Control.ID; """" '; vbTab; " "; Control.Tag; """"      ' // cette ligne crée automatiquement la section case avec le nom du contrôle ;)
    End Select
End Sub

Dans le xml tous les boutons auront le même onAction exemple :
Code:
<button id="customButton1"
                            label="ConBold"
                            size="large"
                            onAction="OnActionButton"
                            getVisible="GetVisible"
                            getEnabled="GetEnabled"
                            imageMso="Bold"/>
Voilà, sinon rien à ajouter à ce qu'a dis Patrick si ce n'est que :
ensuite sans a minima l'onglet developpeur pour aller au moins dans le vba si tu dois travailler dessus
c'est mort aussi
On a toujours les touches miracles ALT+F11
Voilà bonne programmation.
 

Philippe17

XLDnaute Occasionnel
Supporter XLD
C'est une feuille que j'ai ajouté au projet elle me sert à stocker le Handle du ruban en cas de perte, pendant les tests et autres.
Contrairement à certains, je regroupe toutes les actions du ruban par type de contrôle, et pour éviter de surcharger mon module de Callbacks je crée des procédures dans un module standard ou je place mon code. (à chacun sa façon et je ne dénigre pas les autre.)
Par exemple le bouton customButton1 (on ne s'est pas foulé pour le nom) aura son code dans le module Ribbon et cela donne :
VB:
'@Description "Déclenchée lorsque vous cliquez sur le contrôle afin de l'utiliser."
Public Sub OnActionButton(Control As IRibbonControl)
    Select Case Control.ID
        Case "customButton1"
            ' // Ici appel de la procédure liée au bouton custom1
            Ribbon.CustomButtonProcédure
       
        Case "customButton2"
            MsgBox "Vous avez cliqué sur : " & Control.ID
       
        Case "customButton3"
            MsgBox "Vous avez cliqué sur : " & Control.ID
       
        Case Else
            Debug.Print "Case """; Control.ID; """" '; vbTab; " "; Control.Tag; """"      ' // cette ligne crée automatiquement la section case avec le nom du contrôle ;)
    End Select
End Sub

Dans le xml tous les boutons auront le même onAction exemple :
Code:
<button id="customButton1"
                            label="ConBold"
                            size="large"
                            onAction="OnActionButton"
                            getVisible="GetVisible"
                            getEnabled="GetEnabled"
                            imageMso="Bold"/>
Voilà, sinon rien à ajouter à ce qu'a dis Patrick si ce n'est que :

On a toujours les touches miracles ALT+F11
Voilà bonne programmation.
Je viens de voir le code du module " Callbacks "en rouge, ci-joint photo
 

Pièces jointes

  • Capture d'écran 2024-05-14 202852.png
    Capture d'écran 2024-05-14 202852.png
    57.7 KB · Affichages: 9

TooFatBoy

XLDnaute Barbatruc
Qu'entendez-vous par là ?
Quand Excel partage le fichier, est-ce que ces macros fonctionnent ?

Autrement dit, est-ce qu'on peut lancer un classeur partagé par Excel et avoir un Ruban constitué uniquement de fonctions personnelles (exit les Couper, Copier, Coller, etc.) ?
Le tout, sans que ça influe sur les autres classeurs ouverts simultanément.
 
Dernière édition:

Valtrase

XLDnaute Occasionnel
Bonjour,
Le seul problème que je peux voir c'est si le classeur est ouvert avec une version Web d'Excel, Ne pas oublier non plus que le ruban fonctionne avec des Callbacks donc du VBA, donc autorisations et tout le tintouin.
 

Statistiques des forums

Discussions
315 093
Messages
2 116 136
Membres
112 667
dernier inscrit
foyoman