Excel to Word-Supprimer du texte word en fonction de l'etat d'un tableau

Bonjour,

j'essaie désespéramment de réaliser un rapport automatisé sur word en fonction de données Excel.

pour ce faire, j'ai créée des tableaux structurés dans excel contenant mes données et un fichier template word, contenant du texte mis en forme.

j'ai créé un script avec bouton qui implémente mes tableaux dans word via des signets.

le script est également capable de détecter lorsqu'un tableaux structuré est vide auquel cas, il ne doit pas l'insérer, et doit supprimer le signet dans word.

Jusque là tout va bien les tableaux s'insèrent bien ou pas selon la condition.

Maintenant je veux dire à mon script : de retirer dans word, en plus du signet, le titre et texte en amont , correspondant à la section/paragraphe du tableau vide, et là patatra impossible.

j'ai tenté de faire des correspondances de type : si signetX inexistant alors suppression titreX, mais impossible

D'où mon appel à l'aide.

pour résumer, mon script doit faire, insérer tableau et texte cellule, mais si tableaux vide, alors suppression signet correspondant, + suppression du texte en amont + suppression espace + suppression saut de ligne + suppression du titre correspond au tableau vide inexistant dans word .

un Grand Merci pour votre aide

Bonjour et bienvenue

Merci de lire ou relire la charte du forum
[A LIRE AVANT DE POSTER] Charte du forum et informations utiles

Et notamment :
4. Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Sinon, cela me semble compliqué de pouvoir vous répondre

A+

Bonjour,

pardon, voici mon bout de script concerné

Merci

Sub SupprimerSignetEtParagraphes(wdDoc As Object, signet As Object)
    Dim para As Object
    Dim i As Long
    Dim signetRange As Range

    ' Récupérer le Range du signet avant de le supprimer
    On Error Resume Next
    Set signetRange = signet.Range
    On Error GoTo 0

    ' Supprimer le signet
    On Error Resume Next
    signet.Delete
    On Error GoTo 0

    ' Supprimer les paragraphes vides ou le titre au-dessus du signet supprimé
    ' Premièrement, vérifier si le signetRange existe toujours
    If Not signetRange Is Nothing Then
        For i = wdDoc.Paragraphs.Count To 1 Step -1
            Set para = wdDoc.Paragraphs(i)

            ' Supprimer les paragraphes vides
            If Trim(para.Range.Text) = vbCr Or Trim(para.Range.Text) = "" Then
                On Error Resume Next
                para.Range.Delete
                On Error GoTo 0
            ElseIf para.Range.Start < signetRange.Start Then
                ' Si c'est le titre du paragraphe correspondant (au-dessus du signet), le supprimer aussi
                On Error Resume Next
                para.Range.Delete
                On Error GoTo 0
                Exit For
            End If
        Next i
    End If
End Sub

Sub InsererTableauDansWord(wdDoc As Object, wb As Object, signetNom As String)
    Dim tableauExcel As Object
    Dim ws As Object

    On Error Resume Next
    Set tableauExcel = wb.Names(signetNom).RefersToRange
    If tableauExcel Is Nothing Then
        For Each ws In wb.Sheets
            Set tableauExcel = ws.ListObjects(signetNom).Range
            If Not tableauExcel Is Nothing Then Exit For
        Next ws
    End If
    On Error GoTo 0

    If Not tableauExcel Is Nothing Then
        ' Insérer le tableau dans Word
        tableauExcel.Copy
        wdDoc.Bookmarks(signetNom).Range.Paste
        Application.CutCopyMode = False
    End If
End Sub

Bonsoir,

Vous vous embarquez dans une démarche très complexe. Une démarche bien plus simple est de conditionner l'inclusion du texte précédant vos tableaux par des variables intégrées au document. Il vous suffit dans votre document, d'utiliser les champs : "Si" avec la variable document adéquate et "InclureTexte" . Vous aurez juste à constituer des documents annexes contenant le texte de vos présentations de tableau, chacun de ces documents étant renvoyé par le champ "InclureTexte".

Bonjour Thev,,

merci pour votre réponse, je vais tester.

Merci d'avoir pris le temps😊

Bonjour,

ci-joint un exemple simple de document Word avec un contenu conditionné par une variable document : ts1

18exemple.docm (22.82 Ko)

(Voir les macros Word de création, mise à jour et suppression de la variable).

rappel : affichage champs dans document : 1- les sélectionner, 2- Alt + F9,

mise à jour champs dans document : 1- les sélectionner, 2- F9

Merci encore pour votre réponse

Je vais reformuler car je crois ne pas avoir tout compris

Donc pour rappel mon script retire le tableaux et le signet correspondant si vide.

Donc vous me suggérer de placer un champ conditionnel, au niveau du texte précédant la section vide après retrait du tableau vide, dans le document word ?

exemple :

dans Excel :

Tableau structuré nommé "Tableau15"

dans Word :

2.1.2 Titre (que je dois masquer/supprimé) >> 2.1.2 Titre{IF {DOCVARIABLE Tableau15 \*MERGEFORMAT} "oui" "afficher" 'masquer"

- Texte (que je dois masquer/supprimé) >> Texte{IF {DOCVARIABLE Tableau15 \*MERGEFORMAT} "oui" "afficher" 'masquer"

Signet nommé "Tableau15" >> disparait avec mon script vba

et cela avec le script vba dans word contenant :

Sub ajout_variables()

ThisDocument.Variables.Add Name:="Tableau15"

End Sub

Sub maj_variables()

ThisDocument.Variables("Tableau15") = "oui"
ThisDocument.Fields.Update

End Sub

Sub suppression_variables()
Dim var As Variable

For Each var In ThisDocument.Variables
var.Delete
Next var

End Sub

c'est bien cela ? (j'ai testé cela ne fonctionne pas)

merci de votre aide,

Nell

Bonjour,

ci-joint un exemple de rapport avec 2 tableaux structurés : Tableau14 et Tableau15. Ces 2 tableaux sont paramétrés dans le fichier modèle Word . J'ai laissé le Tableau14 vide pour aperçu du résultat.

14rapport.xlsm (24.26 Ko)
10modele.docx (16.98 Ko)

Un grand Merci,

Je n'en reviens toujours pas, j'y ai passé des heures et des heures!!!

Un grand merci Thev !!! Vous êtes mon nouvel idole!!!

Rechercher des sujets similaires à "word supprimer texte fonction etat tableau"