[VBA/Access] Utilisation de Me dans un module
Résolu/Fermé
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
-
1 sept. 2009 à 22:14
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 - 2 sept. 2009 à 11:06
nirG95 Messages postés 292 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 15 décembre 2010 - 2 sept. 2009 à 11:06
A voir également:
- Access vba me
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Acer quick access - Forum Logiciels
- Access runtime ✓ - Forum Access
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
18 réponses
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
1 sept. 2009 à 22:37
1 sept. 2009 à 22:37
Une petite aide s'il vous plait :)
Utilisateur anonyme
2 sept. 2009 à 00:50
2 sept. 2009 à 00:50
Bonjour,
Je ne suis pas expert de VBA Access mais je puis vous proposer ceci :
1.) L'utilisation de l'instruction [ Forms.Count ] retourne le nombre de formes "chargé(s)".
.....Vous devez donc gérér la propriété [ Forms.Item(Boucle).Name ] pour valider le nom
..... du formulaire ciblé ...
2.) Le formulaire est passé en paramètre comme objet de type "Form" en deuxième argument.
3.) La fonction retourne un booléen à vrai si et seulement si un contrôle du formulaire est rendu invisible.
Ais-je bien compris votre demande ?
Lupin
Je ne suis pas expert de VBA Access mais je puis vous proposer ceci :
1.) L'utilisation de l'instruction [ Forms.Count ] retourne le nombre de formes "chargé(s)".
.....Vous devez donc gérér la propriété [ Forms.Item(Boucle).Name ] pour valider le nom
..... du formulaire ciblé ...
2.) Le formulaire est passé en paramètre comme objet de type "Form" en deuxième argument.
3.) La fonction retourne un booléen à vrai si et seulement si un contrôle du formulaire est rendu invisible.
Option Compare Database Option Explicit Sub CacheControle() Dim Etiquette As String Dim Reponse As Boolean Dim Texte As String Dim Limite As Long, Boucle As Long Reponse = False Etiquette = "cmd" Limite = (Forms.Count - 1) For Boucle = 0 To Limite Reponse = HiddenGroup(Etiquette, Forms.Item(Boucle)) Next Boucle If (Reponse) Then Texte = "Réussi." Else Texte = "Échec." End If MsgBox Texte End Sub ' Private Function HiddenGroup(ByVal name_group As String, _ ByRef Frm As Form) As Boolean Dim Ctl As Control On Error GoTo HiddenGroup_Err HiddenGroup = False For Each Ctl In Frm.Controls If Left(Ctl.Name, 3) = name_group Then Ctl.Visible = False HiddenGroup = True End If Next Ctl HiddenGroup_Exit: Exit Function HiddenGroup_Err: MsgBox Error$ Resume HiddenGroup_Exit End Function '
Ais-je bien compris votre demande ?
Lupin
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 09:37
2 sept. 2009 à 09:37
Merci de ta réponse, mais ce que je cherche a faire c'est un module qui récupère automatiquement le nom du formulaire en cour ... Donc normalement on utilise Me si j'ai bien compris.
Mais l'utilisation de Me, dans mon exemple ne marche pas ! Je voudrai savoir pourquoi.
Cordialement.
Mais l'utilisation de Me, dans mon exemple ne marche pas ! Je voudrai savoir pourquoi.
Cordialement.
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 09:39
2 sept. 2009 à 09:39
Bonjour,
tu as la possibilité de passer le formulaire en paramètre :
tu as la possibilité de passer le formulaire en paramètre :
Function hiddengroup(name_group As String, mon_fom As Form) Dim ctl As Control For Each ctl In mon_fom.Controls If Left(ctl.Name, 3) = name_group Then ctl.Visible = False End If Next ctl End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 09:44
2 sept. 2009 à 09:44
Merci de ta réponse, on vient de me donner une réponse qui me convient.
Cordialement.
Function hiddengroup(name_group As String) Dim ctl As Control For Each ctl In Screen.ActiveForm.Controls If Left(ctl.Name, 3) = name_group Then ctl.Visible = False End If Next ctl End Function
Cordialement.
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 09:47
2 sept. 2009 à 09:47
Mais pour revenir au passage de plusieurs paramêtres.
Je voudrai faire passer deux strings
ex : Function ColorGroup(name_group, Color As String)
Mais quand je fais l'appel
ColorGroup ("gr1", "2")
Il ne l'accepte pas il me dit erreur de compilation / = attendu
Si tu peux me mettre dans la voie :p
Cordialement
Je voudrai faire passer deux strings
ex : Function ColorGroup(name_group, Color As String)
Mais quand je fais l'appel
ColorGroup ("gr1", "2")
Il ne l'accepte pas il me dit erreur de compilation / = attendu
Si tu peux me mettre dans la voie :p
Cordialement
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 09:58
2 sept. 2009 à 09:58
Teste :
Function ColorGroup(name_group as String, Color As String)
ou
Sub ColorGroup(name_group as String, Color As String)
Function ColorGroup(name_group as String, Color As String)
ou
Sub ColorGroup(name_group as String, Color As String)
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 10:03
2 sept. 2009 à 10:03
C'est la même chose ! Je te joins mon code pour que tu puisse comprendre :)
Merci encore :)
Sub ColorGroup(name_group As String, Color As String) Dim ctl As Control ' Pour chaque contrôle du formulaire For Each ctl In Screen.ActiveForm.Controls ' On vérifie le contenu du contrôle If Right(ctl.Name, 3) = name_group Then ' On lui change la couleur de fond ctl.BackColor = QBColor(Color) End If Next ctl End Sub
Merci encore :)
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 10:06
2 sept. 2009 à 10:06
Color est peut être un privé pour le Vba, change le nom du paramètre.
Affiche moi l'erreur aussi ;)
Affiche moi l'erreur aussi ;)
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 10:10
2 sept. 2009 à 10:10
Donc j'ai essayé avec Gcolor, popol c'est toujours pareil ...
L'erreur c'est :
Quand je l'appel avec ColorGroup("fn1", "3") il me marque :
Erreur de compilation
"=" attendu
Cordialement
L'erreur c'est :
Quand je l'appel avec ColorGroup("fn1", "3") il me marque :
Erreur de compilation
"=" attendu
Cordialement
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 10:17
2 sept. 2009 à 10:17
Ca vient surement de ta condition If Right(ctl.Name, 3) = name_group Then
Mais je ne peux pas tester ton code donc galère pour trouver pourquoi il y a erreur ;)
Mais je ne peux pas tester ton code donc galère pour trouver pourquoi il y a erreur ;)
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 10:20
2 sept. 2009 à 10:20
Pourquoi tu ne peux pas tester ? :)
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 10:22
2 sept. 2009 à 10:22
Je n'ai pas ta base de données ^^
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 10:30
2 sept. 2009 à 10:30
Tu créés un bouton et 2 textes listes. Les 2 textes listes tu les nommes '1fn1' et '2fn2'
Tu créés le module !
Sur l'événement clique du bouton tu mets :
Sinon pour voir le résultat sans le Color tu supprimes Color As String et tu remplaces le Color par un nombre de 0 à 14.
Cordialement.
Tu créés le module !
Sur l'événement clique du bouton tu mets :
GroupColor("fn1", "2")
Sinon pour voir le résultat sans le Color tu supprimes Color As String et tu remplaces le Color par un nombre de 0 à 14.
Cordialement.
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 10:52
2 sept. 2009 à 10:52
Je n'ai pas créér la base^^
Par contre je n'ai pas vu tout de suite, mais essaie ça :
ctl.BackColor = QBColor("3")
et
ctl.BackColor = QBColor(3)
Dis moi si les 2 marchent ou explique moi les erreurs ;)
Par contre je n'ai pas vu tout de suite, mais essaie ça :
ctl.BackColor = QBColor("3")
et
ctl.BackColor = QBColor(3)
Dis moi si les 2 marchent ou explique moi les erreurs ;)
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 10:52
2 sept. 2009 à 10:52
C'est bon j'ai trouvé, il fallait utilise Call Colorgroup(" ", " ")
Merci encore de ton aide.
Cordialement.
Merci encore de ton aide.
Cordialement.
CaPiT
Messages postés
609
Date d'inscription
lundi 7 janvier 2008
Statut
Membre
Dernière intervention
21 avril 2010
51
2 sept. 2009 à 10:55
2 sept. 2009 à 10:55
Ok, je ne connaissais pas ce Call ;)
Bonne continuation !
Bonne continuation !
nirG95
Messages postés
292
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
15 décembre 2010
32
2 sept. 2009 à 11:06
2 sept. 2009 à 11:06
J'ai encore trouvé une solution
ColorGroup "Nom du groupe", "La couelur"
Ça marche sans les parenthèses :S Bizarre quand même !!
ColorGroup "Nom du groupe", "La couelur"
Ça marche sans les parenthèses :S Bizarre quand même !!