Indenter du texte entre 2 symboles [Résolu]

Signaler
Messages postés
19
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2014
-
Messages postés
19
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2014
-
Bonjour,
ne m'y connaissant pas en développement, je me permets de vous posez une question.

J'ai pas mal de document word à reprendre afin d'y adapter une mise en forme, mais manuellement ça va me prendre plusieurs jours...

Voilà, dans les documents Word je dois mettre une tabulation devant le texte se trouvant entre les symboles << et >>. En fait il s'agit d'y effecteur une indentation.

Voici un exemple :

Avant le traitement :
A
B
>>
C
>>
D
<<
E
<<
F

Après le traitement :
A

B

|
| --
C

|
| --  -- D

|
| -- E
|

F
Les traits ne sont là que pour aligner le texte et montrer les tabulations (--) ;)

Bien entendu, je ne vous demande pas de tout faire pour moi :), mais au moins de me donner un peu la voie à prendre...

Je vous remercie d'avance pour l'aide que vous m'apporterez.

brau

2 réponses

Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour brau


Je te propose d'essayer le code suivant



Sub Indentation()
    Dim derniereLigne As Long, ligneCourante As Long
    Dim suppr As Boolean
' positionner le curseur au début du document
    Selection.HomeKey Unit:=wdStory
    suppr = False
' balayer du doc ligne par ligne
    Do
' descendre d'une ligne (sauf si on vient d'en supprimer une)
        If Not suppr Then
            Selection.MoveDown Unit:=wdLine, Count:=1
            derniereLigne = ligneCourante
        End If
        suppr = False
' sélectionner toute la ligne
        Selection.Expand wdLine
' recupérer le numéro de ligne
        ligneCourante = Selection.Information(wdFirstCharacterLineNumber)
' ci-dessous on gère les lignes "<<" et ">>", puis on les supprime
        If InStr(1, Selection.Text, "<<") > 0 Then
            tabul = tabul - 1
            Selection.Delete
            suppr = True
        ElseIf InStr(1, Selection.Text, ">>") > 0 Then
            tabul = tabul + 1
            Selection.Delete
            suppr = True
        ElseIf tabul > 0 Then
' insertion des Tabulations
            Selection.Text = String(tabul, Chr(9)) & Selection.Text
        End If
' le curseur ne descend plus : fin
    Loop Until derniereLigne = ligneCourante
End Sub

Cordialement

Il n'y a rien de plus difficile à consoler qu'un paysage désolé (Pierre Dac)
Messages postés
19
Date d'inscription
mardi 14 octobre 2008
Statut
Membre
Dernière intervention
15 décembre 2014

Merci beaucoup Orohena !!! Ton code marche parfaitement !!
Trop trop bien !!!