Exécuter une chaîne en tant que code [Résolu]

Signaler
Messages postés
11
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
25 février 2010
-
Messages postés
6
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
7 décembre 2007
-
Bonjour,  j'ai un formulaire dans lequel se trouvent plusieurs contrôles :
CB1 à CB10

Sur tous ces contrôles je voudrais changer la propriété caption.
Exemple : CB1.caption="TEST" puis CB2.caption="TEST" et ainsi de suite jusqu'à 10.

Je voudrais le faire avec une boucle FOR NEXT
for x = 1 to 10
    m="CB" & ltrim(str(x)) & ".caption='TEST'"
next x
Comment faire pour exécuter la chaîne m : "CB1.CAPTION='test'" ?

D'avance merci pour votre aide.
Mario

3 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
En fait dans ton cas, il ne faut pas vouloir "executer" une quelqconue chaine, il faut acceder directement au controle pour pouvoir changer sa propriété.

Le mieux aurait été que tu fasse un groupe de controle, ça aurait été plus simple.

Ceci-dit tu peux tout de même acceder à chaque controle avec un index, en passant par la collections Controls, qui est la collection des controles posés sur ta feuille :

Dim i As Integer
For i = 1 To 10
  Me.Controls("CB" & i).Caption = "TEST"
Next

, ----
[code.aspx?ID=41455 By Renfield]

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
11
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
25 février 2010

Cela fonctionne !

Un grand merci à toi.
Mario
Messages postés
6
Date d'inscription
samedi 19 mars 2005
Statut
Membre
Dernière intervention
7 décembre 2007

ça faisait plusieurs jours que je cherchais ! 

Je teste dès demain.

merci Casy.