VBExcel Modifier tableau word depuis Excel
vtim806
-
vtim806 -
vtim806 -
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
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:
- VBExcel Modifier tableau word depuis Excel
- Tableau word - Guide
- Word et excel gratuit - Guide
- Modifier liste déroulante excel - Guide
- Word 2013 - Télécharger - Traitement de texte
- Trier un tableau excel - Guide
2 réponses
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+
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+
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
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