macgyver49
Messages postés58Date d'inscriptionvendredi 21 janvier 2005StatutMembreDernière intervention 5 août 2005 4 juil. 2005 à 09:51
salut TBBUIM
Si j'ai bien comprise, ce que tu veux faire c'est déclencher toi même les événememnts pour faire une simulation ??
Si c'est bien cela, tu peux essayer ceci:
Essaie de déclarer tous les événements sur ta feuille avec la propriété PUBLIC
(public sub N1_DBlClick). Alors tu pourras les appeler à partir de tes propres fonctions.
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 4 juil. 2005 à 10:10
Non cela ne m'aide pas du tout
Si j'écris
public sub Lancer()
N1_DblClick(0)
N2_DblClick(0)
....
End sub
Ca marche, pas besoin de les déclarer en public puisque je veux les
lancer du même formulaire. Ce que je veux, c'est pouvoir lancer les
actions qui sont dans chaque click, pour cela, il me faut, soit
recopier 32 lignes de Nx_DblClick et là ça marche.
Ma question (Pour les brutes d'acess je le rappelle )
C'est comment faire la même chose mais en écrivant cela dans une boucle For?!
Parce qu'imaginons qu'au lien de 32 j'en ai 32000, ça le ferais pas...
TBBUIM
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 4 juil. 2005 à 11:26
Bien essayé, mais j'ai déjà essayé aussi!
Et lorsque je fais ça, il me dit:
Propriété ou méthode non gérée par cet objet.
En fait, sous ACCESS, on peut remplacer cela par
Me("N1").Onclick
Mais en VB, on est obligé de mettre controls
Mais c'est la même chose, l'inconvénient, c'est qu'en faisant ça
On peut uniquement changer la propriété OnClick par exemple mettre
= true mais on ne peut pas lancer l'évènement!
Encore, une de mes nombreuses questions, auxquelles personnes ne peut répondre!
J'ai le don pour trouver des colles
PS: J'ai trouvé la fonction Run, qui semblait être la solution à mon
problème, l'inconvénient c'est que cette dernière ne lance que les
fonctions définie dans un module et pas ailleurs, même si elles sont
déclarées en Public...
TBBUIM
BasicInstinct
Messages postés1470Date d'inscriptionmardi 5 février 2002StatutMembreDernière intervention20 octobre 201412 4 juil. 2005 à 14:33
essaie un truc comme ca (la syntaxe est ptre pas exacte)
Public Function GROUPER(MaForm As Form, NomGroupe As String, NomFonction As String) As Boolean
On Error GoTo Err Dim Ctl As Control
For Each Ctl In MaForm.Controls
If Ctl.Tag = NomGroupe Then
Ctl.OnClick = "=" & NomFonction & "(""" & Ctl.Name & """)"
End If
Next Ctl
GROUPER=true
Err
End Function
Public Function Click_Etiq(NomEtiq As String) As Boolean
MsgBox "vous avez cliqué sur l'étiquette " & NomEtiq
End Function
Private Sub Form_Load()
GROUPER Me, "Groupe", "Click_Etiq"
End Sub
tu n'a plus qu'a mettre "Groupe" dans le tag des controles que tu veux grouper.
n'ayant pas access à disposition, la syntaxe n'est peut etre pas parfaite.
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 4 juil. 2005 à 15:01
Pas mal, j'y ai pensé également, mettre directement le nom de la
fonction dans l'affectation du OnClick. Le soucis, c'est que ça ne fait
que mettre le nom de la fonction mais ça ne l'exécute pas!
Il faudrait un truc du style
For each fonction in Form
Execute fonction
Next
Ca serait vraiment le top, mais je commence à perdre espoir.
TBBUIM
tbbuim1
Messages postés940Date d'inscriptionjeudi 20 février 2003StatutMembreDernière intervention 3 février 20119 4 juil. 2005 à 15:16
Ouais mais non, c pas bon, ça ne marchera pas comme ça.
En plus, c'est chaque fonction click de chaque bouton que je veux
lancer pas une fonction à part qui prend les noms en param. Peu importe
d'ailleurs, si je dois réécrire toutes les fonctions, autant faire
comme je l'ai dit toute à l'heure, je les mets toutes dans un module et
je les appelle avec la fonction Run "N" & Cstr(i)
Là jsuis sur que ça marche, mais le but, c'est justement de ne pas en mettre des tartines.
Le truc serait peut être possible, si la fonction Run marchait pour les
fonctions qui ne sont pas dans un module, mais ce n'est pas le cas
apparemment.
TBBUIM