Ecrire dans une zone de texte [Résolu]

Signaler
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012
-
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012
-
Hello,

j ai un petit problème tout bête
je n'arrive pas a ecrire dans ma zone de texte

Sub ecrire()

TextBox1.Text = "hello"

End Sub

Plus light on peut pas !!!

merci à tous


Lezeps ;-))
http://www.amicro44.com/index.php

13 réponses

Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

myDocument est déclaré mais non utilisé.
Dans ton code tu as un With/End With inutile si tu ne manipules que le texte.

Texte couleur de fond et cadre :

With Worksheets("Feuil1").Shapes("Text1")
   With .TextFrame.Characters
      .Text = "TOTO"
      .Font.Color = vbBlue
      ' ou .Font.ColorIndex = 56 ' (1 à 56)
   End With
   
   With .TextFrame
      .HorizontalAlignment = xlCenter  ' centré horizontalement
      .VerticalAlignment = xlCenter    ' texte centré verticalement
   End With
   
   With .Fill
      .ForeColor.SchemeColor = 44
      'ou  .ForeColor.RGB = RGB(r, v, b)
      .Transparency = 0.5
   End With
   
   With .Line
      .Weight = 2.5                 '   épaisseur du cadre
      .ForeColor.SchemeColor = 12   '   couleur du cadre
      '  ou .ForeColor.RGB = RGB(r, v, b)
   End With
End With


Voilà, tu as presque tout ce qu'il te faut...

Cheyenne
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Petite précision, je parle bien d'une zone de texte dans une feuille et non pas une textbox dans une userform.

J'ai un doute sur l’appellation de cette objet dans VBA.


Lezeps ;-))
http://www.amicro44.com/index.php
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bonjour, ZEPS256.
Tu viens poser ici une question, mais ne prends même pas la peine de nous dire quel est le message d'erreur sur tu reçois (car tu en reçois un !)
On va donc attendre que tu fasses cet énorme effort (du temps perdu ? oui ... comme tu le vois ... La faute à qui ?)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Bon ... (mais prends dorénavant ce soin, s'il te plait).
Tu as reçu le message d'erreur suivant :
Erreur d'exécution 424
Objet requis

Et ce message est révélateur. Pour le moin "parlant".
Ta macro ne sait pas ce qu'est Textbox1, puisque tu ne lui dis pas où se trouve cet objet (qui pourrait se trouver n'importe où dans ton projet !) ===>> dis-le lui donc ! Ne lui cache rien à elle non plus ! ===>>
si la feuille sur laquelle se trouve cette textbox est Feuil1 ===>>
sheets("Feuil1").TextBox1.Text = "hello"




________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Ucfoutu,

Merci de ta réponse, même si elle est un peu sèche !

Mon message est :
Objet requis (erreur 424)

Ma question est de savoir si "textbox" défini bien une zone texte dans une feuille ou si c'est réservé au format dans les "userform". Je n'arrive pas à valider cette info.

Message en lui précisant la feuille :
Cet objet ne gère pas cette propriété ou méthode (erreur 438)

Merci de vos réponses !

Lezeps ;-))
http://www.amicro44.com/index.php
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Prends simplement l'habitude d'être précis. Cela évite des discussion à rallonge.
Les explications du genre "mais ça ne marche pas", "mais j'ai une erreur", etc ... ne peuvent que conduire à des questions réponses à n'en plus finir. Et cela commence à devenir une habitude (pas seulement toi) assez nuisible.
Bon.
Tu as donc eu ma réponse/solution.
Si c'était cela et que problème résolu ===>> sujet à libérer en cliquant sur le tag "réponse acceptée".



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
Où as-tu "puisé" ce contrôle Texbox1, exactement ?
Si dans le menu général, ce n'est pas une textbox et il esr vraisemblable que son nom n'est pas Textbox1, mais du genre : "ZoneTexte 1" et se gère de manière différente.
Je te conseille d'utiliser plutôt un véritable contrôle TextBox (à prendre dans la boîte à outils). Il s'agit là d'un Contrôle ActiveX, parfaitement insérable sur ta feuille, et dont le nom par défaut sera bien TextBox1.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour,

Pour une zone de texte le code est spécifique.
Fais fonctionner ton enregistreur de macro et tu auras le code nécessaire.

Si dans ta version d'Excel l'enregistreur ne fonctionne pas avec les Shapes, consultes ton aide en utilisant comme critère "TextFrame" et dans la liste choisis "objet".
Si tu n'y arrives toujours pas, et seulement à ce moment-là, je t'indiquerai le code pour insérer du texte dans une zone de texte.

Si tu n'as pas d'effets graphiques à faire dans ta zone de texte utilises, comme te l'a indiqué ucfoutu, un contrôle Textbox.

Cheyenne
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

merci à vous deux.

Pour la solution de cheyenne, qui me semble (pour moi...) la plus simple, j'ai bien réussi à créer ma zone de tzexte, mais je n'arrive pas à manipuler à l'intérieur mo,n texte (taille, couleur).

Set myDocument = Worksheets(1)
With myDocument.Shapes.AddShape(msoShapeRectangle, _
0, 0, 400, 250).TextFrame
.Characters.Text = "200"
.MarginBottom = 30
.MarginLeft = 30
.MarginRight = 30
.MarginTop = 30
End With

les propriétés :
.Name = "calibri"
.Size = "200"
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor

ne sont pas prise en compte par le shapes.
Comment manipuler cette zone de texte ?

Lezeps ;-))
http://www.amicro44.com/index.php
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Bon C'est tout bon pour les texte.
Reste à manipuler le format de la zone texte...je la veux sans fond, en arrière plan sans contour....une image en arrière plan doit se voir
Pour l'instant je bloque

mon code actuelle :

Set myDocument = Worksheets(1)
With myDocument.Shapes.AddShape(msoShapeRectangle, _
30, 15, 500, 380).TextFrame
.Characters.Text = "200"
.Characters.Font.Size = 250
.Characters.Font.Color = RGB(0, 0, 0)
.MarginBottom = 30
.MarginLeft = 30
.MarginRight = 30
.MarginTop = 30
End With

Lezeps ;-))
http://www.amicro44.com/index.php
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

En incluant les parties du codes qui te sont utiles dans une macro !

Si ta zone de texte est déjà créée avant de faire appel à la macro :
With Sheets(1).Shapes("zdtTOTO")
   With .TextFrame
     .Characters.Text = "titi"
     .MarginBottom = 30
     ' etc...
   End With
   ' ici les autres propriétés
End With

Tout ce qui est à False n'a pas à être indiqué au départ.

Cheyenne
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

Super,

Sub ecrire()
Set myDocument = Worksheets("Feuil1")
With Worksheets("Feuil1").Shapes("Text1")
With .TextFrame
.Characters.Text = "250"
.Characters.Font.Size = 250
.Characters.Font.Color = RGB(0, 0, 0)
.MarginBottom = 100
.MarginLeft = 35
.MarginRight = 30
.MarginTop = 10
End With

End With
End Sub

Mais je n'arrive pas à trouver la propriété de la zone => bordure, couleur de fond,...
quelqu'un peut m'aider.
Je ne vois rien ds l'aide avec shapes F1 !!!

Characters => pour manipuler le texte
MarginBottom => pour manipuler le placement du texte
XXXX => pour manipuler la bordure ?
XXXXX=> pour manipuler le fond ( en l’occurrence sans pour voir à travers l'image de derrière)?

Lezeps ;-))
http://www.amicro44.com/index.php
Messages postés
59
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
28 juin 2012

super ! merci cheyenne !

mon code fonctionne pour mon besoin !

Lezeps ;-))
http://www.amicro44.com/index.php