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.
 

Simply

XLDnaute Occasionnel
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

  • My Add-in.zip
    30.9 KB · Affichages: 45

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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
 

Si...

XLDnaute Barbatruc
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.


*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

  • Office2007 IconsGallery.xlsm
    65.5 KB · Affichages: 64

Staple1600

XLDnaute Barbatruc
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)

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

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:

MJ13

XLDnaute Barbatruc
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

  • Sauvegarde_Barre_Outils_MJ.xlsm
    27.9 KB · Affichages: 43
  • Excel_controls_MichelXLDByJM.xlsm
    428.8 KB · Affichages: 44
Dernière édition:

Staple1600

XLDnaute Barbatruc
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 ?
 

MJ13

XLDnaute Barbatruc
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.
 

Staple1600

XLDnaute Barbatruc
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)
 

Discussions similaires

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