Collection textbox

Bonjour,

Dans ma feuille j'ai 4 textbox nommés tb1, tb2, tb3, tb4
Je voudrais accéder à l'un quelconque d'entre eux via une variable contenant son nom/numero
j'ai tenté
Shapes("tb" & nums).Select
Selection.ShapeRange.ZOrder msoBringToFront
Shapes("tb" & nums).Locked = False
Shapes("tb" & nums).Text = "toto"
les trois premières instructions fonctionnent bien mais l'accès à la propriété Text m'est refusée "propriété ou méthode non gérée par cet l'objet"
J'ai aussi tenté sans succès
Shapes("tb" & nums).Characters.Text = "toto"
Il doit y avoir une sombre histoire de Collection là dessous, mais je n'y arrive pas

Je suis sous Excel 2003

Merci

3 réponses

  1. Bonjour,

    C'est simple.
    Quand tu vas dans l'onglet développeur et que tu faix insertion. Tu vas voir qu'il y a deux groupes :
    - 1 groupe contrôles de formulaire
    - 1 groupe contrôles Activex.

    Je pense que tu as créé des textbox via le contrôle de formulaire et du coup, tu as des pbs.

    Je pense qu'il convient que tu les recrées sous activex et je pense que ca devrait résoudre ton pb.
    0
    1. bonjour et merci mélanie

      Non, ce sont bien des contrôles activeX (et je suis sous excel 2003)
      0
    2. essaie ca, sinon j'aurais besoin de ton fichier sur cjoint.com (tu colles le lien) pour que je puisse mieux t'aider :

      sheets(1).textbox(i).select 'faut que tu mettes la feuille
      0
  2. Bonjour,

    Cela fait une demi heure que je tourne en rond.
    Pour pouvoir indiquer du texte, le seul truc qui fonctionne est :
    Textbox1.value = "Toto".

    Autrement dit, il faut que tut renommes tes textbox comme ca Textbox1, Textbox2...et que tu fasses une boucle du style :
    Select Case nums
    Case 1: textbox1.value = textbox1.value+1
    Case 2: textbox2.Value = textbox2.value+1
    Case 3: textbox3.value= textbox3.value
    Case 4: textbox4.value = textbox4.value

    Car je ne vois pas autrement. A moins de faire un userform.
    0
    1. ça je sais faire, mais ce que je voudrai c'est éviter le select case (plus de 15 cas) et pouvoir indexer les noms de mes textbox afin de passer avec une boucle sur les noms des textbox
      je pense qu'il faut créer une collection de mes textbox, mais ça je ne sais pas faire
      je vais attendre un peu au cas où, puis relancer un nouveau post en précisant dans le titre "fabriquer collection de textbox"
      merci
      0
    2. j'ai bien compris ce que tu voulais faire et je ne sais pas non plus.
      Car normalement, dans un userform utiliser
      Textbox(nums).value = 1 fonctionne.

      Mais les textbox directement inséré dans la feuille, je ne sais pas faire.
      0