Texte dans Text Box avec caractères spéciaux
Le
Steph

Bonjour,
J'essaye de copier le texte se trouvant dans une case d'une feuille de mon
classeur ici la case C19 dans une "Zone de texte" se trouvant sur cette même
feuille
J'utilise ce code dans une macro:
ActiveSheet.Shapes("Text Box 3008").Select
Selection.Characters.Text = Range("C19").Text
Dans la case C19 si je place un texte simple genre "Bonjour", ca fonctionne
bien. Par contre si il y a des caractères spéciaux cela ne fonctionne plus !
Dans la case C19 j'ai normallement ce texte
"Pour toute commande au montant inférieur à 100,00? (HTVA), des frais de
dossier de 15,00? (HTVA) doivent être ajoutés.
Toute variation de quantité peut avoir une influence sur les prix annoncés.
Paiement 100% à 30 jours fin de mois date de livraison.
Départ usine - non emballé.
Validité de l'offre: 1 mois."
Comment faire pour que cela fonctionne également avec le texte ci-dessus, y
a t'il une fonction permettant de remplacer les caractères spéciaux comme
addslash en php ???
D'avance merci pour vos réponses,
Steph
J'essaye de copier le texte se trouvant dans une case d'une feuille de mon
classeur ici la case C19 dans une "Zone de texte" se trouvant sur cette même
feuille
J'utilise ce code dans une macro:
ActiveSheet.Shapes("Text Box 3008").Select
Selection.Characters.Text = Range("C19").Text
Dans la case C19 si je place un texte simple genre "Bonjour", ca fonctionne
bien. Par contre si il y a des caractères spéciaux cela ne fonctionne plus !
Dans la case C19 j'ai normallement ce texte
"Pour toute commande au montant inférieur à 100,00? (HTVA), des frais de
dossier de 15,00? (HTVA) doivent être ajoutés.
Toute variation de quantité peut avoir une influence sur les prix annoncés.
Paiement 100% à 30 jours fin de mois date de livraison.
Départ usine - non emballé.
Validité de l'offre: 1 mois."
Comment faire pour que cela fonctionne également avec le texte ci-dessus, y
a t'il une fonction permettant de remplacer les caractères spéciaux comme
addslash en php ???
D'avance merci pour vos réponses,
Steph
Je n'ai pas compris de quels caractères spéciaux il s'agit mais essaie ceci :
ActiveSheet.Shapes("Text Box 3008").OleFormat.object.text = Range("C19").Value
au lieu de ceci :
ActiveSheet.Shapes("Text Box 3008").Select
Selection.Characters.Text = Range("C19").Text
C'est malheureusement pareil, ça ne fonctionne toujours pas.
Si j'essaye avec un texte plus petit et plus simple cela fonctionne c'est
bizarre, c'est donc du à mon texte, du à la longueur ou du au type de
caractères
Pour rappel, voici mon texte dans la case C19
"Pour toute commande au montant inférieur à 100,00? (HTVA), des frais de
dossier de 15,00? (HTVA) doivent être ajoutés.
Toute variation de quantité peut avoir une influence sur les prix annoncés.
Paiement 100% à 30 jours fin de mois date de livraison.
Départ usine - non emballé.
Validité de l'offre: 1 mois."
Currieux, une autre idée ?
Merci
Steph
"MichD" jqaed8$2h7$
caractères dès que je place un 256eme caractère cela ne fonctionne plus
Y a t'il une raison et surtout une solution à cela ?
"MichD" jqaed8$2h7$
Tu fais référence à une zone de texte ou à un TEXBOX? Si c'est un Textbox,
il émane de la boîte d'outils "Formulaire" ou "contrôle"?
Et si je place le texte manuellement ou avec un copier coller standard, ça
fonctionne bien currieusement.
"MichD" jqahhr$b9l$
Testé avec le contenu d'une cellule de 1151 caractères
'---------------------------------------------
Sub test()
Dim T As String
T = Range("D1").Text
y = Len(T) 'testé avec 1151 caractères
Feuil.Shapes("Toto").OLEFormat.Object.Text = T
End Sub
'---------------------------------------------
'Insertion du texte par tranche de 255 caractères.
'---------------------------------------------
Sub test1()
Dim T As String
T = Range("D1").Text
For a = 1 To Len(Range("D1"))
T = Mid(Range("D1").Text, a, 255)
With Feuil1.Shapes("Toto").OLEFormat.Object
.Text = .Text & T
End With
a = a + 255
Next
End Sub
'---------------------------------------------
"Steph" a écrit dans le message de groupe de discussion :
4fc8ca22$0$3109$
C'est bien une "Zone de Texte" sur une feuille, pas un TextBox d'un UserForm
Et si je place le texte manuellement ou avec un copier coller standard, ça
fonctionne bien currieusement.
"MichD" jqahhr$b9l$
"MichD" jqak59$iq0$
rester en dessous des 255 caractères.
Merci pour tes idées MichD ;-)
"Steph" 4fc8b79f$0$3119$
(J'ai les retrouvé dans mes notes)
Elles avaient été proposées il y a plusieurs années (en 2003) par les
auteurs
Alain Cros et Michel Gaboly
Ces 2 procédures ont pour but de transférer un long texte d'une zone de
texte
à une autre zone de texte. Je suppose que tu devrais être capable de les
adapter
à ton environnement.
'--------------------------------------------------------
Sub RemplirZoneDeTexte() ' Par Alain Cros
Dim I&, J&
I = Abs(Shapes(1).TextFrame.Characters.Count / 255) + 1
For J = 1 To I
Shapes(2).TextFrame.Characters((J - 1) * 255, 255).Text = _
Shapes(1).TextFrame.Characters((J - 1) * 255, 255).Text
Next J
End Sub
'-------------------------------------------------------
Sub ReportTexte() ' Par Michel Gaboly
Dim Mat() As String, i As Integer, j As Integer, NbCar As Long, Reste As
Integer, Fin As String
With Sheets(1).Shapes("Zone1").TextFrame
NbCar = .Characters.Count
j = Int(NbCar / 255) - 1
Reste = NbCar Mod 255
ReDim Mat(j)
For i = 0 To j
Mat(i) = .Characters(i * 255 + 1, (i + 1) * 255).Text
Next i
Fin = .Characters(256, Reste).Text
End With
With Sheets(2).Shapes("Zone2").TextFrame
For i = 0 To j
.Characters(i * 255 + 1).Insert Mat(i)
Next i
.Characters(i * 255 + 1).Insert Fin
End With
End Sub
'-------------------------------------------------------