VBA Saut de Ligne

Résolu/Fermé
bobo8388 - 28 mars 2011 à 09:18
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 28 mars 2011 à 15:29
Bonjour,

Est il possible dans Word avec un code VBA de limiter les sauts de ligne à 1 au maximum.

Je voudrais que le texte garde sa mise en fomre mais que les endroits ou il y a deux, trois... sauts de ligne soient convertis en un seul saut de ligne.

Merci à tous



5 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
28 mars 2011 à 11:11
C'est beaucoup plus simple avec Rechercher / Remplacer !:
Remplacer / Plus /
- Rechercher : Spécial / Marque de paragraphe (2 fois)
- Remplacer par : Spécial / Marque de paragraphe (1 fois)

Répéter autant de fois que nécessaire.
0
Merci pour votre réponse,

Seulement il ya beaucoup de modifications à apporter au texte qui sont automatisées a l'aide de code VBA qui se lance par un click sur un bouton.

En effet ce fichier est destiné à etre utilisé par differents utilisateurs, il faut donc que cela soit simplifié au maximum d'ou le besoin d'un code VBA.

Merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
28 mars 2011 à 12:10
bonjour

Si tu veux vraiment une macro tu peux essayer ceci :
Sub sup_sauts()
    Selection.WholeStory
    With Selection.Find
        .Text = "^p^p"
        .Replacement.Text = "^p"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
28 mars 2011 à 13:11
Bonjour,

Pour supprimer tous les paragraphes superflus :
Sub sup_sauts()
Dim Longueur As Double
  Do
    Selection.WholeStory
    Longueur = Len(Selection.Text)
    Selection.Find.Execute FindText:="^p^p", ReplaceWith:="^p", Replace:=wdReplaceAll
  Loop While Longueur <> Len(Selection.Text)
End Sub

Note : la méthode Find.Execute ne permet pas de supprimer la dernière double marque de paragraphe située en fin de texte. Elle trouve la double marque, mais elle ne la remplace pas. Dans ce cas .Exécute renvoie True d'où l'utilisation de Longueur pour sortir de la boucle.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci, ca fonctionne
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
28 mars 2011 à 15:29
De rien, au plaisir de te relire sur le forum
0