Bonjour,
j'ai une question toute bête à poser, mais qui a son intérêt.
Je m'explique:
J'ai un formulaire qui permet de faire des extractions de données.
L'utilisateur a donc la possibilité de cocher des checkbox, afin de choisir quels champs exporter, et aussi la possibilité d'ajouter/supprimer un critère.
Donc en gros, j'ai un truc un peu comme ça:
ChkBox Label BtnAjoutCritère BtnSuppCritère
ChkBox Label BtnAjoutCritère BtnSuppCritère
ChkBox Label BtnAjoutCritère BtnSuppCritère
ChkBox Label BtnAjoutCritère BtnSuppCritère
J'ai nommé chaque contrôle de façon à pouvoir les reconnaître facilement.
mais voilà donc ma question:
Je fais régulièrement appel à des contrôles dans mon code.
Par exemple, si je coche une ChkBox, je voudrais que le Label et les boutons soient accessibles (ils sont grisés si la ChkBox n'est pas cochée).
Prenons cet exemple:
Type de Contrôle | Nom du Contrôle
ChkBox | ChkUoCode
Label | LabUoCode
BtnAjoutCritère | AddCritUoCode
BtnSuppCritère | DelCritUoCode
Comme vous pouvez le constater, on retrouve systématiquement UoCode pour ces contrôles.
Le problème, c'est que pour effectuer des actions en VBA sur chacun de ces contrôles, je passe à chaque fois par des
Cela prend beaucoup de temps à chaque fois de regarder chaque contrôle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim UneVariable as string UneVariable = UoCode For each Ctrl in me.Controls If Right(Ctrl.name, (Len(Ctrl.name) - 7)) = UneVariable then 'Je lance une procédure End If Next Ctrl
Je voulais savoir si on n'avait pas la possibilité de faire ce genre de choses:
En gros, je voulais savoir si on pouvait stocjer le nom d'un contrôle dans une variable, et le réutiliser comme cité précédemment, sans systématiquement passer par un For Each et une comparaison du nom du contrôle avec une variable.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3UneVariable = AddCritUoCode Me.UneVariable.Enabled = True
J'espère avoir été assez claire.
Partager