Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/03/2007, 17h45   #1
Invité régulier
 
Inscription : mars 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 61
Points : 7
Points : 7
Par défaut [VBA-WORD] Suppression de ligne

Bonjour,

Je rencontre un petit problème : Je suis face à un fichier ayant du texte et des lignes vides. Je souhaite faire un petit module VB permettant de supprimer ces lignes vides, et je n'y arrive pas.

J'ai fait le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
Dim I As Integer
 
    Documents.Open FileName:="D:\test.doc", ConfirmConversions:=False, ReadOnly:= _
        False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
        "", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
        Format:=wdOpenFormatAuto, XMLTransform:="", DocumentDirection:= _
        wdLeftToRight
 
    Selection.HomeKey Unit:=wdStory
 
For I = 1 To 30
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    If ((Selection.Text) = "") Then Selection.Delete Unit:=wdCharacter, Count:=1
    Selection.Next
Next
Seulement là, ça ne supprime rien.

Je pense que le problème est dans ma condition, seulement je n'arrive pas à le résoudre.

Si quelqu'un a une solution, merci de votre aide

Tsutsu
Tsuna78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 18h00   #2
Membre du Club
 
Inscription : février 2007
Messages : 71
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : février 2007
Messages : 71
Points : 62
Points : 62
Salut,

Essayes avec ça, pour voir si change un truc

Code :
1
2
3
4
5
6
7
8
9
For I = 1 To 30
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    If ((Selection.Text) = Chr(13)) Then
        Selection.Delete Unit:=wdCharacter, Count:=1
    Else
        Selection.MoveDown wdLine, 1, wdMove
        Selection.HomeKey wdLine, wdMove
    End If
Next
Speedrman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2007, 20h13   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Essaie ça
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub SupLignesVides()
Dim m As Range
    Selection.WholeStory
    For Each m In ActiveDocument.Characters
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = vbCr & vbCr
            .Replacement.Text = vbCr
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Next
End Sub
Supprime toutes les lignes vides
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2007, 13h56   #4
Invité régulier
 
Inscription : mars 2007
Messages : 61
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 61
Points : 7
Points : 7
Merci pour votre aide, cela fonctionne parfaitement (pour les deux codes)
Tsuna78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h36.


 
 
 
 
Partenaires

Hébergement Web