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
vb95
Messages postés3508Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention 2 septembre 2024169 10 janv. 2020 à 23:08
Je crois savoir que ce sont des retour-chariot qui sont ajoutés par Word lui-même
cocopsa
Messages postés37Date d'inscriptionlundi 20 août 2007StatutMembreDerniè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"
vb95
Messages postés3508Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention 2 septembre 2024169 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 ;
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
vb95
Messages postés3508Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention 2 septembre 2024169 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
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és3508Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention 2 septembre 2024169 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
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és3508Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention 2 septembre 2024169 10 janv. 2020 à 14:56
Tu peux mettre une image de la page Word avec le dernier bouton
cocopsa
Messages postés37Date d'inscriptionlundi 20 août 2007StatutMembreDerniè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
cocopsa
Messages postés37Date d'inscriptionlundi 20 août 2007StatutMembreDerniè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
vb95
Messages postés3508Date d'inscriptionsamedi 11 janvier 2014StatutContributeurDernière intervention 2 septembre 2024169 12 janv. 2020 à 17:23
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