Pas de soucis.
Par contre :
1 - vu que ta question est résolue ( ta seconde question ayant été également traitée dans ton autre discussion), merci de passer le sujet en clos en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de ta question.
2 - Dans ta concaténation... attention à ce que ton nom de fichier + le chemin où tu le stockes ne dépasse pas les 256 caractères (Windows a tendance à ne pas aimer...)
3 - Il existe une fonction en VBA qui permet de retirer les espaces qui se trouvent avant et après une chaine de caractères... ainsi plus besoin de tes if.. TRIM
Objet = trim(ActiveDocument.Bookmarks("Objet").Range.Text)
Envoie = trim(ActiveDocument.Bookmarks("Envoie").Range.Text)
Tu pourrais même te faire une fonction de "nettoyage" de tes chaines de caractères pour retirer tous les caractères "gênants"
Function strClean(str) As String
' Fonction de nettoyage de chaine de caractères
If IsEmpty(str) Then strClean ""
Dim strTmp As String
str = Replace(str, "'", "")
str = Replace(str, Chr(8), "")
str = Replace(str, Chr(9), "")
str = Replace(str, Chr(10), "")
str = Replace(str, Chr(11), "")
str = Replace(str, Chr(12), "")
str = Replace(str, Chr(13), "")
str = Replace(str, "?", "")
str = Replace(str, "!", "")
str = Replace(str, "/", "")
str = Replace(str, "\", "")
str = Replace(str, ":", "")
str = Replace(str, ";", "")
str = Replace(str, ",", "")
str = Replace(str, "$", "")
str = Replace(str, " ", "")
str = Replace(str, """", "")
' On retourne la chaine néttoyée
strClean = Trim(str)
End Function
( normalement je te l'aurai fait via un REGEX (expréssions régulières) mais ça complique les choses pour pas grand chose...)
et donc pour récupérer tes variables tu ferais :
Objet = strClean(ActiveDocument.Bookmarks("Objet").Range.Text)
Envoie = strClean(ActiveDocument.Bookmarks("Envoie").Range.Text)
Voilou.
Cordialement,
Jordane.
Modifié par jordane45 le 25/03/2014 à 01:25
maintenant je peux vous donner mon code en entier puisque il fonctionne
merci encore