Colle pr les pro

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 4 déc. 2005 à 16:57
lfab29 Messages postés 7 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 29 décembre 2005 - 22 déc. 2005 à 23:49
Bonjour à tous,

Encore une colle pr les pro :)



J'ai dans un formulaire des textbox classiques sans option spéciale...

les un se nomme C1, C2... à C32

les autre A8P1, A8P2... à A8P8
Et sur chacun des textbox, j'ai une
fonction DblClick qui marche pour tous et qui ne fait rien de
transcendant, si ce n'est passer du text d'un textbox à l'autre
genre... C1.text = A8P8.text

Jusqu'ici tout va bien...

Je veux faire une fonction qui active les DblClick en chaine, pour cela j'utilise tout naturellement la fonction CallByName



Cette fonction marche du tonnerre pour les C1...C32

j'écris dans une boucle for i = 1 to 32

CallByName Me, "C" & CStr(i) & "_DblClick", VbMethod, 0



Hors, lorsque j'écris dans une boucle i=1 à 8

CallByName Me, "A8P" & CStr(i) & "_DblClick", VbMethod, 0



J'ai l'erreur suivante:

Erreur 2465: Erreur définie par l'applicaiton ou par l'objet



Je ne comprends pas pourquoi j'ai une erreur, vu que les textbox ont
tous le mm paramétrages et que les fonctions DblClick contiennent le mm
code.



Si quelqu'un à une idée... Merci à tous
TBBUIM

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
4 déc. 2005 à 20:16
Salut
Connais pô cette fonction CallByName mais il y a beaucoup plus simple.
Au lieu de créer 8 TextBox portant des noms différents, donne leur le même com avec des Index, de 0 à 7 :
- Créé le 1er TextBox
- Donne lui l'index 0
- Copie/colle 7 fois ce TextBox dans ta forme
Il te suffira de faire :
For r = 0 To 7
Call monTextBox_DblClick(r)
Next r

Cette manip ne fonctionnera que en VB6, pas sous VBA puisqu'on ne peut pas indexer les composants.
Si c'est du VBA, au moment où ton code plante, vérifie que la valeur de i est bien comprise entre 1 et 8

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 déc. 2005 à 20:18
Je suis sous Access donc je programme en VBA
Il est impossible de faire des groupes en VBA
Donc je suis obligé de nommer mes textbox de façon différente...
toutefois, je vais essayé avec call, qui sait...
Merci
TBBUIM
0
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
4 déc. 2005 à 20:23
ça y est, ça me revient

J'utilise CallByName car c'est la seule fonction que j'ai trouvé

qui me permet d'exécuter une fonction en l'écrivant en string

Donc dans ces conditions Call ne me convient pas :(

TBBUIM
0
lfab29 Messages postés 7 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 29 décembre 2005
22 déc. 2005 à 23:49
Je ne connais pas cette fonction mais à mon avis le paramètre vbMethod ne s'applique qu'aux méthodes associées à un objet. Un Form a beau être un objet, les functions et sub que tu peux y déclarer n'en sont pas des méthodes.

Dans un premier temps vérifie si il y a un autre paramètre que vbMethod qui soit mieux approprié sinon il faudra trouver un autre moyen.
0
Rejoignez-nous