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
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
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
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
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
Voilà la capture ; mais sur le principe j'ai juste créer 2 tableaux avec la cellule (1,1) qui contient "Mon texte" et les autres cells j'ai remplies au hasard pour tester si la macro marche bien.
Merci
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
10 janv. 2020 à 23:51
10 janv. 2020 à 23:55
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 ;
Modifié le 11 janv. 2020 à 00:00