VBExcel Modifier tableau word depuis Excel

Fermé
vtim806 - 6 juin 2009 à 11:34
 vtim806 - 6 juin 2009 à 19:33
Bonjour,

J'ouvre un document Word existant depuis Excel. J'insère des données de cellules Excel dans le tableau qui se trouve dans le document Word. Et enfin j'enregistre le document word ainsi modifié sous un autre nom. J'insère:

* dans la ligne 1 de mon tableau Word la donnée contenue en A1 d'Excel,
* en ligne 2 la donnée contenue en A2
* en ligne 3 la donnée contenue en A3

Les données passent bien d'Excel à mon tableau Word. Ce que je souhaite, c'est que lorsque la cellule A1, A2 ou A3 est vide alors soit supprimée dans le tableau Word la ligne 1,2 ou 3.

Pour être plus clair, si A2 est vide, je souhaiterai supprimer la ligne 2 du document Word.


Je me suis lancé dans le code suivant qui tourne (il assure le transfert des données des cellules Excel vers les lignes du tableau Word) mais ne supprime pas la ligne du tableau Word si la cellule Excel est vide.

Sub fiche()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document

Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.Documents.Open("C:\tableau.docx") 'ouvre le document Word

'transfert des données des cellules A1, A2 et A3 dans les lignes 1,2 et 3 du tableau Word.
WordDoc.Tables(1).Rows(1).Range.Text = Range("A1")
WordDoc.Tables(1).Rows(2).Range.Text = Range("A2")
WordDoc.Tables(1).Rows(3).Range.Text = Range("A3")

If WordDoc.Tables(1).Rows(1).Range.Text = "" Then WordDoc.Tables(1).Rows(1).Delete
If WordDoc.Tables(1).Rows(2).Range.Text = "" Then WordDoc.Tables(1).Rows(2).Delete
If WordDoc.Tables(1).Rows(3).Range.Text = "" Then WordDoc.Tables(1).Rows(3).Delete

WordDoc.SaveAs ("C:\tableau_nouveau.docx")

End Sub


Alors si vous avez des idées sur on problème, merci pour votre aide

Merci

Tim
A voir également:

2 réponses

Utilisateur anonyme
6 juin 2009 à 18:34
Bonjour
as tu vérifié que WordDoc.Tables(1).Rows(1).Range.Text est effectivement vide? qu'il n'y a pas un espace ou autre
sinon tu peux essayer :
If Range("A1") .Value = "" Then WordDoc.Tables(1).Rows(1).Delete

A+
0
J'ai vérifié dans mon document Word si la case était bien vide ou s'il y avait un éventuel espace, ce n'est pas le cas.

Pour ce qui est de passer par: If Range("A1") .Value = "" Then WordDoc.Tables(1).Rows(1).Delete, ça marche très bien et c'est encore plus simple donc merci beaucoup pour ton aide.

Tim
0