Ecrire dans une Zone de Texte

  • Initiateur de la discussion Initiateur de la discussion Imy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

I

Imy

Guest
Bonjour,

Comment écrire, en utilisant VBA, de longues chaînes (plusieurs lignes) dans les zones de textes (il ne s'agit pas des Textbox😉 ) s'il vous plaît?

Merci d'avance.
 
Re : Ecrire dans une Zone de Texte

Merci beaucoup, cela me permet d'avancer un peu...

Mais je bloque encore : lorsque je remplis la variable mavar avec une longue chaîne de caractères, à nouveau, rien ne se passe, le contenu du texte reste inchangé !
 
Re : Ecrire dans une Zone de Texte

Code:
Sub Test()
       mavar = [F4] & [F5] & [F6] & [F7] & [F8] & [F9] & [F10]
       mavar = mavar & [F4] & [F5] & [F6] & [F7] & [F8] & [F9] & [F10]
    ActiveSheet.Shapes("Zone de Texte 1").TextFrame.Characters.Text = mavar

Voilà mes tests : si je suis dans l'interface Excel, je peux entrer tout ce texte sans difficulté. Maintenant, si on fait l'inverse, ce qui est plus intéressant pour automatiser l'ensemble, je rentre dans VBA ma chaîne (plus de 200 de caractères au moins) et là VBA lit la ligne, mais le texte ne change pas!
Oui il doit y avoir une limite de caractères pour la commande 'text'.😡

En passant par les macros, je crois néanmoins avoir trouvé une solution :🙂

Code:
  ActiveSheet.Shapes("Zone de Texte 1").TextFrame.Characters.Text = _
        "Maître corbeau sur un arbre perchéTenait en son bec un fromage.Maître renard, par l'odeur alléché.Lui tint à peu près ce langage:Hé ! bonjour, Monsieur du Corbeau!Que vous êtes joli ! que vous me semb"
    ActiveSheet.Shapes("Zone de Texte 1").TextFrame.Characters(201).Insert String:= _
        "lez beau !Sans mentir, si votre ramageMaître corbeau sur un arbre perchéTenait en son bec un fromage.Maître renard, par l'odeur alléché.Lui tint à peu près ce langage:Hé ! bonjour, Monsieur du Corbeau"
    ActiveSheet.Shapes("Zone de Texte 1").TextFrame.Characters(401).Insert String:= _
        "!Que vous êtes joli ! que vous me semblez beau !Sans mentir, si votre ramage"

Pour passer outre la limite, il suffisait "d'insérer" les caractères😱 ... Ce n'est pas trop évident. Je ne crois pas que Excel 2000 faisait cela! Merci pour votre aide malgré tout!
 
Re : Ecrire dans une Zone de Texte

Hello,

Il y a une limite à 255 dans les cellules et 290 si on concaténe, bizarre.
Pour ne pas avoir de pb, j'ai fait une petite boucle à 254.
Elle tronçonne le texte en 254 sur une plage de cellule et colle tout dans la zone de texte.
Il faut peut etre paufiner un peu les retour chariot (si on en veut) et l'ajout d'un espace (que je rajoute et qui a l'air de se doubler qq part) mais sinon ça fonctionne bien jusqu'à la limite de ce que peut contenir la boite texte ;-)
 

Pièces jointes

Re : Ecrire dans une Zone de Texte

Oui, je crois que c'est la solution, j'ai fait une sub similaire mais dont le tampon était limité lui à 200. La longueur était copiée sur les nombres issus de la macro. Mais apparemment votre exemple montre qu'on peut aller à 254 (ce qui est plus logique)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
117
  • Question Question
Microsoft 365 Liste de choix...
Réponses
8
Affichages
326
Retour