OVH Cloud OVH Cloud

String limité à 255 caractères !

7 réponses
Avatar
TOF
Bonjour

Alors mon probl=E8me est le suivant
Dans une macro je veux r=E9cup=E9rer le texte sasi dans une=20
zone de texte 1 pour le mettre dans une zone de texte 2.
J'ai mis le code suivant :

Dim text1 As String
=20
Sheets("PAGE 1").Select
Sheets("PAGE 1").Shapes("Text Box 2").Select
text1 =3D Selection.Characters.Text
Range("L33").Select
Sheets("PAGE 1 DIF").Select
Sheets("PAGE 1 DIF").Shapes("Text Box 9").Select
Selection.Characters.Text =3D text1
=20

Alors =E7a marche pas mal mais le probl=E8ble c'est que je=20
r=E9cup=E8re que les 255 premiers caract=E8res de la zone de=20
texte 1 et donc je n'ai pas la suite ! G=E9nant ! J'ai vu=20
dans l'aide que les strings ne prennes que 255 caract=E8res,=20
mais je suppose qu'il doit bien y avoir un moyen !

Si quelqu'un aurait une id=E9e de comment je pourrais=20
r=E9cup=E9rer tout mon texte, ce serait super cool !
Merci d'avance.

TOF

7 réponses

Avatar
Denis Michon
Bonjour Tof,


Pour récupérer le text complet de ta zone de texte,

assure-toi que le nom des objets est adéquat avec ceux ce ton projet.

Dim LeText as String
With Worksheets("Feuil1")
LeText = .Shapes(1).OLEFormat.Object.Text
End With


Salutations!



"TOF" a écrit dans le message de news:09b601c3aea0$e7afe2d0$
Bonjour

Alors mon problème est le suivant
Dans une macro je veux récupérer le texte sasi dans une
zone de texte 1 pour le mettre dans une zone de texte 2.
J'ai mis le code suivant :

Dim text1 As String

Sheets("PAGE 1").Select
Sheets("PAGE 1").Shapes("Text Box 2").Select
text1 = Selection.Characters.Text
Range("L33").Select
Sheets("PAGE 1 DIF").Select
Sheets("PAGE 1 DIF").Shapes("Text Box 9").Select
Selection.Characters.Text = text1


Alors ça marche pas mal mais le problèble c'est que je
récupère que les 255 premiers caractères de la zone de
texte 1 et donc je n'ai pas la suite ! Génant ! J'ai vu
dans l'aide que les strings ne prennes que 255 caractères,
mais je suppose qu'il doit bien y avoir un moyen !

Si quelqu'un aurait une idée de comment je pourrais
récupérer tout mon texte, ce serait super cool !
Merci d'avance.

TOF
Avatar
TOF
Merci bien, mais je n'ai toujours que 255 caractères !!
Sniff

-----Message d'origine-----
Bonjour Tof,


Pour récupérer le text complet de ta zone de texte,

assure-toi que le nom des objets est adéquat avec ceux ce
ton projet.


Dim LeText as String
With Worksheets("Feuil1")
LeText = .Shapes(1).OLEFormat.Object.Text
End With


Salutations!



"TOF" a écrit dans le message de
news:09b601c3aea0$e7afe2d0$

Bonjour

Alors mon problème est le suivant
Dans une macro je veux récupérer le texte sasi dans une
zone de texte 1 pour le mettre dans une zone de texte 2.
J'ai mis le code suivant :

Dim text1 As String

Sheets("PAGE 1").Select
Sheets("PAGE 1").Shapes("Text Box 2").Select
text1 = Selection.Characters.Text
Range("L33").Select
Sheets("PAGE 1 DIF").Select
Sheets("PAGE 1 DIF").Shapes("Text Box 9").Select
Selection.Characters.Text = text1


Alors ça marche pas mal mais le problèble c'est que je
récupère que les 255 premiers caractères de la zone de
texte 1 et donc je n'ai pas la suite ! Génant ! J'ai vu
dans l'aide que les strings ne prennes que 255 caractères,
mais je suppose qu'il doit bien y avoir un moyen !

Si quelqu'un aurait une idée de comment je pourrais
récupérer tout mon texte, ce serait super cool !
Merci d'avance.

TOF


.



Avatar
Alain CROS
Bonjour.

Il y a effectivement un problème lorsque le texte dépasse 255 caractères.
Essaye ça.

Sub RemplirZoneDeTexte()
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'AC

Alain CROS.
Avatar
Michel Gaboly
Bonjour,

J'avais une solution moins élégante ;-((((

Sub ReportTexte()
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




Bonjour.

Il y a effectivement un problème lorsque le texte dépasse 255 caractères.
Essaye ça.

Sub RemplirZoneDeTexte()
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'AC

Alain CROS.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Jean-François Aubert
Bonsoir,

Dans une macro je veux récupérer le texte sasi dans une
zone de texte 1 pour le mettre dans une zone de texte 2.


Et sans passer par un string ?

ActiveSheet.OLEObjects("TextBox2").Object.Value = _
ActiveSheet.OLEObjects("TextBox1").Object.Value




--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"TOF" a écrit dans le message de news:09b601c3aea0$e7afe2d0$
Bonjour

Alors mon problème est le suivant
Dans une macro je veux récupérer le texte sasi dans une
zone de texte 1 pour le mettre dans une zone de texte 2.
J'ai mis le code suivant :

Dim text1 As String

Sheets("PAGE 1").Select
Sheets("PAGE 1").Shapes("Text Box 2").Select
text1 = Selection.Characters.Text
Range("L33").Select
Sheets("PAGE 1 DIF").Select
Sheets("PAGE 1 DIF").Shapes("Text Box 9").Select
Selection.Characters.Text = text1


Alors ça marche pas mal mais le problèble c'est que je
récupère que les 255 premiers caractères de la zone de
texte 1 et donc je n'ai pas la suite ! Génant ! J'ai vu
dans l'aide que les strings ne prennes que 255 caractères,
mais je suppose qu'il doit bien y avoir un moyen !

Si quelqu'un aurait une idée de comment je pourrais
récupérer tout mon texte, ce serait super cool !
Merci d'avance.

TOF

Avatar
Denis Michon
Bonsoir Tof,

Désolé, mais je n'ai pas testé...avant de publier...et ça arrive, il y a des "trous" dans le modèle objet d'excel...

Par exemple, on peut récupérer le nombre de caractères du textbox... mais pas le texte ....

Dim LeText as Integer
With Worksheets("Feuil1")
LeText = .Shapes(1).OLEFormat.Object.Characters.Count
End With

Enfin, voici une adresse où tout est expliqué ...

L'explication est écrite en anglais + exemple de code ..pas trop difficile à le lire !!!

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q148/8/15.asp&NoWebContent=1



Salutations!



"TOF" a écrit dans le message de news:0d0901c3aeb5$c82f6a10$
Merci bien, mais je n'ai toujours que 255 caractères !!
Sniff

-----Message d'origine-----
Bonjour Tof,


Pour récupérer le text complet de ta zone de texte,

assure-toi que le nom des objets est adéquat avec ceux ce
ton projet.


Dim LeText as String
With Worksheets("Feuil1")
LeText = .Shapes(1).OLEFormat.Object.Text
End With


Salutations!



"TOF" a écrit dans le message de
news:09b601c3aea0$e7afe2d0$

Bonjour

Alors mon problème est le suivant
Dans une macro je veux récupérer le texte sasi dans une
zone de texte 1 pour le mettre dans une zone de texte 2.
J'ai mis le code suivant :

Dim text1 As String

Sheets("PAGE 1").Select
Sheets("PAGE 1").Shapes("Text Box 2").Select
text1 = Selection.Characters.Text
Range("L33").Select
Sheets("PAGE 1 DIF").Select
Sheets("PAGE 1 DIF").Shapes("Text Box 9").Select
Selection.Characters.Text = text1


Alors ça marche pas mal mais le problèble c'est que je
récupère que les 255 premiers caractères de la zone de
texte 1 et donc je n'ai pas la suite ! Génant ! J'ai vu
dans l'aide que les strings ne prennes que 255 caractères,
mais je suppose qu'il doit bien y avoir un moyen !

Si quelqu'un aurait une idée de comment je pourrais
récupérer tout mon texte, ce serait super cool !
Merci d'avance.

TOF


.



Avatar
TOF
Alors là Denis, c'est super top !!
Tout simplement merveilleux !
Encore merci , mille fois merci !

-----Message d'origine-----
Bonsoir Tof,

Désolé, mais je n'ai pas testé...avant de publier...et ça
arrive, il y a des "trous" dans le modèle objet d'excel...


Par exemple, on peut récupérer le nombre de caractères du
textbox... mais pas le texte ....


Dim LeText as Integer
With Worksheets("Feuil1")
LeText = .Shapes(1).OLEFormat.Object.Characters.Count
End With

Enfin, voici une adresse où tout est expliqué ...

L'explication est écrite en anglais + exemple de
code ..pas trop difficile à le lire !!!


http://support.microsoft.com/default.aspx?
scid=http://support.microsoft.com:80/support/kb/articles/Q1

48/8/15.asp&NoWebContent=1



Salutations!



"TOF" a écrit dans le message de
news:0d0901c3aeb5$c82f6a10$

Merci bien, mais je n'ai toujours que 255 caractères !!
Sniff

-----Message d'origine-----
Bonjour Tof,


Pour récupérer le text complet de ta zone de texte,

assure-toi que le nom des objets est adéquat avec ceux ce
ton projet.


Dim LeText as String
With Worksheets("Feuil1")
LeText = .Shapes(1).OLEFormat.Object.Text
End With


Salutations!



"TOF" a écrit dans le message de
news:09b601c3aea0$e7afe2d0$

Bonjour

Alors mon problème est le suivant
Dans une macro je veux récupérer le texte sasi dans une
zone de texte 1 pour le mettre dans une zone de texte 2.
J'ai mis le code suivant :

Dim text1 As String

Sheets("PAGE 1").Select
Sheets("PAGE 1").Shapes("Text Box 2").Select
text1 = Selection.Characters.Text
Range("L33").Select
Sheets("PAGE 1 DIF").Select
Sheets("PAGE 1 DIF").Shapes("Text Box 9").Select
Selection.Characters.Text = text1


Alors ça marche pas mal mais le problèble c'est que je
récupère que les 255 premiers caractères de la zone de
texte 1 et donc je n'ai pas la suite ! Génant ! J'ai vu
dans l'aide que les strings ne prennes que 255
caractères,


mais je suppose qu'il doit bien y avoir un moyen !

Si quelqu'un aurait une idée de comment je pourrais
récupérer tout mon texte, ce serait super cool !
Merci d'avance.

TOF


.




.