Indenter

VIARD

XLDnaute Impliqué
Bonjour à toutes et tous

C'est une manip que je fais pour le plaisir.
Je mets un listing de programme sur un formulaire puis je l'indente.
j'arrive à indenter correctement sur les mots clés mais pas entre-eux.
j'ai tenté plusieurs solution sans succès.
Tout est clair dans le fichier avec ce que je voudrais obtenir en rouge colonne "D".
fichier joint.

amicalement

Jean-Paul
 

Pièces jointes

  • Indenter(1).xlsm
    34.3 KB · Affichages: 135

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour à tous


Pour le quote, j'utilise "Chr$(39)", c'est la seule solution que j'ai trouvé pour que cela fonctionne.

Par contre, il faudra que je teste avec .text comme l'a souligné MDG :).
dans le cas de l'utilisation de Cells(x,y).Value
l'apostrophe est interprétée en tant que "PrefixCharacter" et non comme "apostrophe texte"
car "By Design" l'interprétation feuille de calcul est prise en compte automatiquement, VBA n'y voit que du feu
(c'est ce qui ce produit également dans la reconnaissance automatique d'une date et les problèmes récurrent dates US / FR)
MsgBox "The prefix character is " & _
Worksheets("Sheet1").Range("A1").PrefixCharacter
Lors de la copie du code VBE dans la page EXCEL il conviendra donc de pré formater les cellules au format "Text"
 

VIARD

XLDnaute Impliqué
Bonjour à toutes et tous

J'ai continué les manips en vue de supprimer l'indice de tabulation sur le formulaire.
J'ai utilisé le Dico pour la première fois, ça marche mais il y a des répétitions de tri.
Donc j'ai fait une autre version avec tableau, c'est bien plus légé.

Voici le fichier avec ses 2 autres versions.

CDT Jean-Paul
 

Pièces jointes

  • Indenter(6)_Dico.xlsm
    92.2 KB · Affichages: 69

VIARD

XLDnaute Impliqué
Bonjours à toutes et tous

Comme je ne lâche pas le morceau, j'ai résolu le problème du caractère "CHR(39)" en tête de ligne.
Et je remercie vivement "Modeste Geedee" pour l'éclairage qu'il apporte avec "PrefixCaract", je ne connaissais pas.
Donc voici 2 fichiers, l'un regroupe les 3 manip (avec colonne auxiliaire, avec dico et sans).
L'autre uniquement sans dico.

A+ Jean-Paul
 

Pièces jointes

  • Indenter(8)_Tout.xlsm
    111.1 KB · Affichages: 67
  • Indenter(9).xlsm
    70.3 KB · Affichages: 70

eriiic

XLDnaute Barbatruc
Bonjour,
par contre, je tente de mettre la valeur de la tabulation sous forme data pour éviter la colonne "C".
A la place des Tab tu pourrais te servir de .IndentLevel des cellules.
Plus besoin de stocker. Pour indenter/désindenter lire le niveau de la cellule au-dessus +/-1.
Plus de traitement de chaine pour gérer ça non plus.
eric

PS : j'ai voulu tester en ajoutant des lignes à la main. Les mots sans initiale en majuscule ne sont pas reconnus. Je verrais bien les comparer tout en majuscule avec ucase().
Pour Select Case ça donne :
Code:
Z = 0: Col = 3
      Select Case a
            Case 1
            a = 1
je verrais mieux :
Code:
    Z = 0: Col = 3
    Select Case a
    Case 1
        a = 1
 
Dernière édition:

VIARD

XLDnaute Impliqué
Bonjour Modeste Geedee, Eriic, Mj13 à toutes et tous


C’est la suite de l’indentation, comme préconisé par ″Eriiic″ que je remercie au passage de m’avoir mis sur la piste. Réalisé une indentation direct en utilisant ″IndentLevel″ encore un terme que je ne connaissais pas, après quelques manip, je l’ai adapté au programme, par contre ici, le pas de l’indentation est fixe et limité de (0 à 15), contrairement à la tabulation ajustable.

Le programme qui suit comprend 2 versions une en comparaison avec tab et ″indentlevel″, et l’autre avec ″indentlevel″ seul, cette version prend 100 lignes de code.

Je remercie également ″Modeste Geedee″, la colonne ″A″ est au format texte et CHR(39) est traité (.PrefixCaract) (Commentaire).

Je pense que cette fois, c’est terminé.


Amicalement à tous Jean-Paul
 

Pièces jointes

  • Indenter(10).xlsm
    86.4 KB · Affichages: 67
  • Indenter(11)indentlevel.xlsm
    64.1 KB · Affichages: 67

eriiic

XLDnaute Barbatruc
Bonjour,

par contre ici, le pas de l’indentation est fixe et limité de (0 à 15)
Je pense qu'ils ont oublié de mettre à jour leur doc depuis 2003.
Sur 2010 on peut aller jusqu'à 250 pour le retrait (vérifiable dans la boite de dialogue)
Du coup tu peux offrir la possibilité de mettre 2-3 indentlevel par incrémentation pour ceux qui trouve que c'est un peu juste.
eric

PS: Souhait de eriiic est un mot un peu fort ;-) C'était juste une proposition pour alléger et simplifier :)
 
Dernière édition:

VIARD

XLDnaute Impliqué
Bonjour à toutes et tous


J’ai repris la manip sur INDENTLEVEL, pour rendre l’indentation ajustable.

Toutefois j’ai rencontré des cas ou l’indentation ne fonctionnait pas, après analyse, les mots clés et certains espaces

En général étaient des ″Chr(160) ″ au lieu du ″Chr(32)″ , pourquoi ? ,quel en est la raison !


Le programme gère cette éventualité.


Amicalement à tous

Jean-Paul
 

Pièces jointes

  • Indent_Level(15).xlsm
    76.3 KB · Affichages: 61

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 190
Messages
2 107 001
Membres
109 735
dernier inscrit
Mounskad