salut à tous
je recherche désespérément un article sur dvp traitant de l'application d'un code unique sur un ensemble de contrôles pour eviter de saisir le même code pour chaque controle
merci de bien vouloir me passer le lien
salut à tous
je recherche désespérément un article sur dvp traitant de l'application d'un code unique sur un ensemble de contrôles pour eviter de saisir le même code pour chaque controle
merci de bien vouloir me passer le lien
Bonjour
Le titre de ton message a à mon avis peut de rapport avec ta discussion
Peux-tu détailler ce que tu souhaites faire et quel code tu veux affecter à tous ces contrôles.
Philippe
salut à tous
j'ai un formulaire dans lequel j'ai plusieurs étiquettes qui doivent avoir le même comportement. Par exemple au survol de la souris elle prennent une certaine couleur et le curseur prend la forme de la main sur un lien. Actuellement je suis obligé de mettre autant de fois le code qu'il y a d'étiquettes. Dans le topic que je recherche il était question d'écrire une procédure qui gère l'ensemble des controls. Je ne me souviens plus de l'énoncé du tutoriel, c'est la galère
merci votre pour attention
Bonjour
Dans ce cas, tu peux essayer en donnant à tes contrôles des noms sous forme de suites logiques du style :
Cmd_1 Cmd_2 Cmd_3 ....
Lbl_1 Lbl_2 Lbl_3 ....
Txt_1 Txt_2 Txt_3 ...
....
Puis dans la fenêtre propriété de ton contrôle sur l'évènement "sur souris déplacée" de ton Lbl_1, tu mets par exemple =Ma_Fonction(1)
Après dans un module:
C'est une solution parmi d'autres, qu'il faut bien sûr adapter et compléter selon tes besoins.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Function Ma_Fonction(i As Integer) Dim ctl As control Dim Label_Name As String Set ctl = MyForm.Controls("Lbl_" & i) Label_Name = ctl.Name MyForm(Label_Name).ForeColor = vbRed 'par exemple .... Set ctl = Nothing End Function
Tu trouveras ce type d'application de fonction personnelle dans le tutoriel sur la gestion de planning
Cette procédure a été utilisée pour gérer une même procédure sur plusieurs boutons
Re,
Maintenant que tu as entièrement changé le contenu du message d'origine, forcément ma réponse n'a pas trop de rapport
Sinon,
pour reprendre les 2 exemples proposés par Gayot et Jeannot, une fois que tu as défini ta fonction à mettre sur les évènements de tes contrôles, tu peux mettre ces fonctions sur les évènements par exemple à l'ouverture de ton formulaire...
Tu aurais dans l'exemple donné par Gayot pour 300 étiquettes (Lbl_1,...Lbl_300) :
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub Form_Open(Cancel As Integer) Dim i As Integer For i=1 to 300 Me("Lbl_" & i).OnMouseMove="=Ma_Fonction(" & i &")" ' Ou Me.Controls("Lbl_" & i).OnMouseMove="=Ma_Fonction(" & i &")" Next I End Sub
Salut à tous
Merci pour votre aide je vais tester vos soluces et vous faire le retour
A+
Bonjour,
Actuellement je suis obligé de mettre autant de fois le code qu'il y a d'étiquettesc'est juste on fait appel à la fonction en ecrivant uniquement le nom sur l'évènement
Ok ça marche bien
J'ai combiné les soluces de Gayot et User. C'est pile ce dont j'avais besoin. On n'a pas besoin d'ecrire un quelconque code sur l'événement "souris déplacée" de chaque control. Grand merci
EDIT
voici comment j'ai exploité vos astuces
mes etiquettes sont Etq_1, Etq_2... et ne sont pas initialement transparentes
Merci infiniment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Private Sub Form_Open(Cancel As Integer) Dim i As Integer Dim Ctl As control i = 0 For Each Ctl In Me.Controls 'Puisque le nombre d'étiq. peut changer If Ctl.Name Like "Etq_*" Then i = i + 1 Me("Etq_" & i).OnMouseMove = "=ActiverCtl(" & i & ")" End If Next Ctl 'Set Ctl = Nothing End Sub Function ActiverCtl(CtlID As Integer) Dim Ctl As control Dim Label_Name As String Set Ctl = Me.Controls("Etq_" & CtlID) Label_Name = Ctl.Name Me(Label_Name).BackColor = RGB(245, 220, 175) Set Ctl = Nothing End Function
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager