VBA - Problème Sélectionner/Modifier Textbox ajouté

Résolu
KayaVB2013 Messages postés 4 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 11 juillet 2013 - 10 juil. 2013 à 12:02
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 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.

9 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
11 juil. 2013 à 09:46
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
3
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
10 juil. 2013 à 13:19
Bonjour,

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



Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
KayaVB2013 Messages postés 4 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 11 juillet 2013
10 juil. 2013 à 13:40
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...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 juil. 2013 à 14:50
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
10 juil. 2013 à 17:17
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
10 juil. 2013 à 20:20
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.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
10 juil. 2013 à 23:15
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
0
KayaVB2013 Messages postés 4 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 11 juillet 2013
11 juil. 2013 à 09:06
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 :)
0
KayaVB2013 Messages postés 4 Date d'inscription mercredi 10 juillet 2013 Statut Membre Dernière intervention 11 juillet 2013
11 juil. 2013 à 09:07
Il manque encore la ligne de code

Dim Sh1 As Shape


au début.
0
Rejoignez-nous