Documentation Excel pour toolbar spécifique

Hello tout le monde :)

Je vous met une petite explication rapide, au bureau notre logiciel nous sort des exports excel qui sont pour peu dire vraiment pas beau.

J'ai donc travaillé sur une macro permettant de retraiter tous nos fichiers exportés de ce logiciel afin de faire une mise en forme plus propre.

A ce moment le process fonctionne comme suit :

1) Exporter et enregistrer le fichier exporté du logiciel

2) Ouvrir mon fichier comportant la macro

3)Lancer la macro qui va ouvrir l'explorateur windows, sélectionner le fichier exporté du logiciel

4) La macro transfère alors les données de l'export dans le fichier et effectue les retraitements.

Afin de simplifier ce process, j'ai l'idée d'inclure cette macro dans la toolbar excel qui s'ouvrirait alors de base dès que l'on ouvre excel quel que soit le fichier.

Arrivé à ce point, j'ai vu que les complément et toolbar se gérait en codage XML, j'ai un peu de mal à trouver de la documentation ou des projets similaires chez notre ami google. Quelqu'un aurait de la doc pour savoir comment inclure une macro dans une toolbar que je pourrai installer sur mon poste et celui de mes collègues ?

Par ailleurs si certains sont intéressés par la macro de récupération de données d'un autre fichier en le sélectionnant dites moi et je vous l'enverrai, elle est bien pratique :)

Merci :)

Bonjour

Il faut

  • utiliser Custom UI Editor pour construire ton onglet (on n'utilise plus de toolbars mais des onglets du ruban)
  • paramétrer un fichier de type xlam (macro complémentaire ou complément) contenant le code du traitement mais qui en plus chargera la barre à son ouverture et la déchargera à sa fermeture

Cet xlam est ensuite distribué à tous qui soit le chargent sur leur poste une fois pour toutes, soit l'ouvrent quand nécessaire

Salut le fil,

Pour la création de ton ruban et la récupération des Fichiers XML et CallBack le meilleur programme que j'ai trouvé, c'est IDBE RibbonCreator très facile surtout pour l'intégration des images MSO, les textes d'infos bulles pour les billes comme moi qui ne connaissent pas les codes Xml pour les accents etc...

Bonne prog...

Hello,

Top, je vais regarder ca !

Merci beaucoup j'avais un peu de mal à trouver les premières orientations !

Re,

Concernant IDBE Ribbon Creator ATTENTION si tu sélectionnes un classeur contenant des macros, il va tout simplement les supprimer. Il est prévu pour démarrer avec un ficher de base.

Sinon pour un ruban sans images personnalisées voici la marche à suivre :

1 - Sauvegarder le classeur on ne sait jamais.

2 - Ouvrir l'archive du classeur avec WinZip ou 7Zip (Clic droit ouvrir l'archive)

3 - Ouvrir le fichier .rels dans le dossier _rels en dehors de l'archive et ajouter cette référence dans les relations. (bien noter le chemin de Target)

<Relationship Id="R7f19f805bfb641b9"
Type="http://schemas.microsoft.com/office/2007/relationships/ui/extensibility"
Target="customUI/customUi14.xml"/>

4 - Ajouter un dossier nommé customUI

5 - Y coller le fichier customUI14.xml (voir dessous)

6 - Voici un exemple de fichier customUI avec deux boutons large :

<!-- Created with IDBE RibbonCreator 2019 (Version: 1.1005) -->
<!--                 http://www.RibbonCreator2019.de               -->
<!-- Exemple par Jean-Paul (Valtrase)-->
<!-- Nom du fichier customUI14       -->
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
          onLoad="OnRibbonLoad">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="tab0"
                 label="Exportation"
                 getVisible="GetVisible">
                <group id="grp0"
                       autoScale="false"
                       centerVertically="false"
                       label="Système"
                       getVisible="GetVisible"
                       tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:="
                       imageMso="MacroRun">
                    <button id="btnExport"
                            size="large"
                            label="Exporter"
                            screentip="Exporter"
                            supertip="Lance la macro d'exportation."
                            imageMso="Export"
                            tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:="
                            onAction="OnActionButton"
                            getVisible="GetVisible"
                            getEnabled="GetEnabled"/>
                    <button id="btnPrint"
                            size="large"
                            label="Imprimer"
                            screentip="Imprimer"
                            supertip="Imprimer la feuille courante."
                            imageMso="FilePrint"
                            tag="RibbonName:=;inMenu:=;CustomTagValue1:=;CustomTagValue2:=;CustomTagValue3:=;CustomPicture:=;CustomPicturePath:="
                            onAction="OnActionButton"
                            getVisible="GetVisible"
                            getEnabled="GetEnabled"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

Ensuite il reste le module des Callbacks à insérer dans ton classeur

7 - Insérer un module nom Callbacks

8 - Y copier coller du code ci-dessous :

Public objRibbon As IRibbonUI
Public bolEnabled As Boolean
Public bolVisible As Boolean

' // La fonction getEnabled s'applique aux contrôles command, button, checkBox, comboBox, dropDown, dynamicMenu, editBox, gallery, labelControl, menu, splitButton, toggleButton.
' // Elle spécifie une valeur booléenne qui indique si le contrôle doit être activé (true ou 1) ou désactivé (false ou 0).
Public Sub GetEnabled(Control As IRibbonControl, ByRef Enabled)
    Select Case Control.id

        Case "btnPrint", "btnExport"
            Enabled = bolEnabled

        Case Else
            Enabled = True
    End Select
End Sub

' // La fonction getVisible s'applique aux contrôles tabSet, tab, group, box, button, buttonGroup, checkBox, comboBox, dropDown, dynamicMenu, editBox, gallery, labelControl, menu, separator, splitButton, toggleButton.
' // Elle renvoie une valeur booléenne qui indique si le contrôle est visible (true) ou masqué (false).
Public Sub GetVisible(Control As IRibbonControl, ByRef Visible)
    Select Case Control.id

        Case Else
            Visible = True
    End Select
End Sub

' // La fonction onAction s'applique au contrôle Button
' // Elle est déclenchée lorsque vous cliquez sur le contrôle afin de l'utiliser.
Public Sub OnActionButton(Control As IRibbonControl)
    Select Case Control.id
        Case "btnExport"
            ' Ribbon.ExportProcedure
            msgBox "Oupss... tout reste à faire pour l'exportation"
        Case "btnPrint"
            msgBox "Oupss... tout reste à faire pour l'impression"
        Case Else
            Debug.Print "Case """; Control.id; """"                                      ' // cette ligne crée automatiquement la section case avec le nom du contrôle ;)
    End Select
End Sub

' // La fonction onLoad s'applique au contrôle customUI.
' // Elle définit la procédure VBA qui doit être déclenchée lors du chargement du ruban.
Public Sub OnRibbonLoad(Ribbon As IRibbonUI)
    Set objRibbon = Ribbon
    objRibbon.ActivateTab "tab0"
    ' // On active le bouton d'exportation
    bolEnabled = True
    objRibbon.InvalidateControl ("btnExport")
    ' // On désactive le bouton d'impression
    bolEnabled = False
    objRibbon.InvalidateControl ("btnPrint")

End Sub

Voilà tout est dis je pense, évites quand même de mettre trop de code dans le module Callbacks, crée toi plutôt un module Ribbon par exemple et tu y colles les fonctions et procédures que tu appelleras depuis le module Callbacks (voir exemple dans la procédure onActionButton.

Rechercher des sujets similaires à "documentation toolbar specifique"