Complément (Vba Indenter Interface)

Complément (Vba Indenter Interface) V 3.1 B

patricktoulon

XLDnaute Barbatruc
patricktoulon a soumis une nouvelle ressource:

Complément (Vba Indenter Interface) - Indentez vos codes

Bonjour à tous
Vba Indenter Interface
Je vous présente aujourd'hui mon dernier bébé le Vba Indenter Interface
C'est un complément xlam permettant d'intégrer :
Dans l'environnement VBE un item dans le menu contextuel des modules un sous menu supplémentaire
Dans ce menu vous avez
Soit un bouton "show interface" qui vous ouvre une interface pour travailler le code
Soit un bouton "Indenter le...

En savoir plus sur cette ressource...
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous j'ai fait une mise à jour en fonction de vos remarques
je vous invite donc pour ceux qui l'ont déjà téléchargé à le refaire

mise à jour
  1. enregistrement des paramètres d'indentation dans l’interface sélectionnés automatique
  2. Correctif du petit bug sur les blocs encodés sur une ligne terminant par des commentaires
  3. Correctif sur les ligne encodées sur plusieurs lignes terminant par le grand tiret

mise a jour majeure
ajout de la décompilation des blocs (voir même imbriqués)mono ligne et restitution sur x lignes indentées
piloté par son checkbox

 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
Correctif sur la partie décompilation des blocs in one line
en effet il faut faire des exceptions

Les boutons d'export/enregistrer sont dans un menu

Ajout de l'export en html avec coloration syntaxique (quelque coquilles subsistent)
pour un eventuel partage sur les forum en html

demo.gif


récapitulatif de l'evolution
VB:
'                           VBA INDENTER By patricktoulon V 1.XX
'Version Beta 1.0 dans un simple fichier
'Date version 30/04/2024

'Mise à jour: version 1.1
'Date 02/05/2024
'Reprise sur l'indend des 'sub'
'Interface enjolivé (version1)
'Click sur checkbox  code indenté sans passer par le bouton
'Mise à jour: version 1.2
'Ajout de la surveillance de déactivation des variable  en cas d'erreur dans les workbooks eventuellement ouvert
'Mise à jour V 1.3
'Ajout  des bouton dans le ruban dans l'onglet developpeur group macro
'2 Show interface
'2 Activer interface indenter
'Ajout du bouton exporter le module dans l'interface
'Mise à jour 1.4
'vba Indenter Interface
'Ajout de la mémorisation des preférences
'Correctif sur les code etendu sur plusieurs lignes par  Le "& _"
'Mise à jour 1.5
'Ajout du mode  de compilation des blocs in one line
'Mise à jour 1.6
'Correctif dans le mode decompliation de blocs in one line(mise en place d'exeption)
'Ajout du mode d'export en html avec coloration syntaxique
'Les boutons d'export sont maintenant dans un menu
'****************************************************************************************************

aperçu d'un export html

1714902022121.png


voila c'est tout pour le moment(dit la voix) ;)

continuez a me faire des retours en cas de bug ou coquilles
merci d'avance
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
Je tiens a préciser que la partie décompilation des bloc in one line est un essais
le moteur V 2.0 est en cours de préparation il sera bien plus puissant et plus complet

j'envisage aussi de lui donner un look un peu plus Excel
dites moi ce que vous en pensez (voir des idées )
 

Nicolas JACQUIN

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous
Correctif sur la partie décompilation des blocs in one line
en effet il faut faire des exceptions

Les boutons d'export/enregistrer sont dans un menu

Ajout de l'export en html avec coloration syntaxique (quelque coquilles subsistent)
pour un eventuel partage sur les forum en html

Regarde la pièce jointe 1196242

récapitulatif de l'evolution
VB:
'                           VBA INDENTER By patricktoulon V 1.XX
'Version Beta 1.0 dans un simple fichier
'Date version 30/04/2024

'Mise à jour: version 1.1
'Date 02/05/2024
'Reprise sur l'indend des 'sub'
'Interface enjolivé (version1)
'Click sur checkbox  code indenté sans passer par le bouton
'Mise à jour: version 1.2
'Ajout de la surveillance de déactivation des variable  en cas d'erreur dans les workbooks eventuellement ouvert
'Mise à jour V 1.3
'Ajout  des bouton dans le ruban dans l'onglet developpeur group macro
'2 Show interface
'2 Activer interface indenter
'Ajout du bouton exporter le module dans l'interface
'Mise à jour 1.4
'vba Indenter Interface
'Ajout de la mémorisation des preférences
'Correctif sur les code etendu sur plusieurs lignes par  Le "& _"
'Mise à jour 1.5
'Ajout du mode  de compilation des blocs in one line
'Mise à jour 1.6
'Correctif dans le mode decompliation de blocs in one line(mise en place d'exeption)
'Ajout du mode d'export en html avec coloration syntaxique
'Les boutons d'export sont maintenant dans un menu
'****************************************************************************************************

aperçu d'un export html

Regarde la pièce jointe 1196243

voila c'est tout pour le moment(dit la voix) ;)

continuez a me faire des retours en cas de bug ou coquilles
merci d'avance
Tu vois quand tu veux ;)
 

patricktoulon

XLDnaute Barbatruc
patricktoulon a mis à jour Complément (Vba Indenter Interface) avec une nouvelle entrée de mise à jour:

Complement Vba Indenter Interface V2.0

Bonjour a tous
la voici elle est là la version 2.0 de mon complément vba indenter interface
  1. Nouveau moteur HTML renforcé
  2. Nouveau design( plus sobre et plus actuel)
  3. plus d'options
  • export en html avec coloration syntaxique
  • export en pdf
et bien d'autres que je vous laisse découvrir dans cette vidéo de présentation

Lire le reste de cette entrée de mise à jour...
 

fanch55

XLDnaute Barbatruc
Salut Patrick,
Microsoft® Excel® 2021 MSO (Version 2404 Build 16.0.17531.20140) 64 bits
Retour de test de l'indenter V2 :

Déclaration dans les Add-Ins : OK
1715587868999.png
Lancement du complément:
Facile à lancer quand on l'a trouvé ...
1715588064172.png
Première surprise, la roulette de la souris ne fait pas scroller
1715594062243.png
Test Indentation
1715594328962.png
1715594395177.png
1715594840897.png
 

patricktoulon

XLDnaute Barbatruc
Bonjour @fanch55
tout d'abords merci du retour (j'ai pas l'impression de travailler pour rien )
dans la première vidéo je l'avais expliqué ou trouver ce bouton
mais il n'est qu'accessoire
dans vbe clique droite dans le code du module --> show interface

ensuite pour cette erreur (qui malheureusement je l'ai détecté trop tard ) a été corrigé sur la version 2.1 qui n'est pas encore publiée
donc pour cette erreur dans la parenthèse remplacer plusX par
application.max(plusX,0)


pour vous donner une idée de la prochaine version
et là; ça rentre dans le cadre de ton premier problème finalement, j'ai modifié le ruban de l'applicatif
un ruban plus vrai que nature
demo.gif
 
Dernière édition:

Lolote83

XLDnaute Barbatruc
Bonjour à tous, bonjour Patrick,
Après visionnage de la vidéo (pas encore testé l'appli), voici quelques remarques (mineures j'en convient) bien que tu y fasses référence dans la vidéo.
Voici donc un peu de lecture avant d’effectuer des tests grandeur nature
@+ Lolote83
 

Pièces jointes

  • VBA Indenter Interface V2.0 (Patrick Toulon) - Remarques.pdf
    114.6 KB · Affichages: 7

fanch55

XLDnaute Barbatruc
Tu t'attaques à un vaste domaine semé de multiples cas et variantes,
si je peux t'apporter une ou plusieurs étincelles ....

Correction du module avec application.max(plusX,0).
Ce qui manque énormément ( du moins pour moi) , c'est l'api qui permet de scroller

Comportements peut-être non voulus :
Original :
VB:
Public Equipe As String
Private Sub UserForm_Activate()
Dim Fso As Object
Dim File As String
On Error Resume Next
    If [Enable_Fanny] Then
        Set Fso = CreateObject("Scripting.FileSystemObject")
        File = [File_Fanny].Value                           ' Identification de la musique à jouer
        If Fso.FileExists(File) _
        Then PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC ' On ne joue la musique que si le fichier existe
        Set Fso = Nothing
    End If
    If Equipe <> vbNullString Then
        Me.Caption = "L'équipe " & Equipe & " est Fanny !!!"
        Me.Repaint                                          ' On affiche l'image
        Application.Wait Now + TimeValue("00:00:02")        ' On attend 2 secondes
    End If
   
    Unload Me                                               ' on décharge l'image
   
End Sub

Indenté:
VB:
Public Equipe As String
Private Sub UserForm_Activate()
    Dim Fso As Object
    Dim File As String
    On Error Resume Next
    If [Enable_Fanny] Then
        Set Fso = CreateObject("Scripting.FileSystemObject")
        File = [File_Fanny].Value                           ' Identification de la musique à jouer
        If Fso.FileExists(File) _
            Then PlaySound File, ByVal 0&, SND_FILENAME Or SND_ASYNC ' On ne joue la musique que si le fichier existe
            Set Fso = Nothing
        End If
        If Equipe <> vbNullString Then
            Me.Caption = "L'équipe " & Equipe & " est Fanny !!!"
            Me.Repaint                                          ' On affiche l'image
            Application.Wait Now + TimeValue("00:00:02")        ' On attend 2 secondes
        End If

        Unload Me                                               ' on décharge l'image

    End Sub
 

patricktoulon

XLDnaute Barbatruc
ok j'ai piger un if sur une ligne mais coupé par un tiret
je vois ca
ca m'a perturbé pour moi il manquait un "end if"
allez j'ajoute cette possibilité dès que c'est bon je change
 
Dernière édition:

JPaul78

XLDnaute Junior
Bonjour à tous j'ai fait une mise à jour en fonction de vos remarques
je vous invite donc pour ceux qui l'ont déjà téléchargé à le refaire

mise à jour
  1. enregistrement des paramètres d'indentation dans l’interface sélectionnés automatique
  2. Correctif du petit bug sur les blocs encodés sur une ligne terminant par des commentaires
  3. Correctif sur les ligne encodées sur plusieurs lignes terminant par le grand tiret

mise a jour majeure
ajout de la décompilation des blocs (voir même imbriqués)mono ligne et restitution sur x lignes indentées
piloté par son checkbox

Bonsoir Patrick,
Je test ce programme sur un de mes projets Excel qui comporte plusieurs centaines de lignes et c'est super! Pour l'instant pas de bug! Merci beaucoup. JPaul
 

patricktoulon

XLDnaute Barbatruc
re
@Lolote83
merci pour ton retour
toujours précis avec argumentation et détail
présenté dans un pdf comme d'hab
ne change rien je kiff
je regarde ça pour le module (non intenté/indenté) je comprends pas tres bien quand on a indenté dans l'interface normalement ça change
 

patricktoulon

XLDnaute Barbatruc
@fanch55
y a qu'a demander
pour le coup histoire de bien rendre la chose difficile ,j'ai explosé l'indentation à la base
j'ai ajouté des lignes de code avec coupure" _"
regarde le résultat

Version 2.0 C

demo.gif
 
Dernière édition:

JPaul78

XLDnaute Junior
Bonjour Patrick,
Je continue mes indentations avec ton outil et je l'ai utilisé sur un de tes programmes : le calendrier. J'ai remarqué que lorsque tu as des select case imbriqués, le 2ième rand de select case s'indente que sur le 1ier select case.
1715667198195.png
 

Statistiques des forums

Discussions
312 556
Messages
2 089 588
Membres
104 215
dernier inscrit
Jean Michl