Modifier des tableaux sous WORD en VBA [Résolu]

- - Dernière réponse :  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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80
1
Merci
Je crois savoir que ce sont des retour-chariot qui sont ajoutés par Word lui-même

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS SourceS

Codes Sources 140 internautes nous ont dit merci ce mois-ci

cocopsa
Messages postés
33
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
10 janvier 2020
-
non. le gars semble dire que c'est lié à : "caractères non imprimables qui délimitent la cellule"
vb95
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80 -
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 ;
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
Commenter la réponse de vb95
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80
0
Merci
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

Commenter la réponse de vb95
0
Merci
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
vb95
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80 -
Bonsoir
J'ignore totalement ce que contient ton document Word .
Comment veux-tu que je te réponde quelque chose
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  

vb95
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80 -
Pour moi ce ne sont pas des tableaux
C'est juste un fichier Texte au format Word avec une information par ligne
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
vb95
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80 -
Tu peux mettre une image de la page Word avec le dernier bouton
Commenter la réponse de cocopops
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80
0
Merci
Bonsoir !
Regarde ici ! tu devrais trouver ton bonheur ( je ne suis pas spécialiste en VBA) : https://word.developpez.com/faq/?page=tableaux-VBA
cocopsa
Messages postés
33
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
10 janvier 2020
-
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
cocopsa
Messages postés
33
Date d'inscription
lundi 20 août 2007
Statut
Membre
Dernière intervention
10 janvier 2020
-
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
vb95
Messages postés
2017
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
12 janvier 2020
80 -
bonsoir
j'ai marqué le sujet comme étant résolu
bjr, je l'avais pourtant fait … peut etre qu'il y a un trcu qui m' a echappé . merc quand meme
Commenter la réponse de vb95