VBA Saut de Ligne

Résolu
bobo8388 -  
Patrice33740 Messages postés 8400 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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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
  2. 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
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. bobo8388
     
    Merci, ca fonctionne
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      De rien, au plaisir de te relire sur le forum
      0