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
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 ???
au lieu de ceci : ActiveSheet.Shapes("Text Box 3008").Select Selection.Characters.Text = Range("C19").Text
Steph
Bonjour michD,
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" a écrit dans le message de news: jqaed8$2h7$
Bonjour,
Je n'ai pas compris de quels caractères spéciaux il s'agit mais essaie ceci :
au lieu de ceci : ActiveSheet.Shapes("Text Box 3008").Select Selection.Characters.Text = Range("C19").Text
Bonjour michD,
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" <michdenis@hotmail.com> a écrit dans le message de news:
jqaed8$2h7$1@speranza.aioe.org...
Bonjour,
Je n'ai pas compris de quels caractères spéciaux il s'agit mais essaie
ceci :
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" a écrit dans le message de news: jqaed8$2h7$
Bonjour,
Je n'ai pas compris de quels caractères spéciaux il s'agit mais essaie ceci :
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" a écrit dans le message de news: jqahhr$b9l$
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
MichD
Avec Excel 2010, ces 2 approches fonctionnent. 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" a écrit dans le message de news: jqahhr$b9l$
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
Avec Excel 2010, ces 2 approches fonctionnent.
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$ba620e4c@news.skynet.be...
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" <michdenis@hotmail.com> a écrit dans le message de news:
jqahhr$b9l$1@speranza.aioe.org...
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
Avec Excel 2010, ces 2 approches fonctionnent. 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" a écrit dans le message de news: jqahhr$b9l$
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
Steph
Malheureusement aucune de ces deux solutions ne fonctionne sur Excel 2003
"MichD" a écrit dans le message de news: jqak59$iq0$
Avec Excel 2010, ces 2 approches fonctionnent. 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" a écrit dans le message de news: jqahhr$b9l$
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
Malheureusement aucune de ces deux solutions ne fonctionne sur Excel 2003
"MichD" <michdenis@hotmail.com> a écrit dans le message de news:
jqak59$iq0$1@speranza.aioe.org...
Avec Excel 2010, ces 2 approches fonctionnent.
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$ba620e4c@news.skynet.be...
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" <michdenis@hotmail.com> a écrit dans le message de news:
jqahhr$b9l$1@speranza.aioe.org...
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
Malheureusement aucune de ces deux solutions ne fonctionne sur Excel 2003
"MichD" a écrit dans le message de news: jqak59$iq0$
Avec Excel 2010, ces 2 approches fonctionnent. 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" a écrit dans le message de news: jqahhr$b9l$
Je veux juste m'assurer que l'on parle du même type de contrôle.
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"?
Steph
J'ai finalement scindé en deux "Text Box" différent ce qui me permet de rester en dessous des 255 caractères. Merci pour tes idées MichD ;-)
"Steph" a écrit dans le message de news: 4fc8b79f$0$3119$
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
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'ai finalement scindé en deux "Text Box" différent ce qui me permet de
rester en dessous des 255 caractères.
Merci pour tes idées MichD ;-)
"Steph" <steph.stommen@skynet.be> a écrit dans le message de news:
4fc8b79f$0$3119$ba620e4c@news.skynet.be...
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
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 ???
J'ai finalement scindé en deux "Text Box" différent ce qui me permet de rester en dessous des 255 caractères. Merci pour tes idées MichD ;-)
"Steph" a écrit dans le message de news: 4fc8b79f$0$3119$
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
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
MichD
Ces 2 procédures devraient fonctionner avec les versions antérieures. (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 '-------------------------------------------------------
Ces 2 procédures devraient fonctionner avec les versions antérieures.
(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
'-------------------------------------------------------
Ces 2 procédures devraient fonctionner avec les versions antérieures. (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 '-------------------------------------------------------