XL 2019 suppression de ligne word via vba excel

Adrien60

XLDnaute Nouveau
Bonjour,
je cherche a supprimer une ligne entière de mon document word que je met à jour via un formulaire excel.
la ligne concerné sur word contient ceci:
deux tabulations puis un controle de contenu de texte brut
j'utilise le code suivant pour supprimer le controle de contenu si ma cellule excel est vide:

If ws.Cells(10, 2).Value = "" Then
WordDoc.selectcontentcontrolsbytitle(ws.Cells(10, 1).Value).Item(1).Delete True
End if

j'ai ensuite essayé d'englober mes deux tabulations et le controle du contenu de texte brut par un controle du contenu du texte enrichi nommé "cache_adresse2" et mis le code suivant:

If ws.Cells(9, 2) = "" Then
WordDoc.selectcontentcontrolsbytitle("cache_adresse2").Item(1).Delete True
End If

cela me vide bien la ligne mais elle est toujours présente soit:
avant:
tabulation tabulation adresse1
tabulation tabulation adresse2
tabulation tabulation CP Ville
apres lancement macro:
tabulation tabulation 33 rue bidulle

tabulation tabulation 13547 par ici
je voudrais:
tabulation tabulation 33 rue bidulle
tabulation tabulation 13547 par ici

j'espère avoir été assez clair.
Merci pour vos solutions

https://www.developpez.net/forums/editpost.php?p=11642846&do=editpost
 

herve62

XLDnaute Barbatruc
Bonsoir
Euh ?? vite fait il me semble que Excel est un tableur !! pas un correcteur de documents !
J'ai déjà utilisé des export word pour insérer des données dans un document , mais déjà pour ça il faut un squelette prédéfini dans word
Là je pense que tu dois penser à autre
Déjà tout bête pourquoi pas refaire ton doc word généric ? sans ligne vide ?
 

Adrien60

XLDnaute Nouveau
Bonsoir
Euh ?? vite fait il me semble que Excel est un tableur !! pas un correcteur de documents !
J'ai déjà utilisé des export word pour insérer des données dans un document , mais déjà pour ça il faut un squelette prédéfini dans word
Là je pense que tu dois penser à autre
Déjà tout bête pourquoi pas refaire ton doc word généric ? sans ligne vide ?

Bonjour,

ceci n'est qu'une partie.
Mon fichier excel sert à compiler beaucoup de données. Dans le but de créer des devis à partir de nombreux paramètres et des rapports à partir de nombreux résultats se trouvant dans d'autres feuilles excel.
on m'a fourni la solution ci dessous qui fonctionne correctement:

If ws.Cells(9, 2).Value = "" Then
SupprimerParagrapheContentControl WordDoc, "adresse2"
End If

Sub SupprimerParagrapheContentControl(ByVal WordDoc2 As Object, ByVal TitreDuControle As String)

Dim I As Integer, ParagrapheSelectionne As Integer
Dim MaSelection As Object, MonApplication As Object


ParagrapheSelectionne = 0
With WordDoc2

Set MonApplication = .Parent
Set MaSelection = MonApplication.Selection

For I = 1 To .ContentControls.Count
With .ContentControls(I)
If .Title = TitreDuControle Then
.Range.Select
MaSelection.HomeKey unit:=wdStory, Extend:=wdExtend
ParagrapheSelectionne = MaSelection.Paragraphs.Count
Exit For
End If
End With
Next I

If ParagrapheSelectionne > 0 Then
' Debug.Print MaSelection.Text
.Paragraphs(ParagrapheSelectionne).Range.Delete
End If

Set MonApplication = Nothing
Set MaSelection = Nothing

End With

End Sub
 

Discussions similaires

Haut Bas