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

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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. 🙂
 
Bonsoir

Par coïncidence, il m'est arrivé d'ouvrir un Ajouter ces jours

'See this page for more info
'http://www.rondebruin.nl/win/s2/win004.htm

'TIP:

'After you click on "Edit Menu" in the menu you can change the button image.
'Right click on the QAT and choose Customize Quick Access Toolbar.
'In the “Choose commands from” dropdown choose Macros and in the
'Customize Quick Access Toolbar dropdown choose "For My Add-in.xlam".
'Select the RDBDisplayPopUp macro and press the Modify button to change the icon.
 

Pièces jointes

Re, Bonsoir Simply

Ce que j'ai compris du souhait de MJ13, c'est de lister les noms des icônes disponibles dans la QAT
ImagemsoQAT.jpg
 
Re

@Simply
De mémoire, ton fichier (issu du site de Ron de Bruin?) liste toutes les FaceID (mais des versions précédentes)

Ici MJ13 étant sous Excel 2016, il s'agit de: ImageMso

Donc en jouant avec ceci (notamment le fichier: excelcontrols.xlsx)
Et en adaptant le code de MichelXLD (précédemment cité), on peut s'amuser 😉
(Dans un userform, mettre un controle Image, un label et un CommandButton)
Et voilà 😉
VB:
Private Sub CommandButton1_Click()
Dim NomControle As String, X
Dim Img As IPictureDisp
vQAT = Array("FileNewDefault", "FileOpenUsingBackstage", "FileSave", "FileSendAsAttachment", "FilePrintQuick", "PrintPreviewAndPrint", "Spelling", _
    "Undo", "Redo", "SortAscendingExcel", "SortDescendingExcel", "PointerModeOptions")
Randomize
X = Int((Rnd * UBound(vQAT)) + 1)
NomControle = vQAT(X)
'GetImageMso(NomControle, largeur, hauteur)
Label1.Caption = NomControle
Set Img = Application.CommandBars.GetImageMso(NomControle, 22, 22)
Set Image1.Picture = Img
End Sub
 
Re

Si vous voulez parcourir 3572 cellules pour voir presque 3572 icônes
1) mettre ce code dans un module
VB:
Sub InsertImage()
'Cette macro n'est qu'à lancer au début
Dim imgP As OLEObject
Set imgP = ActiveSheet.OLEObjects.Add(classtype:="Forms.Image.1", _
            Left:=160, _
            Top:=26, _
            Width:=32, _
            Height:=32)
imgP.Object.AutoSize = True
imgP.Object.BorderStyle = 0
End Sub
2) mettre ce code dans le code d'une feuille
(où vous aurez coller le contenu de la colonne du fichier Excel évoqué dans le message#7, en ayant pris soin de supprimer les lignes vides)
VB:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
Dim Img As IPictureDisp
If R.Column > 1 Or R.Row = 1 Or R.Count > 1 Then Exit Sub
Set Img = Application.CommandBars.GetImageMso(R.Text, 32, 32)
Set Image1.Picture = Img
[C1] = Application.CommandBars.GetScreentipMso(R.Text)
End Sub

NB: Je décline toute responsabilité en cas de survenue de tendinites ou de prémisses du syndrome du canal carpien 😉
 
Bon_jour

j'ai adapté un fichier que j'ai trouvé *(merci à l'inventeur) quand je me suis amusé à compléter mon ruban. Tu pourras y jeter un œil quand tu auras retrouvé ton calme.
upload_2018-5-23_13-4-38.png


*comme Stappple je suppose😉

Nota : j'ai zoomé la page pour mon écran. Il faudra peut-être une autre échelle pour avoir des images plus nettes.
 

Pièces jointes

Bonsoir le fil, le forum

Précisions demandées
@MJ13
Tu souhaites lister les icônes d'un QAT (par défaut) ou personnalisée?
1) Par défaut, il n'y a que : Enregistrer, Annuler et Rétablir (qui sont cochées)
NB: En tout cas, c'est ce qui se passe sur Excel 2013, quand on réinitialise la QAT.

2) Si tu souhaites la liste des icônes d"un QAT personnalisée, il suffit d'exporter la personnalisation
(voir ci-dessous)
01qat.jpg

Tu obtiens alors un fichier *.exportedUI (que tu peux ouvrir dans le bloc-notes)
Voici par exemple de fichier *.exportedUI

<mso:cmd app="Excel" dt="1" /><mso:customUI 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:control idQ="mso:Camera" visible="true"/><mso:control idQ="mso:PivotTableReport" visible="true"/><mso:control idQ="mso:GroupWorkbookViews" visible="true"/><mso:control idQ="mso:HideRibbon" visible="true"/><mso:control idQ="mso:Calculator" visible="true"/></mso:sharedControls></mso:qat></mso:ribbon></mso:customUI>

Il suffit ensuite de copier dans Excel* , les noms des contrôles avec la propriété visible=true
idQ="mso:HideRibbon" visible="true"

Par exemple dans la colonne A d'une feuille (paramétrée avec le code VBA du message#8

Par contre, si il s'agit de lister (par VBA) les icônes disponibles pour personnaliser la QAT (cf copie d'écran du message#4), je n'ai pas trouvé comment faire pour le moment.
 
Dernière édition:
Bonjour à tous

@Si...
Merci pour ce fichier qui nous montre les icônes disponibles.

@Staple1600
Merci pour ces derniers renseignements.

Je comprend mieux et en fait au départ mon but était de lister ma Barre d'outils Rapide pour la recopier sur d'autres PCs.

Mais, j'ai aussi des macros sur la barre d'outils rapide et vu que ce n'est pas toujours le même chemin, il faut que je refasse pour chaque icône pointant sur une macro vers le bon dossier et fichier qui sont souvent des fichiers .xlam.

Et vu que j'utilisais déjà la copie du fichier Excel.officeUI que je copiais d'un PC à un autre, il faudra que je teste d'ouvrir ce fichier OfficeUI, changer le chemin par rapport au nom d'utilisateur et le coller dans le nouveau PC.

Du coup avec le fichier de MichelXLD que tu as mis en lien et tes codes, j'ai fait un petit fichier.

Je place aussi ici un fichier qui me sert pour sauvegarder les fichiers OfficeUI d'un PC pour le transfert vers un autre PC (j'en profite aussi pour copier les .Xlam avec xcopy codes pour faire un fichier .bat dans l'onglet 1).
 

Pièces jointes

Dernière édition:
Bonsoir le fil, le forum

@MJ13
Du coup avec le fichier de MichelXLD que tu as mis en lien et tes codes, j'ai fait un petit fichier.
Pour être précis, il n'y avait pas de fichier de MichelXLD mais du code VBA (cf fil cité de la FAQ XLD)
Le fichier (ou plutôt le lien vers) provient de Microsoft
J'ai juste adapté le code de MichelXLD pour le faire fonctionner avec le fichier de Microsoft 😉


PS: J'ai regarde tes fichiers.
Sauf erreur de ma part, Excel.qat ne concerne qu'Office 2007, non ?
(cf lien support Microsoft)
Parce que sur mon PC (avec Excel 2013) nulle trace de Excel.qat
(Avec ton Excel 2016, tu as un Excel.qat?)

J'ai cherché par VBA de faire l'équivalent de : Importer un fichier de personnalisation mais je n'ai pas trouvé

Si j'ai bien compris, les deux lignes de ton*.bat (sur l'onglet Autre) servent à copier des addins (si présents)

Ton premier message parle de la QAT (QuickAccess Toolbar) mais dans ton code VBA, je ne vois de ligne qui copie de fichier Excel - Personnalisations.exportedUI ?
 
Re JM

En effet, les fichiers Qat étaient pour XL 2007, mais après, ils on développé le "modern UI", que je trouve un peu complexe à programmer.

Par contre Quick Acces Toolbar, c'est la barre d'outils rapide que je trouve très bien pour mettre les outils que tu utilises le plus. D'ailleurs sur le fichier UI, il est inscrit à un moment QAT. 🙂
 
Re

@MJ13
Oui mais tu parlais de diffuser une QAT sur différents PC, non ?
Je comprend mieux et en fait au départ mon but était de lister ma Barre d'outils Rapide pour la recopier sur d'autres PCs.
Le problème (si j'ai bien compris) c'est qu'il faut:
1) sur chaque PC, copier le fichier *.exportedUI (cela c'est OK avec xcopy ou autre)
2) puis faire (dans Excel): Options/Barre d'Outil Accès rapide/Importer le fichier de personnalisation (Pas OK)

J'ai beau chercher , je ne trouve pas le moyen d'automatiser cela (en VBA)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
738
Retour