VBA - Problème Sélectionner/Modifier Textbox ajouté [Résolu]

Messages postés
4
Date d'inscription
mercredi 10 juillet 2013
Dernière intervention
11 juillet 2013
- - Dernière réponse : jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
- 11 juil. 2013 à 09:46
Bonjour,

pour renommer la Textbox cela fonctionne très bien, mais maintenant comment peut-on modifier une TextBox, p.ex. je veux insérer une Formule dans la TextBox etc...
Pour faire cela je dois la sélectionner non?

Le problème: il ne me sélectionne pas la TextBox.

Voici mon code:

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 196.5, 140.25, 26.25, 18#).Name = "TextBox_1"
    ActiveSheet.Shapes("TextBox_1").Select
    'Selection.Characters.Text = ""
    Selection.Formula = "Données!C11"
    Selection.ShapeRange.ScaleWidth 0.91, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight 0.88, msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.Fill.Visible = msoTrue
    Selection.ShapeRange.Fill.Solid
    Selection.ShapeRange.Fill.ForeColor.SchemeColor = 65
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoFalse
    Selection.ShapeRange.IncrementLeft 260.5
    Selection.ShapeRange.IncrementTop 40.5
    With Selection.Font
        .Name = "Calibri"
        .FontStyle = "Gras"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With



Même si je fais le code

ActiveSheet.Shapes("TextBox_1").Formula = "Données!C11"


il me fait une erreur.


Est-ce que qqn en connaît la cause ou la solution?

P.S.: J'utilisé comme précédemment noté, encore l'Excel 2003.
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
3
Merci
Bonjour,

bah chez moi je te dis que cela ne fonctionne pas

sous Office 2003

En effet, certains codes ne fonctionne pas selon la version d'office.
(je n'avais pas vu ta dernière ligne de ton premier poste où tu donnais ta version d'Excel..désolé)

Par contre,
 Sh1.TextFrame.Characters.Text = Worksheets("Données").Range("C11").Text

je ne suis pas sur que tu y mettes la "formule"... tu ne fais que y copier le "texte". Donc si ta cellule change, ta textbox ne se mettra pas à jour.

Enfin bon, l'essentiel c'est que tu es trouvé et que ça fonctionne comme tu le souhaites.

Penses à clôturer le sujet.

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 98 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jordane45
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
0
Merci
Bonjour,

Il te manque un "="
    Selection.Formula = "=Données!C11"



Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
4
Date d'inscription
mercredi 10 juillet 2013
Dernière intervention
11 juillet 2013
0
Merci
Non c'est pas ce manque là qui bloque le truc,

en fait je n'arrive même pas à selectionner la textbox
pour pouvoir dire après
Selection.Formula = "=Données!C11"


C'est ca mon problème...
Commenter la réponse de KayaVB2013
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
1)
Même si je fais le code

Code Visual Basic :

ActiveSheet.Shapes("TextBox_1").Formula = "Données!C11"



il me fait une erreur.

2)
en fait je n'arrive même pas à selectionner la textbox
pour pouvoir dire après
Code Visual Basic :

Selection.Formula = "=Données!C11"



C'est ca mon problème...

3) on lit son aide VBA ===>> c'est une plage, que l'on sélectionne ! Une cellule, donc === >>
et donceuuuuuu (puisque les euuuu sont à mla mode)
Shapes.Range("TextBox_1").Select

et non
ActiveSheet.Shapes("TextBox_1").Select
Vraiment dur dur ?
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
0
Merci
Bonjour,

ucfoutu,
Pour avoir testé le code
  
ActiveSheet.Shapes("TextBox_1").Select
Selection.Formula =  "=Données!C11"


Je peux répondre que CA fonctionne...

Que ce soit la sélection... ou l'écriture de la formule à l'intérieure..


KayaVB2013 ,
Non c'est pas ce manque là qui bloque le truc,je n'arrive même pas à selectionner la textbox


Pour être sur que nous sommes bien sur la même "configuration" :
- Peux tu nous indiquer ta version d'Excel ?

Et puis...
- Si tu lances ton code en pas à pas.. sur quelle ligne bloque t'il, et quel est le message d'erreur ?

Peux tu tester ce code et nous dire si ça fonctionne chez toi ?
Sub listshapes()
    For Each shap In ActiveSheet.Shapes
        ActiveSheet.Shapes(shap.Name).Select
        Debug.Print (shap.Name & "  = " & Selection.Text)
    Next
End Sub




Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour, jordane45,
je viens de tester ===>> tu as raison.
Testé sur office 2007


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
23635
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
17 décembre 2018
0
Merci
Et moi sous 2010.
:-D

T'inquiète Ucfu, je te pardone ..hehehe. .

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Commenter la réponse de jordane45
Messages postés
4
Date d'inscription
mercredi 10 juillet 2013
Dernière intervention
11 juillet 2013
0
Merci
Salut,

bah chez moi je te dis que cela ne fonctionne pas sous Office 2003.
Mais j'ai cherché d'autre part et trouvé une autre solution de code qui marche chez moi en 2003.
En fait il faut définir la TextBox comme une "Shape" et puis travailler avec ca:

ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 196.5, 140.25, _
            26.25, 18#).Name = "TextBox_1"
            
    Set Sh1 = ActiveSheet.Shapes("TextBox_1")
'pour la formule:
    Sh1.TextFrame.Characters.Text = Worksheets("Données").Range("C11").Text
'pour la police:
    Sh1.TextFrame.Characters.Font.Name = "Calibri"
    Sh1.TextFrame.Characters.Font.FontStyle = "Gras"
    Sh1.TextFrame.Characters.Font.Size = 10



Heureuse que ca marche maintenant chez moi :)
Commenter la réponse de KayaVB2013
Messages postés
4
Date d'inscription
mercredi 10 juillet 2013
Dernière intervention
11 juillet 2013
0
Merci
Il manque encore la ligne de code

Dim Sh1 As Shape


au début.
Commenter la réponse de KayaVB2013

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.