Collection textbox

ccm81 Messages postés 11033 Statut Membre -  
melanie1324 Messages postés 1561 Statut Membre -
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. melanie1324 Messages postés 1561 Statut Membre 156
     
    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. ccm81 Messages postés 11033 Statut Membre 2 434
       
      bonjour et merci mélanie

      Non, ce sont bien des contrôles activeX (et je suis sous excel 2003)
      0
    2. melanie1324 Messages postés 1561 Statut Membre 156
       
      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. melanie1324 Messages postés 1561 Statut Membre 156
     
    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. ccm81 Messages postés 11033 Statut Membre 2 434
       
      ç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. melanie1324 Messages postés 1561 Statut Membre 156
       
      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