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:

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
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
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