IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

Supprimer les lignes vides d'un document Word


Sujet :

VBA Word

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Supprimer les lignes vides d'un document Word
    Bonsoir à toutes et à tous,

    dans une macro, je ne parviens pas à trouver comment s'y prendre pour supprimer toutes les lignes vides d'un document Word.

    Je vous remercie d'avance de votre aide.

    Bonne soirée !

  2. #2
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 156
    Points : 105
    Points
    105
    Par défaut
    Bonjour

    Voici un code qui supprime les lignes vides, sur un document de 200 lignes à l'origine (nblignes ). La suppression s'effectue de la fin au début du document.
    Pas de gestion d'erreurs, ni de test de fin de document, car je suis débutant en Word. Pas de souci à avoir, le code fonctionne!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim nblignes As Integer
     
    Sub Supprime_lignes_vides()
     
        Selection.EndKey Unit:=wdStory
     
        For nblignes = 1 To 200
            Selection.HomeKey Unit:=wdLine
            Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            If Selection = Chr(13) Then
                Selection.Delete Unit:=wdCharacter, Count:=1
            Else
                Selection.MoveUp Unit:=wdLine, Count:=1
            End If
        Next nblignes  
     
    End Sub

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Je te remercie, Lexot2, ça fonctionne.

    Bonne journée à toi !

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Une autre solution, qui ne repose pas sur le nombre de lignes
    Bonjour,

    ton problèle de ligne vides reviens à supprimer les retour-chariots inutiles dans tout ton document.
    Tu peux utiliser les caractères génériques pour ça afin de faire la manip sans tenir compte du nombre de ligne de ton document.

    Fais un "rechercher - remplacer" simple en cochant la case "utiliser les caractères génériques"...

    Dans la zone "rechercher", tape la commande suivante :
    "^13{2;}"
    (^13 est le code à employer pour le retour chariot lorsque tu utilise les caractères génériques, le {2;} signifie "2 ou plus"...

    Dans la zone remplacer, tape
    "^p"
    ^p est le code à employer pour le retour chariot lorsque tu n'utilise pas les caractères génériques.

    Cette commande va donc remplacer toutes les suites de "deux ou plus" retour chariot par un seul. Résultat, toutes tes lignes vides disparraissent...

    Une macro pour faire ça de manière répétitive ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    Sub LignesVides()
    ' Pour supprimer toutes les lignes vides d'un document Word
        Selection.Find.Execute
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "^13{2;}" ' rechercher partout 2 ou + retour chariots
            .Replacement.Text = "^p" ' remplacer par un retour chariot
            .Forward = True
            .Wrap = wdFindContinue
            .MatchWildcards = True ' Usage des caractères génériques
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    End Sub
    Et voila !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci kitcreanet.

    Ça paraît si simple une fois que c'est dit... C'est ça l'élégance ! hihi

    Bonne fin de journée à toi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les lignes vides avec Notepad++
    Par Monstros Velu dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 25/04/2009, 01h16
  2. [VBA]Supprimer les Pages vides d'un document
    Par Sami-33 dans le forum Word
    Réponses: 1
    Dernier message: 25/07/2007, 20h54
  3. Réponses: 1
    Dernier message: 12/12/2006, 12h00
  4. Réponses: 2
    Dernier message: 04/05/2006, 13h10
  5. supprimer les lignes vides?
    Par VinnieMc dans le forum Langage
    Réponses: 5
    Dernier message: 27/02/2006, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo