Définir a quel moment se lance le ruban personalisé

Bonjour à tous, je travail actuellement sur la mise en place d'un ruban personnalisé et cela avance bien, toutefois le ruban ne se charge que lorsque plusieurs macro lancées au démarrage on terminées leur Job

Est il possible de définir dans le code ou le ThisWorkbook le lancement du ruban avant toute autre opération?

J'espère avoir été clair mais n'hésitez pas si ma question ne l'est finalement pas.

Merci d'avance et bonne journée à tous

Bonjour,

Le fichier correspondant aurait été le bien venu

Cordialement

Bonjour,

Mais le code de personnalisation du ruban en question se trouve-t-il dans un addin/votre classeur PERSONAL ou bien dans le code du fichier dont vous parlez ?

S'il se trouve dans le fichier que vous ouvrez, vous pouvez mettre l'appel à votre macro de personnalisation tout en haut de Workbook_Open.

Private Sub Workbook_Open()
  ' d'abord appel de la procédure de modification du ruban
  MaPersonalisationDuRuban
  ' reste du code
End Sub

Merci de vos réponses

@saboh12617 il n'y a pas de code propre à la personnalisation du ruban qui soit visible pour le lancement, il est intégré via officeribbonXEditor, le ruban personnalisé ne s'active qu'après que le code ai géré les fonctions d'ouverture (Gestion utilisateurs et menu principal) et j'aimerait qu'il s'active dès que le fichier s'ouvre (Le fichier est maintenant joint à ce fil de discussion)

@Jacky, je joint le fichier, comme évoqué sur un autre fil de discussion, le code est en cours d'optimisation.

Au lancement du fichier vous avez la possibilité de ne pas lancer le code en répondant non au msgbox d'ouverture, le ruban personnalisé désactivant le ruban classique Excell, accès au code par Alt F11

Bonne journée à tous

14forum.zip (638.97 Ko)

re-bonjour,

j'aimerait qu'il s'active dès que le fichier s'ouvre

dans ce cas je rejoins "à deux pieds" Saboh
en effet il suffit de l'appeler dès l'ouverture du fichier dans Worbook Open

Cordialement

Re,

Je ne connais pas trop l'outil officeribbonXEditor, mais de ce que j'ai pu lire ce n'est pas lié au VBA... donc difficile à piloter avec du VBA.

Perso quand j'ouvre votre fichier j'ai le ruban personnalisé qui s'affiche directement (fonctionnement attendu), mais c'est sans doute puisque j'ai désactivé les macros à l'ouverture. Je pense donc que votre problème est le suivant :

Quand vous ouvrez le fichier, la petite fenêtre qui demande de passer en mode automatique ou non se lance immédiatement (dès que le code VBA est chargé) alors même que d'autres éléments (comme le ruban) n'ont pas encore été chargés. Et une fois qu'elle s'affiche elle bloque/met en pause le chargement du classeur.

Pour corriger cela je vous propose 2 solutions :

1) Ajoutez DoEvents en haut du Sub Workbook_Open pour laisser au classeur le temps de finir de se charger avant d'afficher la MsgBox.

Private Sub Workbook_Open()
  DoEvents
  ' reste du code
End Sub

2) Si ce n'est pas suffisant, ajoutez un petit délai (à définir manuellement) avant de lancer la suite du code, par exemple 2 secondes :

Private Sub Workbook_Open()
  DoEvents
  Application.Wait Now + TimeValue("0:00:02")
  DoEvents
  ' reste du code
End Sub

A tester...

merci de votre interret, j'ai testé cette proposition et ma temps important sur l'option 2 le ruban n'apparait que lorsque toute la procédure de lancement est terminée.

En désactivant la question d'origine on a directement la gestion des droits utilisateur qui s'effectue et la fenêtre "typeaction" qui se lance, ce n'est que lorsque celle-ci et les question qui en découlent sont terminées que le ruban s'active.

Je pense en effet qu'il me faudrait une procédure permettant de le lancer moi même mais je ne trouve pas comment faire avec officeribbonXEditor ni comment l'appeler à l'ouverture

je vais chercher en e sens

Bonjour,

C'est du lourd hein !

Dans ce qui suit il est supposé que le classeur s'ouvre automatiquement dans la feuille d'accueil (parce qu'elle a été activée juste avant la dernière fermeture dans le BeforeClose)

... et non pas dans une feuille Utilisateur mais dans un UserForm.

créer une procédure ResetRibbon avec

Sub ResetRibbon()
   If Not (MonRuban Is Nothing) Then
      MonRuban.Invalidate
   End If
End Sub

Dans le WorkbookOpen mettre :

DoEvents
ResetRibbon
'Ensuite ta procédure de logging (il est supposé que cela se fait via un UserForm qui contiendra dans le Activate la suite des instructions relatives aux personnalisations)

Ne possédant pas 365 je ne pourrai pas aller plus loin dans ma participation.

A+

dans la procédure de reset j'ai juste dséfini la variable comme suit :

Dim MonRuban As IRibbonUI

mais malheureusement cela ne change rien j'ai essayé un doevent avant et après le reset du ruban mais il continue de se charger comme avant

ci dessous extrait des codes

'@procedure de lancement du ruban
Sub ResetRibbon()
Dim MonRuban As IRibbonUI
   If Not (MonRuban Is Nothing) Then
      MonRuban.Invalidate
   End If
End Sub

Private Sub Workbook_Open()

    'lancement du ruban
    DoEvents
   ResetRibbon
   DoEvents
    'procedure de gestion utilisateur
    initialisation.UtilisateursEtMenu
    lancement_ouverture
end sub

Tu n'as aucune raison d'avoir de macro à exécuter avant de lancer ton USF de logging et tant que l'utilisateur ne s'est pas identifié, il n'y a aucune raison que ton USF ne fasse autre chose qu'attendre.

Ce qui est quand même bizarre c'est que chez moi il passe bien ton ribbon.Tu es certain que tes Options de gestion de Confidentialité sont Ok ?

En particularité le "Accès approuvé..."

paramacro

A+

Encore merci pour le temps passé a chercher à solutionner mon problème, en effet ces options sont bien paramétrées.

Quand tu dis que le ribbon passe bien chez toi que fait il précisément? Chez moi il se lance en effet mais uniquement quand la fenêtre "typeaction" a terminé son Job, tan qu'elle est ouverte, le ribbon est celui standard de Excell et pas mon perso et ce que je cherche à faire c'est justement qu'il se lance dès l'ouverture du fichier avant même de charger quoi que ce soit d'autre

il se lance dès le départ chez toi?

Bonne journée

Bonjour à tous?

Malheureusement, la procédure Workbook_Open s’exécutera toujours avant le chargement du ruban. Donc impossible d'y travailler dessus, surtout avec des formulaires qui bloquent le déroulement de l'ouverture du classeur (demande de mot de passe etc..).

Une solution de contournement ?

  • Ne pas mettre de code bloquant dans Workbook_Open
  • Créer un procédure dans les Callbacks 'OnRibbonLoad' (Ou autre nom)
  • Faire un appel dans à cette procédure dans le fichier Xml
notepad c8rxnazfvm
  • Dans cette procédure vous pouvez sauvegarder le pointeur du ruban.
  • Faire appel à d'autres conditions d'ouvertures
  • Vous pourriez ajouter deux zones de textes dans le ruban.
    • Vérifier si l'identifiant Session est correct
    • Vérifier si l'identifiant Profile est correct
    • Ajuster le classeur en fonction des deux entrées

Prenez bien le temps de lire la documentation. Je vous conseille l'assistant ruban car il est bien abouti, pratique à utilser et relativement stable.

Je vois que vous utiliser Office 365 donc vous devez adapter le ruban à minimum Office 2010 et le nommer 'customUI14'

msaccess 7vb80wkttx

Pour le ruban :

  • Éviter en mode développement de cacher les onglets Excel
  • msaccess lpc5lbmcbf
  • Donc pas de startFromScratch de défini dans le ruban...

Voici un exemple de fichier avec les fameuses zones de texte et deux boutons qui ne sont là que pour afficher si le fichier et Bloqué ou pas.

<!-- Copyright Jean-Paul (Valtrase) 08/2025 -->
<!--Ruban Loréal-->
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="OnRibbonLoad">
    <ribbon startFromScratch="true">
        <!---->
        <tabs>
            <!--L'Oréal général-->
            <tab id="tabGeneral"
                 label="L'ORÉAL"
                 visible="true">
                <group id="grpUsers"
                       autoScale="true"
                       centerVertically="false"
                       label="Utilisateurs"
                       getVisible="GetVisible"
                       tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:="
                       image="General3">
                    <box id="box1"
                         boxStyle="vertical"
                         visible="true">
                        <labelControl id="labelControl1"
                                      enabled="true"
                                      visible="true"
                                      label="Identifiant session :"/>
                        <labelControl id="labelControl2"
                                      enabled="true"
                                      visible="true"
                                      label="Identifiant profil :"/>
                    </box>
                    <box id="box2"
                         boxStyle="vertical"
                         visible="true">
                        <editBox id="ebxSessionId"
                                 enabled="true"
                                 visible="true"
                                 screentip="Identifiant session."
                                 supertip="Renseigner votre identifiant session pour pouvoir vous connecter."
                                 onChange="OnChangeEditBox"
                                 getText="GetTextEditBox"
                                 tag="Key:=SessionID;DefaultValue:="
                                 sizeString="00000000000000"/>
                        <editBox id="ebxProfileId"
                                 enabled="true"
                                 visible="true"
                                 screentip="Identifiant de profil."
                                 supertip="Renseigner votre identifiant de profil pour pouvoir vous connecter."
                                 onChange="OnChangeEditBox"
                                 getText="GetTextEditBox"
                                 tag="Key:=ProfileID;DefaultValue:="
                                 sizeString="00000000000000"/>
                    </box>
                    <separator id="separator1"
                               visible="true"/>
                    <button id="btnLocked"
                            enabled="true"
                            getVisible="GetVisible"
                            image="General2"
                            label="Compte verrouillé"
                            onAction="OnActionButton"
                            screentip="Compte verrouillé."
                            supertip="Le compte est verrouillé entrer un identifiant de session et de profil valide, pour pouvoir accéder aux fonctionnalités.
 Si vous n'avez pas de compte faites une demmande aux administrateurs."
                            size="large"/>
                    <button id="btnUnlocked"
                            enabled="true"
                            getVisible="GetVisible"
                            image="General1"
                            label="Compte accessible"
                            onAction="OnActionButton"
                            screentip="Compte accessible."
                            supertip="Le compte est accessible, vous pouvez accéder à l'ensemble des fonctionnalités."
                            size="large"/>
                    <separator id="separator2"/>
                    <button id="btnContactAdmin"
                            size="large"
                            label="Contacter les administrateurs"
                            screentip="Contacter les administrateurs."
                            supertip=" Demander de l'aide ou faites une suggestion aux administrateurs."
                            image="Contact2.png"
                            onAction="OnActionButton"
                            enabled="true"
                            getVisible="GetVisible"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Pour ma part j'appelle les mêmes procédures pour chaque classe de contrôles. par exemple pour les boutons de commande ce sera : onAction="OnActionButton"

Ensuite je fais le tri avec un select case, je trouve cela plus simple (je suis vieux et j'ai du mal à retenir ...) exemple :

'@Description "Callback for Button-Click."
Public Sub OnActionButton(Control As IRibbonControl)

    Select Case Control.ID
        Case "btnContactAdmin"
            'Todo "Make something"

        Case Else
            ' // Si pas reconnu le select case du bouton sera créer et afficher dans la fenêtre d'exécution
            Debug.Print "Case """; Control.ID; """"
    End Select
End Sub

Bonne programmation...

P.S. J'ai oublié les images...

10images.zip (2.13 Ko)

Bonjour @Jean-Paul, le "Onribbonload" qui lance le reste c'est exactement ce que je cherchait, le ruban se lance et envoie le reste du code, mon IT bloque l'utilisation du officeribbonxeditor mais je regarde cela sur mon PC perso dès ce WE

Un grand merci également pour tous ces nouveaux conseils

Petite question subsidiaire concernant les images, j'ai beaucoup de mal à trouver des images perso pour le ruban qui soient libre de droit, avez vous une sorce interessante?

Merci encore et bonne journée

Re,

Pour les icônes je vais sur Icones8

Je sélectionne Icônes:

firefox q5descb4wk

Je fait défiler et je sélectionne Windows (Ou parfois Andrïde)

firefox hzyesvl6aj

Si vous voulez des icônes Remplies (Filled) Sélectionner Windows 11 sinon cliquer sur Afficher les 6 styles en dessous.

firefox 0vewgpyt5i

Moi j'utilise Windows 10 tout court.
Faire la recherche dans la barre de recherche en haut. Parfois si pas de résultat faire un test en lui parlant en Anglais.

En regardant de plus près vous verrez qu'il y a tout un tas de modifications possibles et le téléchargement sur plusieurs tailles.

Ici un dossier avec une icône auxiliaire.

firefox xoh2gubg2l

Le même dossier avec une autre icône auxiliaire.

firefox hwdfxibchu

Amusez-vous bien...

P.S. J'ai remarqué à l'utilisation que selon le thème d'Excel sélectionné les images s'affichaient mal, par défaut j'utilise un gris clair qui passe sur tous les thèmes. Exemple RGB(212, 212, 212).

explorer wklolnrohl

Super, merci beaucoup pour toutes ces informations, bonne journée

Le travaille avance, j'ai envoyé mon code dans la procédure de lancement du Ruban, malheureusement ce code semble être trop bloquant, le ruban ne s'affiche qu'après avoir effectuer l'ensemble du code.

Pour le ruban lui même, je me suis concentré pour le moment sur la partie graphique afin de commencer à maitriser ces instructions nouvelles pour moi, je verrais les callback ensuite, j'ai n'ai donc mi aucun appel de procédure, un grand merci à @Jean-Paul pour son aide avec de bonnes base, pour le moment 2 ponts bloquants :

je ne parviens pas à afficher une image sur le libellé des groupes

je ne parviens pas à centrer le bouton "boutonverouillé" sous l'ensemble des deux lignes de labelcontrol et editbox, j'ai pourtant mis cet ensemble dans un "boxprincipale", Pb de hauteur totale?

ci dessous le code pour le ruban personalisé et ci joint le fichier avec avancement à ce jour

Merci d'avance de votre aide et bonne journée à tous

6forum.zip (719.45 Ko)
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" 
          onLoad="Ouverture_Ruban">
 <!--mettre "true" pour masquer tous les autres onglets standards-->
    <ribbon startFromScratch="true">
        <tabs>
            <!-- Crée un onglet personnalisé: -->
            <!-- L'onglet va se positionner automatiquement à la fin du ruban. -->
            <!-- Utiliser insertAfterMso="NomOngletPrédéfini" pour préciser l'emplacement de l'onglet -->
            <tab id="Outil_validation" label="Outil de Validation" visible="true">
                <group id="Général" autoScale="true" centerVertically="false" label="Général" visible="true" image="General3">
                    <button id="Contact" enabled="true" visible="true" label="Contact Gestionnaire" screentip="Génère un mail aux administrateurs" 
                    image="contact" supertip="Demandez de l'aide ou faites une suggestion aux administrateurs" size="large" onAction="clic_sur_bouton" />
                    <button id="Quitter" enabled="true" visible="true" label="Quitter Application" screentip="Permets de sortir de l'application" 
                    image="Quitter" supertip="Pour sortir proprement avec remise en état de tous les paramètres" size="large" onAction="clic_sur_bouton" />
                </group>
                <group id="Session" autoScale="true" centerVertically="false" label="Générateur de session" image="General3">
                    <box id="boxprincipale" boxStyle="vertical" visible="true">
                        <box id="box1" boxStyle="vertical" visible="true">
                            <labelControl id="LbIdSession" enabled="true" visible="true" label="Identifiant session :"/>
                            <labelControl id="LbIdProfil" enabled="true" visible="true" label="Identifiant profil :"/>
                        </box>
                        <box id="box2" boxStyle="vertical" visible="true">
                            <editBox id="SaisieNomSession" enabled="true" visible="true" screentip="Identifiant session." supertip="Renseigner votre identifiant session pour pouvoir vous connecter."/>
                            <editBox id="SaisieNomProfil" enabled="true" visible="true" screentip="Identifiant de profil." supertip="Renseigner votre identifiant de profil pour pouvoir vous connecter."/> 
                        </box>
                        <button id="Boutonverouille" enabled="true" image="General2" label="Dévérouiller" visible="true"
                        screentip="Compte verrouillé." supertip="La session de simulation est verrouillée, entrez un identifiant de session et de profil valide puis cliquez sur ce bouton pour pouvoir accéder aux fonctionnalités du profil choisi. Si vous n'avez pas de compte faites une demmande aux administrateurs." size="normal"/>
                    </box>                                       
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Bon, j'ai trouvé un solution temporaire pour que l'ensemble soit plus propre visuellement mais ce n'est malheureusement pas parfaitement aligné, j'ai utilisé l'alignement horizontal, il semble qu'avec l'alignement vertical il ne veuille pas mettre 3 élément de hauteur sur le ruban @Jean-Paul avez vous déjà eu ce soucis?

le code donne cela :

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" 
          onLoad="Ouverture_Ruban">
 <!--mettre "true" pour masquer tous les autres onglets standards-->
    <ribbon startFromScratch="true">
        <tabs>
            <!-- Crée un onglet personnalisé: -->
            <!-- L'onglet va se positionner automatiquement à la fin du ruban. -->
            <!-- Utiliser insertAfterMso="NomOngletPrédéfini" pour préciser l'emplacement de l'onglet -->
            <tab id="Outil_validation" label="Outil de Validation" visible="true">
                <group id="Général" autoScale="true" centerVertically="false" label="Général" visible="true" image="General3">
                    <button id="Contact" getEnabled="activeBoutonContact" visible="true" label="Contact Gestionnaire" screentip="Génère un mail aux administrateurs" 
                    image="contact" supertip="Demandez de l'aide ou faites une suggestion aux administrateurs" size="large" onAction="clic_sur_bouton" />
                    <button id="Quitter" getEnabled="activeBoutonQuitter" visible="true" label="Quitter Application" screentip="Permets de sortir de l'application" 
                    image="Quitter" supertip="Pour sortir proprement avec remise en état de tous les paramètres" size="large" onAction="clic_sur_bouton" />
                </group>
                <group id="Session" autoScale="true" centerVertically="false" label="Générateur de session" image="General3">
                    <box id="box1" boxStyle="horizontal" visible="true">
                        <labelControl id="LbIdSession" getEnabled="activeLabelSession" visible="true" label="IdentifiantS :"/>
                        <editBox id="SaisieNomSession" getEnabled="activeSaisieSession" visible="true" screentip="Identifiant session." supertip="Renseigner votre identifiant session pour pouvoir vous connecter."/>
                    </box>
                    <box id="box2" boxStyle="horizontal" visible="true">
                    <labelControl id="LbIdProfil" getEnabled="activeLabelProfil" visible="true" label="IdentifiantP :"/>
                    <editBox id="SaisieNomProfil" getEnabled="activeSaisieProfil" visible="true" screentip="Identifiant de profil." supertip="Renseigner votre identifiant de profil pour pouvoir vous connecter."/>     
                    </box>
                    <box id="box3" boxStyle="horizontal" visible="true">
                    <button id="BoutonVerouille" getEnabled="activeBoutonVerouillé" image="General2" label="Dévérouiller simulation" visible="true" size="normal"
                    screentip="Compte verrouillé." supertip="La session de simulation est verrouillée, entrez un identifiant de session et de profil valide puis cliquez sur ce bouton pour pouvoir accéder aux fonctionnalités du profil choisi. Si vous n'avez pas de compte faites une demmande aux administrateurs."/>   
                    </box>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Pour l'image des groupe, cet attribut n'est pas disponible sur l'élément group même si Office RibbonX editor accèpte la commande "image" sur un groupe.

Niveau code, l'activation / désactivation de chaque élément est en place

Je bute encore sur le changement d'image d'un bouton en fonction d'un état, j'ai trouvé cette possibilité avec une image externe mais pas avec une image interne....

Bon ça avance doucement

ci joint le fichier avec l'avancement actuel, bonne soirée à tous

13forum.zip (725.86 Ko)

Bonjour à tous,

@Patrick Petits retours sur votre code.

Quand vous dites :

Pour l'image des groupe, cet attribut n'est pas disponible sur l'élément group même si Office RibbonX editor accèpte la commande "image" sur un groupe.

Ce n'est pas tout à fait juste, l'image est acceptée, mais visible que si le ruban est rétréci. voici un exemple

Ruban complet :

excel 0ryan5vhm8

Ruban rétréci :

excel lasmyhysyk

S'il vous plait, si vous ne voulez pas avoir de problème pas d'accents sur les ID de contrôles et pour la portabilité du code je dirais pas d'accents du tout.

Le ruban accepte trois lignes de contrôles avec une taille standards si vous en mettez quatre cela ne fonctionnera pas comme voulu.

Je bute encore sur le changement d'image d'un bouton en fonction d'un état, j'ai trouvé cette possibilité avec une image externe mais pas avec une image interne....

Pour une image interne, cela ne fonctionne qu'avec les images MSO, pas les images personnelles.

Merci @Jean-paul pour toutes ces subtilités, je comprends mieux pourquoi associer potentiellement une image à un groupe.

Noté pour les accents, je vais corriger

pour les images je vais retravailler l'ensemble je ne parviens pas à mettre trois lignes mais cela est probablement lié au fait que ces lignes sont intégrées dans un box.

J'intègre toutes ces subtilités et la prise en main du reste du code pour lancer les actions et récupérer le contenu des "editbox", je préfère me baser sur votre exemple mais sans le recopier tel quel afin de bien comprendre comment le maitriser

je ne manquerait pas de vous tenir informé, encore un grand merci et bon Week end

Re,

En règles générales il vaut mieux selon moi regrouper les fonctions et procédures par taches dans vos modules, Par exemple tous les modules"macroDimmensionner..." devrait être regroupés en un seul. De même Ouverture_Ruban devrait faire parti de votre Module Callbacks ( Ou autre nom).

Prenez l'habitude de préfixer vos procédures du nom du module qui les contient. Cela facilitera la lecture à ceux qui ne sont pas dans votre tête...

Voici un petit exemple avec trois lignes dans les box (Qui doivent être en vertical) Une pour les labels un autre pour les zones de texte. Jouez sur l'attribut Size des zone de texte pour augmenter leurs dimensions. On peut aussi ajouter par exemple un bouton qui ne sert à rien si ce n'est qu'afficher le status du compte utilisateur. Pour cela il faudra agir avec :

  • Le getLabel du bouton pour changer son Label (Attention il faut désactiver l'attribut label...)
  • le getImage du bouton pour charger l'image activé ou désactivé (avec la fonction LoadPicture.)
<!-- Copyright Jean-Paul (Valtrase) 08/2025 -->
<!--Ruban Loréal-->
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="OnRibbonLoad">
    <ribbon>
        <!---->
        <tabs>
            <!--L'Oréal général-->
            <tab id="tabGeneral"
                 label="L'ORÉAL"
                 visible="true">
                <group id="grpUsers"
                       autoScale="true"
                       centerVertically="false"
                       label="Utilisateurs"
                       getVisible="GetVisible"
                       tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:="
                       image="General3">
                    <button id="btnContactAdmin"
                            size="large"
                            label="Contacter les administrateurs"
                            screentip="Contacter les administrateurs."
                            supertip=" Demander de l'aide ou faites une suggestion aux administrateurs."
                            image="Contact2.png"
                            onAction="OnActionButton"
                            enabled="true"
                            getVisible="GetVisible"/>
                    <separator id="separator1"
                               visible="true"/>
                    <box id="box1"
                         boxStyle="vertical"
                         visible="true">
                        <labelControl id="labelControl1"
                                      enabled="true"
                                      visible="true"
                                      label="Identifiant session :"/>
                        <labelControl id="labelControl2"
                                      enabled="true"
                                      visible="true"
                                      label="Identifiant profil :"/>
                        <labelControl id="labelControl3"
                                      enabled="true"
                                      visible="true"
                                      label="Status du compte :"/>
                    </box>
                    <box id="box2"
                         boxStyle="vertical"
                         visible="true">
                        <editBox id="ebxSessionId"
                                 enabled="true"
                                 visible="true"
                                 screentip="Identifiant session."
                                 supertip="Renseigner votre identifiant session pour pouvoir vous connecter."
                                 onChange="OnChangeEditBox"
                                 getText="GetTextEditBox"
                                 tag="Key:=SessionID;DefaultValue:="
                                 sizeString="00000000000000000000"/>
                        <editBox id="ebxProfileId"
                                 enabled="true"
                                 visible="true"
                                 screentip="Identifiant de profil."
                                 supertip="Renseigner votre identifiant de profil pour pouvoir vous connecter."
                                 onChange="OnChangeEditBox"
                                 getText="GetTextEditBox"
                                 tag="Key:=ProfileID;DefaultValue:="
                                 sizeString="00000000000000000000"/>
                        <button id="btnAccountStatus"
                                enabled="true"
                                getVisible="GetVisible"
                                image="General2"
                                onAction="OnActionButton"
                                screentip="Compte verrouillé."
                                supertip="Le compte est verrouillé entrer un identifiant de session et de profil valide, pour pouvoir accéder aux fonctionnalités.
 Si vous n'avez pas de compte faites une demmande aux administrateurs."
                                getLabel="GetLabel"
                                size="normal"/>
                    </box>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

et le résultat :

excel 9ndt4iaqrp

Bonne programation.

Rechercher des sujets similaires à "definir quel moment lance ruban personalise"