Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres testez la version beta 1.0 de mon vba Indenter

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
je vous présente la version beta 1.0 du Vba indenter by patricktoulon
je la met ici afin que vous la testiez
elle n'agit pas sur les module pour l'instant elle travaille sur un textbox
il faut quand même activer l'accès approuvé au model du vbproject


il est bien entendu qu'a terme ce sera un XLA parfaitement intégré dans le VBE
pour l'instant je tiens à ce que l'on puisse trouver tout les petits défauts si on en trouve
j'attends vos retours
merci d'avance
 

Pièces jointes

  • Vba Indenter Patricktoulon.xlsm
    34.9 KB · Affichages: 19

patricktoulon

XLDnaute Barbatruc
non c'est bien que tu me pêche sur des situation au contraire
mais soit patient je vais pas changer la source a chaque truc que je change
comme tu peux le voir dans la capture
je maitrise les compilation de bloc sur une ligne avec fermeture même si il y a des commentaire après
et sans commentaire la bonne fermeture est bien identifiée aussi
l'astuce plutot que de faire des if else et tout i couinti
je fait un test sur appl
VB:
If InStr(Application.Trim(TbL(I)), ":  nom de fin de bloc '") > 0 Then TbL(I) = TbL(I) & "</div>"    'si la ligne commence par son debut de bloc et termine par son fin de bloc on ferme le bloc on prend en compte des eventuels commentaires après
exemple
VB:
 With Range("a1:a10"): For q = 3 To 36: w = w + 4:     Next:    End With              '''commentaire
mon test va bien trouver avec instr et application.trim : End With '
pourtant on vois bien que les espaces c'est le boxon

ça m’évite de faire 3/4 if/ else imbriqués
du coup je l'ai fait pour tout les blocs conteneur (with/for/select case)

il prend du mulcle mon bébé
 

VIARD

XLDnaute Impliqué
Bonjours Patrick et à tous

Pour le moment je n'ai pas le temp de regarder, dont je ne doute pas du résultat.
Mais je te présente le projet que j'avais réalisé, il n'est pas au top, il y a encore des choses à voir.
c'est différent de ton projet.
Salutation

Jean-Paul
 

Pièces jointes

  • Indenter(7)_Dico.xlsm
    108.6 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
Bonjour @WIARD
je te remercie de partager avec nous cette ébauche
j'ai regardé un peu plus près ton fichier
mais déjà au premier regard on est loin l'un de l'autre en terme de méthode
tout travailler en string comme tu le fait causera toujours des erreurs
difficile d'intégrer ça dans l'environnement VBE

punaise je sais pas ou tu es parti ni même si ton truc fonctionne mais tu a du de filer une sacré migraine a faire ça moi je fais déjà des crises d'épilepsie
je salut le travail quand même car il y a du boulot de réflexion, d'heure de test , de codage et de perte de cheveux
c'est indéniable
mais c'est pas du tout la bonne méthode selon moi


l'avantage de ma méthode qui utilise le langage html(langage balisé) permet de déterminer CLAIREMENT les blocs

la chose est hyper simple
ligne par ligne on lit le code et on encode des bloc html
si c'est function ou sub = debut de bloc type sub
pareil pour les with , if , for, select case
et le ligne contenant leur fin donc next end if , end sub etc.. ferme le bloc
une bascule est nécessaire pour les if elseif

une fois cela fini
là on envoi le code html brut dans un dom document
et seulement là tes blocs sont déterminés avec exactitude
avec quelque attribut et quelques manipulations
on indente avec l'attribut "indent"(parent/child)
terminé c'est pesé
en tout et pour tout il me suffit de 101 lignes de codes dans ma fonction indentcode pour gérer a peu près toute les situations et mode de codage

je vais déposer la version 1.5 dans la journée il y a une nouvelle surprise ajoutée je vous laisserai la découvrir ca va plaire à @Dudu2 ça

dès que vous voyez V 1.5 dans le titre de la ressource c'est que c'est la bonne version

à cause de toi je vais devoir changer de lunettes
 

patricktoulon

XLDnaute Barbatruc
@WIARD bon ben je l'ai essayé
comment te dire heu.... a tu un plan "B"?
non vraiment tu n'a pas pris le bon chemin de plus ton indentation n'est pas bonne
une douzaine de module avec des codes de fou pour ajouter une tabulation de toute les ligne entre le premier for et son next
perso je te fait ça en une seule ligne
de toute façon ce ne peut pas fonctionner
si vraiment c'est un projet et que tu veux aboutir je conseille de tout virer et de repartir avec une autre méthode
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…