Modifier des tableaux sous WORD en VBA

Résolu
cocopops - 9 janv. 2020 à 15:39
 cocopops - 12 janv. 2020 à 19:52
Bonjour,

Je recherche à aller dans tous les tableaux qui existent dans mes tableaux du document word afin de les modifier.
Mon code tourne à l'infini visiblement.
Merci de l'aide.
Dim strcp As String
Dim i As Integer
Dim rgeTable As Range
Dim temp As String
Dim stTemp As String
Dim NetText As String

With ActiveDocument
Do While .Tables.Count > 0
'Set range to first table
Set rgeTable = .Tables(1).Range
'.Tables(1).Range.Select
strcp = .Tables(1).Cell(1, 1).Range.Text
temp = "MonTexte"
If strcp = temp Then
.Tables(1).Rows(4).Delete
.Tables(1).Rows(5).Delete
.Tables(1).Rows(6).Delete
stTemp = .Tables(1).Cell(2, 1).Range.Text
NetText = Mid(stTemp, 3, 8)
'NetText = Left(stTemp, Len(stTemp - 20))
.Tables(1).Cell(1, 1).Range.Text = NetText
End If
Loop
End With

End Sub

4 réponses

vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
10 janv. 2020 à 23:08
Je crois savoir que ce sont des retour-chariot qui sont ajoutés par Word lui-même
1
cocopsa
Messages postés
37
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
2 mai 2020

10 janv. 2020 à 23:51
non. le gars semble dire que c'est lié à : "caractères non imprimables qui délimitent la cellule"
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
10 janv. 2020 à 23:55
Un retour-chariot n'est pas imprimable
Les lettres ( A, B, C, etc...) , les chiffres (0, 1,2,etc....) et certains caractères ( deux-points, virgule, parenthèses, etc....:) sont imprimables eux ;
0
exact. ce que je voulais dire est que les caracteres speciaux que je montre sur l image qui representent chaque cellule semblent etre a l origine du pv
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
Modifié le 9 janv. 2020 à 18:17
Bonjour !
Une boucle For me parait plus adapté

Dim strcp As String
Dim i As Integer
Dim rgeTable As Range
Dim temp As String
Dim stTemp As String
Dim NetText As String
For i = 1 to  ActiveDocument.Tables.Count
    With ActiveDocument.Tables(i) ' pour chaque tableau
        'Set range to first table
        Set rgeTable = .Range
        '.Range.Select
        strcp = .Cell(1, 1).Range.Text
        temp = "MonTexte"
        If strcp = temp Then
            .Rows(4).Delete
            .Rows(5).Delete
            .Rows(6).Delete
            stTemp = .Cell(2, 1).Range.Text
            NetText = Mid(stTemp, 3, 8)
            'NetText = Left(stTemp, Len(stTemp - 20))
             .Cell(1, 1).Range.Text = NetText
        End If
    End With
Next i


Pour poster ton code, merci de lire et d’appliquer ce qui est décrit dans ce petit tuto ( ton code sera bien plus lisible et coloré ) --> https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

0
Hello
Merci de l'aide et de la recommandation ; c'est en effet plus agrébale à lire.
Sinon la macro tourne mais il ne se passe rien sur mes tableaux.
Apres un pas à pas , il semblerait que mes variable strcp n'est jamais identique à temp => du coup je ne rentre jamais dans la boucle If.
Cela est lié au fait que strcp="Mon Texte°" et temp ="Mon Texte" il y a un caractère supplémentair dans strcp ( d'ailleurs d'ou vient il ??? ).

J'ai essayé de m'en débarasser avec la fonction suivante trouvé sur forum mais ça marche pas

Public Function NetText(stTemp As String) As String
'Nous utilisans les caractères de la chaîne sans les deux derniers
NetText = Left(stTemp, Len(stTemp) - 1)
End Sub
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
9 janv. 2020 à 22:37
Bonsoir
J'ignore totalement ce que contient ton document Word .
Comment veux-tu que je te réponde quelque chose
0
Bah 2 pauvres tableaux pour tester 6 lignes par 3 colonnes :
Mon Texte  
dede  
deed  
sfdf  
sdfdsf  
sdfsdf  



Mon Texte  
szdzf  
fdg  
sdfgd  
ghj  
dfggfdg  

0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
9 janv. 2020 à 23:41
Pour moi ce ne sont pas des tableaux
C'est juste un fichier Texte au format Word avec une information par ligne
0
Hello,
ou c est le copier/coller qui ne rends pas bien. j ai essayé plusieurs formats comme préconisé dans le tuto ccm. sinon je peux envoyer la pj word si ca peut faire avancer le pb. merci
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
10 janv. 2020 à 14:56
Tu peux mettre une image de la page Word avec le dernier bouton
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
10 janv. 2020 à 22:36
Bonsoir !
Regarde ici ! tu devrais trouver ton bonheur ( je ne suis pas spécialiste en VBA) : https://word.developpez.com/faq/?page=tableaux-VBA
0
cocopsa
Messages postés
37
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
2 mai 2020

10 janv. 2020 à 23:02
merci du lien; j'avais déjà fouiné sur cette FAQ.
mon problème est pourquoi l'instruction ajoute un caractère

quand je force la suppression de ce dernier caractère, la macro marche nickel.
=> est ce que quelqu'un sait expliquer pourquoi on a ça:



Merci
0
cocopsa
Messages postés
37
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
2 mai 2020

10 janv. 2020 à 23:36
Ca y est j'ai trouvé sur le forum developpez .com pourquoi :
"Nous avons vu comment ajouter un contenu à une cellule et un exercice pour le récupérer. Lors de cette récupération, vous aurez probablement remarqué que le texte récupéré est plus long que le texte ajouté. Ce phénomène est dû aux caractères non imprimables qui délimitent la cellule. Pour remédier à cet inconvénient, nous allons fabriquer une petite fonction utilisant certaines fonctions que nous avons vues dans les chapitres précédents "
https://heureuxoli.developpez.com/office/word/vba-word/#LVI
voir VI -A- 3
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
12 janv. 2020 à 17:23
bonsoir
j'ai marqué le sujet comme étant résolu
0
bjr, je l'avais pourtant fait … peut etre qu'il y a un trcu qui m' a echappé . merc quand meme
0