Complément (Vba Indenter Interface)

Complément (Vba Indenter Interface) V 3.1 CFx 2

patricktoulon

XLDnaute Barbatruc
tu m'en sort une par jour toi 🤣 🤣
voila maintenant qu'il faut gérer des ligne numérotées
pour le case je sais pas pourquoi ca fait ca ca ne devrait pas
pour les indentation et sur indentation j'ai prevu le coup dans la version 3.1 Ultimate
on pourra le gérer avec les checkbox
sinon en attendant tu peux le faire sur la version 2.0 avec cette new fonction que je t'ai donné en bas dans la partie normalisation
voici celle de la version 3.1 que je réadapte a la 2.0
VB:
    Next
    TbL = Split(ReS, vbCrLf)
    Dim tbl4, A&, SpoC
    For i = 0 To UBound(TbL)
        If TbL(i) Like "*" & ChrW$(937) & "*" Then
            'MsgBox TbL(i)
            SpoC = ""
            tbl4 = Split(TbL(i), ChrW$(937))
            Select Case True
                Case Left(Trim(tbl4(0)), 3) = "If ": SpoC = Application.Rept(" ", InStr((TbL(i)), "If ") + 4)'4 ou plus ou moins'
                Case tbl4(0) Like "*Declare*function*": SpoC = Application.Rept(" ", 30)'30 ou plus ou moins '
                Case tbl4(0) Like "*""*": SpoC = Application.Rept(" ", InStr((TbL(i)), """"))'pour les msgbox ou autres on indente au premier Guillemet
                Case tbl4(0) Like "*(*)*": SpoC = Application.Rept(" ", InStr((TbL(i)), "("))'sinon la première parenthèse
                Case tbl4(0) Like "*_*": SpoC = Application.Rept(" ", InStr(Trim(TbL(i)), "_") - 5)sinon si il n'i a aucun repère on prend le "_"- 5 caractère
                Case Else: SpoC = ""'dans le pire des cas on indente pas '
            End Select
            tbl4 = Split(TbL(i), ChrW$(937))
            For A = 1 To UBound(tbl4)
                'MsgBox "|" & tbl4(A)

                tbl4(A) = SpoC & Replace(Trim(tbl4(A)), Chr(160), ""): Next
            TbL(i) = Join(tbl4, vbCrLf)
        End If

    Next



    ReS = Join(TbL, vbCrLf)
    htmlCod = res2
    OriginalHtmlCode = PrE.outerhtml
    'Debug.Print ReS



    TextBox2 = ReS
    IndentCode = ReS
    Unload barprogress
End Function
avec la version 3.0 et moteur 3.1 j'ai des checkbox pour gérer ca
demo.gif
 

patricktoulon

XLDnaute Barbatruc
re
oui c'est prévu ca aussi dans le 3.0 le min c'est 15 ligne même si il n'y a que le workbbok et une feuil
alors t'en dis quoi de ce moteur
c'est mieux non on peut gérer comme on veux en fait
pour la partie reprise des case indentée ou non il y avait un truc qui ne fonctionnait pas
maintenant oui
on peut indenter les case d'un select et tout le reste suit dans le principe de l'indentation
VB:
If CheckCase Then
            If EleM.parentelement.getattribute("typ") = "Case" Then EleM.setattribute "indent", Val(EleM.parentelement.getattribute("indent")) + 2
            If EleM.getattribute("typ2") = "cas" Then
                EleM.setattribute "indent", Val(EleM.parentelement.getattribute("indent")) + 1
                If EleM.parentelement.getattribute("typ2") = "cas" Then EleM.setattribute "indent", Val(EleM.parentelement.getattribute("indent")) + 1
            End If
 End If

demo.gif
 

fanch55

XLDnaute Barbatruc
Si tu as intégré toutes tes suggestions dans la 20DeBis, puis-je la re-télécharger car avec toutes les modifs que j'ai fait dans le module, je ne sais pas/plus qui est dans quoi. Car il semblerait que j'ai encore qq anomalies dans l'existant .
Peux-tu rafraichir la réclame ?
1715863460190.png
 

patricktoulon

XLDnaute Barbatruc
je vais te faire ça donne moi 5 minute elle est archivée car comme je te l'ai dis
j'ai continuer a travailler sur les deux pour que l'on puisse avancer tant que la 3.0 avec moteur3.1 n'est pas prête
si tu voyais les options , le design et tout et tout

telecharge la version 2.0 Fx
 

fanch55

XLDnaute Barbatruc
Version F2.0 Fx

Originel:
1715874778795.png

Indenté:

1715874811731.png


Peut-être un peu trop strict ???
Originel
1715875273295.png

Indenté
1715875337772.png


Loop until non prévu ?
Indenté
1715875872858.png

1715876228556.png


Mélange quand lignes numérotées
Originel
Indenté
1715876517681.png


Je préfère l'originel
Originel
1715876741501.png

Indenté
1715876684272.png



Je ne sais pas comment tu t'en sortiras avec la numérotation à moins de découper le numéro et de le restaurer après indentation ....
Originel
1715877080484.png

Indenté
1715877019003.png


Ah, une indentation omise sans vraiment de raison ...
Originel
1715877375289.png

Indenté
1715877318948.png



Je ne sais pas si c'est vraiment nécessaire :
Indenté
1715877628840.png


Une dés-indentation inexpliqué ( sauf peut être présence de crochets [ ] )
1715877948442.png


Voilà voilà, j'ai les yeux qui se croisent 😵‍💫 mais je pense que tu vas bientôt en voir le bout .... 🥳 🥳
 

patricktoulon

XLDnaute Barbatruc
oui mais donne moi les bribes de code plutôt que des captures
pour le on error resume next perso je l'ai jamais indenté comme ca smart indenter non plus d'ailleurs c'est un child au même titre que les autres

après il me faut ces codes pour que je puisse tester
 

patricktoulon

XLDnaute Barbatruc
@fanch55
pour info l'indentation des private function dans un #if/#else ne s'indentent pas
en tout cas avec smart indenter ca le fait pas
demo.gif

mais quand même je fait mieux
tout les modules dans ce fichier (les modules de ton zip sont passé a la moulinnette de vba indenter interface V 3.0
a par celui avec les numéros devant chaque ligne je pense que j'ai un résultat + qu'acceptable
 

Pièces jointes

  • classeur fanch55.xlsm
    172.7 KB · Affichages: 2
Dernière édition:

Dudu2

XLDnaute Barbatruc
J'ai modifié pour qu'il ouvre ce type de fichier et maintenant j'ai ça avec 2 options strictement équivalentes !
Excel mes les brise sérieux !!!
1715960762955.png
 

Statistiques des forums

Discussions
312 669
Messages
2 090 740
Membres
104 644
dernier inscrit
MOLOKO67