Indenter du texte entre 2 symboles

Résolu
cs_brau Messages postés 19 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 15 décembre 2014 - 14 oct. 2008 à 16:39
cs_brau Messages postés 19 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 15 décembre 2014 - 15 oct. 2008 à 08:45
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

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
15 oct. 2008 à 02:54
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)
3
cs_brau Messages postés 19 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 15 décembre 2014
15 oct. 2008 à 08:45
Merci beaucoup Orohena !!! Ton code marche parfaitement !!
Trop trop bien !!!
0
Rejoignez-nous