VBA Saut de Ligne

Résolu
bobo8388 -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
bobo8388
 
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   Statut Contributeur Dernière intervention   4 725
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
bobo8388
 
Merci, ca fonctionne
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
De rien, au plaisir de te relire sur le forum
0