Bonjour à tous, je débute en VBA et je suis coincé avec mon UserForm (modifierProduit).
Je m'explique: j'aimerai qu'en ouvrant celui-ci (après avoir cliqué sur un bouton) il s'ouvre à une position définit et que certain de ses composants (Label , ComboBox, ...) soit apparents aussi avec chacun leur position (Height, Left, Top, Width).
Ensuite j'aimerai qu'en cliquant sur un bouton, certain des composants soient cachés et que d'autres apparaissent à des positions différentes.
Comme mon nombre de composant est assez important, j'ai décidé de créer une fonction (majPosition) qui récupère les informations d'une autre fonction (SetPosition) et qui change les valeurs de : Height, Left, Top, Width et Visible pour un composant choisi (aussi bien la fenêtre de mon UF que ses composants).
J'ai cherché sur internet et j'ai lu qu'on pouvait utiliser le fonction "Me" mais j'ai l'impression que celle-ci ne concernce que les UF et pas ses composants.
PS: j'ai bien créé un type position que j'ai mis dans mon module:
Voici mon code si vous savez m'aider...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Type Position Hauteur As Single Gauche As Single Haut As Single Large As Single Voir As Boolean End Type
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
25
26
27
28
29
30
31
32
33 Dim posLabel_ancienMP As Position, posmodifierProduit As Position Private Sub UserForm_Initialize() posmodifierProduit = SetPosition(1, 48, 18, 18, True) Call majPosition(posmodifierProduit, modifierProduit.Height, modifierProduit.Left, modifierProduit.Top, modifierProduit.Width, modifierProduit.Visible) posLabel_ancienMP = SetPosition(18, 48, 18, 18, True) Call majPosition(posLabel_ancienMP, Label_ancienMP.Height, Label_ancienMP.Left, Label_ancienMP.Top, Label_ancienMP.Width, Label_ancienMP.Visible) End Sub Private Function majPosition(element As Position, H As Single, L As Single, T As Single, W As Single, V As Boolean) H = element.Haut L = element.Gauche T = element.Haut W = element.Large V = element.Voir End Function Private Function SetPosition(Hauteur As Single, Gauche As Single, Haut As Single, Large As Single, Voir As Boolean) As Position SetPosition.Hauteur = Hauteur SetPosition.Gauche = Gauche SetPosition.Haut = Haut SetPosition.Large = Large SetPosition.Voir = Voir End Function
Partager