utiliser en VBA excel characters sur chaine longue

3 réponses
Avatar
pirot
Bonjour,

Pour conserver les mises en forme des caract=E8res dans les cellules,
j'utilise la propri=E9t=E9 characters (au lieu de mid qui perd les mises en=
formes)

Mon probl=E8me: lorsque la cellule contient plus de 255 caract=E8res, cela =
ne fonctionne plus.
Y a-t-il moyen de lever cette restriction????

vous pouvez tester l'exemple suivant:
Sub test()

Range("A1") =3D "123456789" & String(100, "e")
Range("A1").Characters(4, 1).Font.Underline =3D True
Range("A1").Characters(4, 1).Delete
Range("a1").Characters(2, 1).Insert "iiiii"


Range("A2") =3D "123456789" & String(500, "e")
Range("A2").Characters(4, 1).Font.Underline =3D True
Range("A2").Characters(4, 1).Delete
Range("A2").Characters(2, 1).Insert "iiiii"
End Sub

merci.

3 réponses

Avatar
MichD
Bonjour,

Il y a ceci :

Range("A2") = "123456789" & String(500, "e")
Range("A2").Characters(4, 1).Font.Underline = True

'4 est le caractère à supprimer dans la cellule A2
Range("A2") = Replace(Range("A2"), 4, "", 1)

'Le deuxième caractère est 2, pour ajouter "iiiii" après le 2 on
'peut écrire quelque chose comme :
Range("A2") = Replace(Range("A2"), 2, "2iiiii", 1)
Avatar
benoit
MichD wrote:

'Le deuxième caractère est 2, pour ajouter "iiiii" après le 2 on
'peut écrire quelque chose comme :
Range("A2") = Replace(Range("A2"), 2, "2iiiii", 1)



Et pour remplacer le 1024e caractère ?

--
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La
pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et
personne ne sait pourquoi !" [ Albert Einstein ]
Avatar
MichD
suppose que tu veuilles changer le 2000e caractère de A2 par "5555"

'----------------------------------------------
Sub Test()
Dim T As String, Z As String
T = Range("A2").Text
Z = Left(T, 1999) & "5555" & Right(T, 2001)
Range("A2") = Z
End Sub
'----------------------------------------------