Icône de la ressource

complement Xla d'export de code en html et pdf avec coloration syntaxique 2.4.1

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 !

jai trouvé faut juste modifier ton code chez moi
merci pour ton aide
je n'arrive pas à modifier ta macro avec ton nouveau code, j'ai beau le modifier, et le sauvegarder. Quand je rouvre excel la sauvegarde n'est pas été prise en compte.
Peux renvoyer un fichier modifié sur le site
merci d'avance
Amicalement
Alexis
 
Patrick, je ne maitrise pas trop le xlm, pourrais tu me guider pour modifier mon fichier stp
Re...
j'essaie de suivre les évolutions mais certainement que le xml posé c'est un extrait du code final
cependant
1751187924889.png


soit il manque le code au dessus de la balise </menu> soit il y a un soucis

quand je supprime
1751187985162.png


j'ai l'erreur
1751188029987.png

1751188047757.png


bref si ça peut faire avancer le schmilblik 🙂
ou tout simplement le code posté c'est juste un extrait.. cependant même en cas d'extrait il râle sur ces lignes
 
pour sauvegarder la modif dans un xla il faut
1 modifier le code (ici en fait tu remplace tout le callback Public Sub dynamicMenu_2_getContent......
2 tu teste ton bouton
3 et si ca marche tu selectionne n'importe quel module de mon XLA
4 dans le vbe !!!! tu va
fichier et tu clique sur enregistrer (voir capture ci dessous ) vérifie bien que c'est bien le nom du xla comme dans la capture
1751188114396.png
 
bonjour @oguruma mille excuse je ne t'ai pas vu
oui en effet c'etait ça
Pour aider dans la démarche notre ami, j'avais un principe et je l'applique encore... quand j'avais un ruban ou quand j'ai un ruban je le passe à chaque fois à la moulinette
1751188411955.png
même pour l'ajout d'un simple commentaire ou l'ajout d'un interligne ou l'ajout d'une icône... on n'est jamais à l'abris d'un appuis sur une touche non désirée 🙂 😉
 
Pour aider dans la démarche notre ami, j'avais un principe et je l'applique encore... quand j'avais un ruban ou quand j'ai un ruban je le passe à chaque fois à la moulinette Regarde la pièce jointe 1219877 même pour l'ajout d'un simple commentaire ou l'ajout d'un interligne ou l'ajout d'une icône... on n'est jamais à l'abris d'un appuis sur une touche non désirée 🙂 😉
Comme tu peux voir je commence à me réconcilier avec le Ruban qui m'a causé tant de misère dans le passé... c'est un peu plus propre cependant dans les propriétés xml il manque encore pas mal de choses à mon goût, exemple la possibilité de rendre persistant les changements effectués dans les listes déroulantes avec une propriété "preserveListBox=true/false/false=defaut")... y a bien des solutions en passant par des api pour mémoriser le ruban ce que je refuse de faire...
 
oui perso je me suis fait un validateur avec XSD perso dans un petit applicatif compiler avec VS comme ça je ne suis pas obligé d'aller cgaercher le customui editor ou ribbonX editor ou autre

pour info je l'ai encore modifier pour que ce soit plus facile a s'y retrouver dans la liste
dans le titre il y a le type de module maintenant
1751188930326.png

VB:
'procedure {getContent} de remplissage du DynamicMenu[ID:''dynamicMenu_2'' Label:''Liste Macro'']'dans le parent [group_2'' Label:''Export Sub et Fonctions'']
Public Sub dynamicMenu_2_getContent(ctl As IRibbonControl, ByRef content)
    Dim VbComp, VbComps, code, t, i&, ok As Boolean, lasub, a, cl&, idx, pl&, TT$
    Set VbComps = ActiveWorkbook.VBProject.VBComponents
    content = "<menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui"" >" & vbCrLf 'ouverture de la balise menu
    For Each VbComp In VbComps
        cl = VbComp.CodeModule.CountOfLines
           Select Case VbComp.Type
        Case vbext_ct_StdModule ' = 1
            TT = "Module"
        Case vbext_ct_ClassModule ' = 2
            TT = "Class"
        Case vbext_ct_MSForm ' = 3
            TT = "UserForm"
        Case vbext_ct_Document ' = 100
            If VbComp.Name = "ThisWorkbook" Then
                TT = "ThisWorkbook"
            Else
                TT = "Feuille"
            End If
        Case Else
            TT = "Inconnu"
    End Select
        If cl > 0 Then
            code = VbComp.CodeModule.Lines(1, VbComp.CodeModule.CountOfLines)
            If Trim(code) <> "" Then
                pl = pl + 1: idx = "M" & Format(Date + pl, "yyyymmdd")
                a = a + 1
                content = content & "<menu id=""" & VbComp.Name & idx & a & Chr(34) & " label=""" & TT & " : " & VbComp.Name & """ >" & vbCrLf
                t = Split(code & vbCrLf, vbCrLf)
                For i = 1 To UBound(t)
                    ok = False
                    Select Case True
                        Case Left(Trim(t(i)), 4) = "Sub "
                            ok = True
                        Case Left(Trim(t(i)), 11) = "Private Sub "
                            ok = True
                        Case Left(Trim(t(i)), 11) = "Public Sub "
                            ok = True
                        Case Left(Trim(t(i)), 9) = "Function "
                            ok = True
                        Case Left(Trim(t(i)), 17) = "Private Function "
                            ok = True
                        Case Left(Trim(t(i)), 16) = "Public Function "
                            ok = True
                    End Select
                    If ok Then
                        lasub = Trim(Split(t(i), "(")(0))
                        content = content & "<button id=""B" & VbComp.Name & CLng(Date + i) & """ label=""" & lasub & """ imageMso=""MailMergeGreetingLineInsert"" onAction=""ExporteLaSub"""
                        content = content & " tag=""" & VbComp.Name & "|" & lasub & """ />" & vbCrLf
                    End If
                Next
                content = content & "</menu>" & vbCrLf
            End If
        End If
    Next
    DoEvents
    content = content & "</menu>"
    'Debug.Print content
End Sub
 
Comme tu peux voir je commence à me réconcilier avec le Ruban qui m'a causé tant de misère dans le passé... c'est un peu plus propre cependant dans les propriétés xml il manque encore pas mal de choses à mon goût, exemple la possibilité de rendre persistant les changements effectués dans les listes déroulantes avec une propriété "preserveListBox=true/false/false=defaut")... y a bien des solutions en passant par des api pour mémoriser le ruban ce que je refuse de faire...
ici en l’occurrence non il ne faut pas de préservation
on est avec des menus de type dynamicMenu avec l'attribut validatecontentondrop
et justement avec ça on ne se sert pas du validat au niveau ribbon
de cette manière la liste est mise a jour au click sur la fleche du bouton (au dérouler )
autrement dis dans le cas présent la liste est EXACTEMENT représentative de l'etat des macros et module à l’instante

moi ca fait plus de 15 ans que je m'amuse avec ce ruban xml
 
la mise a jour sur l'exemplaire en telechargement a été efectuée
version 2.4
  1. correctif des id sous menu et bouton pour le menu macro
  2. correctif sur le texte des bouton le type de module est explicite (c'est plus facile de s'y retrouver)
  3. ajout de quelque expressions mal pris en compte dans la coloration syntaxique
patrick
 
- 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

Retour