Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Masquer/Afficher une ligne de tableau Word en fonction de la valeur du contrôleur de contenu

chaelie2015

XLDnaute Accro
Bonjour
J'utilise un fichier Word en tant que modèle de document nommé "Charlie doc type Tableau". À l'intérieur de ce document, il y a un tableau qui contient plusieurs contrôles de contenu de texte enrichi que j'ai nommés comme suit : "Champs_Nom", "Champs_Prénom" et "Champs_Date".

De plus, j'ai un fichier Excel appelé 'Charlie Excel vers Word Tableau' "Feuille1" qui comprend un tableau avec deux colonnes (A et B) et quatre lignes. La première ligne contient les en-têtes du tableau.

Mon objectif est de faire en sorte que les valeurs entrées dans les cellules du tableau A1:B4 de ce fichier Excel soient automatiquement transférées dans les contrôles de contenu correspondants du document Word. Si un contrôle de contenu dans le tableau Word n'est pas renseigné, alors la ligne correspondante dans le tableau Word doit être masquée.
Exemple : Si, après l'exécution du code (que j'apprécie Job d'avoir fourni), la cellule B4 de la feuille 1 du fichier Excel est vide, alors la ligne contenant le contrôle de contenu correspondant dans le tableau Word sera masquée.
Est ce que c'est faisable ?

A+
 

Pièces jointes

  • Charlie doc type Tableau.docx
    28.8 KB · Affichages: 2
  • Charlie Excel vers Word Tableau.xlsm
    19.8 KB · Affichages: 3
Dernière édition:
Solution
Bonjour chaelie2015, le forum,

Bah c'est juste l'histoire d'imbriquer des boucles :
VB:
For Each tbl In Wdoc.Tables
    ncol = tbl.Columns.Count
    For i = tbl.Rows.Count To 1 Step -1
        For j = 1 To ncol
            If tbl.Cell(i, j).Range.Text Like "Cliquez ici*" Then tbl.Cell(i, j).Delete 2: Exit For 'wdDeleteCellsEntireRow
Next j, i, tbl
A+

job75

XLDnaute Barbatruc
et comment pouvons-nous traiter cette commande :
VB:
Wdoc.SaveAs ThisWorkbook.Path & "\" & Range("B2") & " " & Format(Range("B4"), "dd mm yyyy") & ".docx
Traiter ? Vous devez l'adapter aux données que vous voulez utiliser.
C'est à vous de décider ce que vous voulez faire, je vous ai donné tous les éléments pour y parvenir.

Je vous ai dit qu'une cellule "vide" d'un tableau Word contient 2 caractères de codes 13 et 7.

J'ai l'impression que vous ne lisez pas bien mes messages.
 

chaelie2015

XLDnaute Accro
Bonjour Job75, le forum
Ma compréhension en présence d'un spécialiste est plutôt restreinte , c'est pourquoi je suis sur ce forum.
Ton code initial, comme indiqué dans les messages précédents, crée une copie du document d'origine en le renommant d'après les valeurs des cellules B2 et B4. Cependant, il ne gère pas efficacement la suppression des lignes vides dans les tableaux.
En ce moment, je suis confronté à la suppression des lignes des tableaux dans le document Word qui n'ont pas été renseignées à la suite de l'exécution de la macro à partir du fichier Excel.
Encore une fois, je vous remercie d'avance.
 

job75

XLDnaute Barbatruc
Pour le SaveAs vous n'avez pas compris que B2 est une date donc avec le caractère interdit "/".

Utilisez cette instruction :
VB:
Wdoc.SaveAs ThisWorkbook.Path & "\" & Format(Range("B2"), "dd mm yyyy") & " " & Range("B4") & ".docx"
 

Pièces jointes

  • CHARLIE PV CMU Bel 2023 Model.docx
    38.3 KB · Affichages: 2
  • CHARLIE Feuille de saisie PV CMU Bel.xlsm
    47 KB · Affichages: 2

chaelie2015

XLDnaute Accro
Re
Je vous remercie pour votre réponse, cependant, je ne suis pas sûr si vous avez joint les bons fichiers à votre message, car après l'exécution, la copie ne contient aucun tableau, à l'exception des en-têtes.???

Les résultats obtenus ne correspondent pas à ce que j'espérais :
1) Remplir le document Word à partir d'Excel, (partiellement)
2) Supprimer les lignes non renseignées dans les tableaux du document Word via le fichier Excel, (non)
3) Créer une copie du document avec un nouveau nom. (oui)
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
C'est le bon fichier mais les 10 lignes ont été supprimées et je vous ai expliqué pourquoi au post #10.

2 seulement seront supprimées si vous mettez des valeurs en cellules B18:B23 et B32:B35 du fichier Excel.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…