bonjour à tous
je voudrais savoir si il est possible ce créer un customUI backstage pluri version sans que le customui soit ignoré
du à l'absence de certains élements
peut être dans le rel ou autres
merci pour vos retours
bonjour à tous
je voudrais savoir si il est possible ce créer un customUI backstage pluri version sans que le customui soit ignoré
du à l'absence de certains élements
peut être dans le rel ou autres
merci pour vos retours
Bonjour à tous,
@patmeziere, avez-vous tenté d'intégrer vos deux rubans dans votre fichier Excel ?
Assistant Ruban sait bien le faire.
Dans un premier temps faites une sauvegarde de votre fichier on ne sait jamais...
Dans l'onglet Ruban groupe Version ciblée. Sélectionner 2007, et faite votre ruban l'application vous indiquera les contrôles et attributs qui sont disponibles.
Vous enregistrez le classeur (Attention bien nommer le ruban 'customUI')
Ensuite vous sélectionner Nouveau dans le groupe Ruban XML. Sélectionner Office 2010 dans le groupe 2010, faite votre ruban .....
Lors de la sauvegarde nommer votre ruban 'customUI14'
Si vous éditer le classeur avec 7Zip par exemple vous aurez bien les deux rubans dans le répertoire customUI
Et les relations dans le dossier _rels
Je n'ai pas d’anciennes versions donc je ne peux pas faire le test, dites moi par retour si c'est bon.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?xml version="1.0" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/> <Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/> <Relationship Id="rId5" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml"/> <Relationship Id="rId4" Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility" Target="customUI/customUI14.xml"/> </Relationships>
Version customUI 2007:
Version customUI 2010 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad"> <ribbon> <officeMenu> <button id="button1" label="Valtrase tests" onAction="button1OnAction"/> </officeMenu> <tabs> <tab id="tab1" label="Valtrase tests"> <group id="group1" label="Affichages"> <button id="button2" onAction="button2OnAction" size="large" label="Voir plus"/> </group> </tab> </tabs> </ribbon> </customUI>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <tab id="tab1" label="Valtrase tests"> <group id="group1" label="Affichages"> <button id="button2" label="Voir plus" size="large" onAction="button2OnAction"/> </group> </tab> </tabs> </ribbon> <backstage> <button id="button1" label="Valtrase tests" onAction="button1OnAction"/> </backstage> </customUI>
Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)
Si vous avez trouvé réponse à votre question penser à la passer en :resolu: Vous avez aimé la discussion alors un :plusser: fait toujours plaisir.
Le savoir n'a de valeur que s'il est partagé.
La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry
Bonjour valtraze
en fait j'ai trouvé
bien sur que oui j'ai les deux customUI avec leur relationship
d'ailleurs mon creatorRibbonx créer les deux en standalone de façon a ce que le fichier choisisse celui qui correspond a l'application excel dans le quel il est démarré
sauf qu'en fait ça n'a rien a voir avec ça
d'une part par ce que je suis sur 2013 donc schémas 2009/07 donc le 2010(customUi14.xml) de la même manière que vous avec vos version récentes
du coup le switch standlaone il me sert pas a grand chose pour moi
il ne sert qu'au utilisateurs de excel2007
non la vrai raison c'est la différence (existence de control) dans les versions
le customui est ignoré si il y a une erreur et de mettre une balise visible a false qui n'existe pas en est une
mais pas démonté le vieux briscard j'ai cherché plus loin
et en fait j'ai trouvé
en fait on peut tous les mettre a condition de respecter un ordre et là le même code dans le custionUi backstage et valable pour toute les versions
tout simplement
il ne faut pas déroger a cet ordre là sinon ca va marcher sur certains et pas sur d'autres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <button idMso="FileSave" visible="false"/> <button idMso="FileSaveAs" visible="false"/> <button idMso="FileOpen" visible="false"/> <button idMso="FileClose" visible="false"/> <button idMso="ApplicationOptionsDialog" visible="false"/> <button idMso="FileExit" visible="false"/> <button idMso="HistoryTab" visible="false"/> <button idMso="OfficeFeedback" visible="false"/> <button idMso="ShareDocument" visible="false"/> <tab idMso="TabInfo" visible="false"/> <tab idMso="TabRecent" visible="false"/> <tab idMso="TabNew" visible="false"/> <tab idMso="TabPrint" visible="false"/> <tab idMso="TabShare" visible="false"/> <tab idMso="TabHelp" visible="false"/> <tab idMso="TabPublish" visible="false"/> <tab idMso="TabSave" visible="false"/> <tab idMso="TabOfficeStart" visible="false"/> <tab idMso="Publish2Tab" visible="false"/> <tab idMso="TabOfficeFeedback" visible="false"/> <tab idMso="PlaceTabHome" visible="false"/>
Hello,
je ne sais pas si cela peut servir mais j'ai d'autres indications concernant l'utilisation de ruban pour différentes versions d'Excel ( 2010, 2013, 2016 ou supérieure) :
customUI14.xml → utilisé par Excel 2010–2013
customUI.xml → utilisé par Excel 2016+
Excel choisit automatiquement le bon XML selon la version si il y a plusieurs xml dans le classeur :
Office ≤ 2013 lit customUI14.xml
Office ≥ 2016 lit customUI.xml
Si il n'y a qu'un fichier customUI14.xml dans le classeur , les versions d'Excel 2016+ l'utilisent.
Sinon il y a la possibilité du getVisible pour les éléments exemple :
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part <tab idMso="TabTest" getVisible="IsExcel2013"/>
CallBack :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Function IsExcel2013(control As IRibbonControl) As Boolean ' Excel 2010/2013 => Version < 16 IsExcel2013 = Val(Application.Version) < 16 End FunctionAmi calmant, J.PRibbon XML compatible multi-version (Excel 2010, 2013, 2016, 2019, 365, etc.).
Comportement d’Excel quand un élément du Ribbon est “inconnu”
Quand Excel lit le customUI.xml (ou customUI14.xml), il analyse le XML au chargement du fichier.
S’il rencontre un élément qu’il ne comprend pas (par exemple un contrôle ou un idMso inexistant dans cette version), voilà ce qui se passe :
Type de problème Ce qu’Excel fait Impact visible
idMso inconnu (ex. TabAccount sous Excel 2013) Il ignore silencieusement l’élément Rien ne s’affiche, pas d’erreur
Attribut inconnu (ex. getLabel sur un type de contrôle qui ne le supporte pas) Excel ignore simplement l’attribut Aucun message, mais le comportement par défaut s’applique
Élément mal formé (XML invalide) Excel n’affiche pas du tout ton customUI Le ruban personnalisé disparaît entièrement
Callback VBA manquant (fonction non trouvée) Excel charge le ruban, mais le contrôle ne réagit pas Pas d’erreur à l’ouverture, mais le clic ne fait rien
Propriété non supportée par la version (ex. visible="false" sur certains éléments Backstage de 2010) Excel ignore la propriété Élément toujours visible
Donc, aucun plantage dans la grande majorité des cas.
Excel préfère ignorer plutôt que planter.
Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko :zen:
bonjour jurassicpork
ça faisait un moment tiens
alors oui en théorie customUI ignore c'est ce qui est dit
sauf que dans le cas présent sur 2013 si je change l'ordre
tout les élément qui correspondent a vos version modernes d'excel annulent le customui du coup le backstage n'est pas traité
ca c'est faux par contreExcel choisit automatiquement le bon XML selon la version si il y a plusieurs xml dans le classeur :
Office ≤ 2013 lit customUI14.xml
Office ≥ 2016 lit customUI.xml
le customUi14 c'est pour 2010 et +
le customUi c'est pour 2007
mais en fait c'est pas le nom qui est important car la aussi j'ai testé avec un "customUi" schemas 2009/07 et ca marche aussi
mais je le repete ce n'etait pas la question puisque je suis sur 2013 et 2016 donc pour moi c'est 2009/07 donc le switch ne me sert à rien
Bonjour à tous,
AH ces AI il faut souvent passer derrière...
Çà ce n'est pas vrai non plus, tenter de définir l'attribut getText d'une zone de texte sur MyEditbox_GetText et omettez-le dans le module. PAN coup de pied de VBA...Imaginons maintenant que la procédure MyButton_GetVisible soit manquante que va-t-il se passer ?Callback VBA manquant (fonction non trouvée) Excel charge le ruban, mais le contrôle ne réagit pas Pas d’erreur à l’ouverture, mais le clic ne fait rien
Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)
Si vous avez trouvé réponse à votre question penser à la passer en :resolu: Vous avez aimé la discussion alors un :plusser: fait toujours plaisir.
Le savoir n'a de valeur que s'il est partagé.
La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry
Partager