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 05/09/2006, 10h54   #1
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 177
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 177
Points : 29
Points : 29
Par défaut [Word] Suppression des lignes d'un tableau

Bonjour,

je dispose d'un tableau créé dans un document word qui est rempli à partir d'excel via automation.

dans certains cas (car il n'y a pas de données dans excel), une ou plusieurs lignes du tableau word sont vides. Je cherche donc à supprimer les lignes correspondantes dans le tableau.

J'ai donc écrit une fonction qui me permet de tester les lignes d'un tableau et de me dire si l'une des cellules de la ligne est vide.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Sub SupprimerLignesTableau(NumTableau, NumLignes, DebutCol, FinCol)
 
Set Tableau = ActiveDocument.Tables(NumTableau)
 
'Récupération dans une variable du nombre de lignes
NbLignes = Tableau.Rows.Count
 
 
 
For I = NumLignes To NbLignes
    réponse = True
        For J = DebutCol To FinCol
                If Tableau.Cell(I, J).Range.Text = Chr(7) Or Tableau.Cell(I, J).Range.Text = " " & Chr(7) Then
                    réponse = False
                End If
 
        Next J
 
If réponse = False Then
    MsgBox ("La ligne est vide")
End If
 
Next I
 
End Sub
Ces cellules vides qui correspondent soit juste à un espacement et une marque de fin de cellule soit juste à une marque de fin de cellule ne sont pas reconnues par la fonction.

Comment faire pour que VBA reconnaisse le caractère de fin de cellule d'un fichier word ?
sat478 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 16h46   #2
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonjour

tu peux essayer ce type de syntaxe pour vérifier si une cellule d'un tableau Word est vide


Code :
1
2
3
4
5
6
If ActiveDocument.Tables(1).Columns(1). _
        Cells(1).Range.Text = Chr(13) & Chr(7) Then
    MsgBox "vide"
    Else
    MsgBox " pas vide"
End If


michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2006, 14h22   #3
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 177
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 177
Points : 29
Points : 29
bonjour, merci pour ta réponse, cela me permet en effet de vérifier que ma cellule est vide.

petite précision également quand à mon code de départ. Le parcours des lignes de mon tableau sert à vérifier que je n'ai pas une cellule vide dans une des lignes. Si c'est le cas, dans ce cas la suite de la sub modifiée me permet de supprimer ladite ligne Rows(I).delete.

Néanmoins pour que cela fonctionne, il est nécessaire de parcourir le tableau de la fin du tableau (dernière ligne) vers le début du tableau. Sinon en supprimant les lignes du tableau au fur et à mesure, la boucle ne fonctionne plus.
sat478 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web