Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Lister la liste des icônes de la barre d'accès rapide

MJ13

XLDnaute Barbatruc
Bonjour à tous

Je recherche le moyen en VBA de lister les icônes de la barre d'outils d’Accès rapide.

Si vous avez une idée.
 

MJ13

XLDnaute Barbatruc
Bonjour JM

Tu as à peu près compris , le fichier Sauvegarde_Barres_Outils_Mj.xlsm permet de sauvegarder les Barres d'outils d'Office présentes dans le répertoire idoine.

Ensuite le .bat permet de copier les Addins (les .xlam) et les Barres d'Outils vers un lecteur ou une clé USB pour les recopier vers un autre PC.

Enfin, j'ai testé ce matin, en prenant le fichier Excell.OfficeUI, je l'ouvre avec un éditeur de texte, je modifie en remplaçant le nom de l'utilisateur par le nom de l'utilisateur du PC qui recevra le fichier et le tour est joué, cela prend moins d'une minute à faire.

Donc maintenant le VBA n'est plus trop utile. Reste à bien gérer tous ces fichiers.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

@MJ13
Tu es bien sous Excel 2016?
Moi suis sous Excel 2013 et je n'ai pas de fichier avec extension *.OfficeUI
(voir le message#11)
Et dans le fichier *.exportedUI que j'ai mis en exemple, il n'y pas de nom utilisateur ?!?
Sur mon PC, pour la personnalisation soit effective (je parle de la seule QAT), je dois faire manuellement: Importer un fichier de personnalisation.

Par quelle manip tu as obtenu au départ ton fichier Excel.OfficeUI ?

NB: Quand tu parles de recopier les BO et addins, c'est sur des versions d'Office supérieur ou égale à 2013 ?
 

MJ13

XLDnaute Barbatruc
Re JM

Je travaille sous Excel 2007 Famille (ancien avec 3 Licences), 2010 et 2016 (Office 365), j'ai une licence XL2013 que je n'ai pas encore utilisé. Mais pour XL2007, je n'ai pas encore testé le fichier .Qat qui ne doit pas réagir comme à partir d'XL2010.

J'utilise sur un Xl 2010 pour mon PC principal que je passe sur un Xl2016 sur d'autres PCs.

Pour le nom d'utilisateur, c'est lié aux macros attachées sur la barre d'Outils rapide qui pointent sur des fichiers .xlam et un fichier sur le bureau\Bureau.

Par quelle manip tu as obtenu au départ ton fichier Excel.OfficeUI ?

Je le copie via mon .bat que je copie sur une clé USB par exemple pour le transfert vers un autre PC. Puis je le copie avec un autre .bat vers le nouveau PC. Puis, sur ce nouveau PC, je renomme le fichier Excel.OfficeUI en Excel.OfficeUI.txt, je l'ouvre, je change le nom de l'utilisateur et j'ouvre Excel qui prend normalement en compte les modifications.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@MJ13
Ce que je veux dire, c'est que si sur ton PC (avec Excel 2016), tu sauvegardes Excel.OfficeUI puis que tu le supprimes et que tu ouvres Excel, est-ce qu'Excel créé alors un Excel.OfficeUI ?
Car j'ai beau chercher et rechercher au tréfonds de mon disque dur, aucune trace d'un fichier nommé Excel.OfficeUI.
D'où mes questions
 

MJ13

XLDnaute Barbatruc
Re JM

Wait, je vérifie.

Sur excel 2016, je viens de réinitialiser la barre d'outils rapide et je n'ai plus rien et il m'a bien créer un fichier Excel.officeUI de 15 Ko.

Sinon, as-tu testé avec mon fichier Sauvegarde Barre Outils en cliquant sur le 1?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@MJ13
Je viens enfin de réussir à avoir un Excel.OfficeUI !!!
Mais sur Excel 2013, celui-ci n’apparaît que si c'est le ruban qui est personnalisé (et non pas la QAT)
Tu peux faire le test suivant, stp ? (sur XL 2016)
Situation de départ
Aucun fichier Excel.OfficeUI sur le PC
1) Tu personnalises le ruban en ajoutant un onglet
(Fichier/Options/Personnaliser le ruban/Nouvel onglet/Nouveau groupe)
Là normalement Excel créé un fichier Excel.OfficeUI (dans C:\Users\nomuser\AppData\Local\Microsoft\Office)
Voici celui créé lors de mon test

<mso:customUI xmlns:x1="Microsoft.Mashup.Client.Excel" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
<mso:ribbon><mso:qat/>
<mso:tabs><mso:tab id="mso_c1.141749A4" label="Test A" insertAfterQ="x1:idTabSearch"><mso:group id="mso_c2.141749A4" label="A" autoScale="true">
<mso:control idQ="mso:AlignCenter" visible="true"/></mso:group><mso:group id="mso_c3.1417CC60" label="B" autoScale="true">
<mso:control idQ="mso:FormatCellsDialog" visible="true"/></mso:group><mso:group id="mso_c4.1417E893" label="C" autoScale="true">
<mso:control idQ="mso:ConditionalFormattingMenu" visible="true"/>
</mso:group></mso:tab></mso:tabs></mso:ribbon></mso:customUI>
NB: Tu remarqueras qu'aucun nom d'utilisateur n'y apparaît
Tu modifies ensuite la QAT

2) Tu exportes les personnalisations (tu obtiens donc un fichier *.exportedUI)

3) Tu réinitialises (Fichier/Options/Personnaliser le ruban/Réinitialiser toutes les personnalisations
Dans ce cas, le fichier Excel.OfficeUI est automatiquement effacé

4) Ensuite tu fais Fichier/Options/Personnaliser le ruban/Importer un fichier de personnalisation
Un fichier Excel.OfficeUI est alors recréé.

NB: Problème constaté
1) Tu modifies la QAT (sans modifier le ruban) et tu exportes pour obtenir un *.exportedUI
Tu réinitialises

2) Tu modifies le ruban puis tu importes le *.exportedUI
Normalement on s'attend à ce que cette importation ne modifie que la QAT
Or si la QAT est bien modifée (selon les personnalisations contenues dans le *.exportedUI), on perd alors la personnalisation du ruban effectuée au point 1
 

MJ13

XLDnaute Barbatruc
Bonjour à tous

@JM

J'ai fait les tests comme tu l'as préconisé et j'ai eu les mêmes conclusions que toi.

Sinon, voici les tests que j'ai fait avant tout:

1)Suppression de Excel.OfficeUI dans C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office

2 )Ouverture d’Excel et fermeture d’excel

=>Pas de Excel.OfficeUI dans C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office

3)Ouverture D’Excel et rajout dans la QAT (Barre doutils d’accès rapide) de l’icône Impression rapide

4)Fermeture d’excel

=> Création de Excel.officeUI dans C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office

Conclusion : dès qu’on modifie les Barres d’outils et le ruban contenant les Outils, il se crée un fichier dans Excel.officeUI dans C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office

5) Après suppression de Excel.OfficeUI Ajout de l’onglet Développeur dans le ruban

6) Reprise de de mon ancien Excel.officeUI dans C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office

Après Fermeture d’excel : Création de Excel.officeUI dans C:\Users\NomUtilisateur\AppData\Local\Microsoft\Office

Donc au final quand tu exportes le fichier OfficeUI, dès que tu l'importes, il supprime tous les anciennes personnalisations pour le remplacer par ton fichier exported.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum, MJ13

@MJ13
Merci pour ton retour de tests.
J'ai refais les tests et effectivement (mais cela n'était pas le cas auparavant sur mon PC) qu'on personnalise le ruban ou la QAT, un fichier Excel.OfficeUI est créé.
Par contre sur mon PC, il n'y a pas de nom utilisateur d'inscrit dans Excel.OfficeUI
Chez toi, oui ?
(Ce serait donc spécifique à Excel 2016 ? ou il faut qu'il y ait plusieurs comptes* sur le PC ?)
(*Paramètres Windows/Comptes)
Sur mon PC (W10), je n'ai créé qu'un seul compte.
 

Staple1600

XLDnaute Barbatruc
Re

@MJ13
Je pensais que tu parlais d'une propriété style: Application.UserName
Ci-dessous contenu de mon Excel.OfficeUI de test (selon les indications de ton dernier message)


<mso:customUI xmlns:x1="http://schemas.microsoft.com/office/2009/07/customui/macro" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
<mso:ribbon><mso:qat><mso:sharedControls>
<mso:control idQ="mso:FileNewDefault" visible="false"/><mso:control idQ="mso:FileOpenUsingBackstage" visible="false"/>
<mso:control idQ="mso:FileSave" visible="true"/>
<mso:control idQ="mso:FileSendAsAttachment" visible="false"/>
<mso:control idQ="mso:FilePrintQuick" visible="false"/>
<mso:control idQ="mso:PrintPreviewAndPrint" visible="false"/>
<mso:control idQ="mso:Spelling" visible="false"/>
<mso:control idQ="mso:Undo" visible="true"/><mso:control idQ="mso:Redo" visible="true"/>
<mso:control idQ="mso:SortAscendingExcel" visible="false"/>
<mso:control idQ="mso:SortDescendingExcel" visible="false"/>
<mso:control idQ="mso:PointerModeOptions" visible="false"/>
<mso:button idQ="x1:C:_Users_USERNAME_Documents_2705Test.xlsm_test_1" visible="true" label="test" imageMso="MagicEightBall" onAction="C:\Users\USERNAME\Documents\2705Test.xlsm!test"/>
</mso:sharedControls></mso:qat></mso:ribbon></mso:customUI>

Donc en fait tu parlais de ces deux "string" où effectivement un nom apparaît ?
le path "bizarre" complet du classeur contenant la macro
"x1:C:_Users_USERNAME_Documents_2705Test.xlsm_test_1"
et
le path classique complet du classeur avec le nom de la macro
onAction="C:\Users\USERNAME\Documents\2705Test.xlsm!test"

NB: J'ai remplacé le nom réel par USERNAME.
 

Staple1600

XLDnaute Barbatruc
Re

@MJ13
Oui mais dans Excel 2016, le contenu de Excel.OfficeUI est identique?
Ou il y a en plus une "propriété" Nom qui n’apparaît pas Excel 2013?
Je dis cela car c'est ce que tu écrivais qui me posait question

Donc tu remplaces les chemins quand présence d'une macro ou plus sur la QAT?
 

MJ13

XLDnaute Barbatruc
Re JM

Oui, c'est comme toi, je ne pense pas qu'ils aient changé grand chose entre XL2013 et XL2016.

De plus quand tu vois cette référence dans le code: "", c'est que c'est compatible depuis XL2010.

Bon, je pense qu'on a fait le tour de la question.

Bon Week-End.
 

Staple1600

XLDnaute Barbatruc
Re

@MJ13
Non, il reste une question en suspens si on lit le titre de ta discussion littéralement comme je l'ai fait au départ
(voir mes message#4 et #11)
Je n'arrive toujours pas:
1) à identifier le nom de la boite de dialogue qui 'affiche quand on clique sur Modifier
2) à récupérer la liste des icônes* disponibles qui s'affiche dans cette boite de dialogue
(leurs noms, leurs numéros)
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…