Bonjour à tous,
Étant débutant dans le VBA, mais grâce à l'aide de votre forum j'ai pu avancer sur ma macro, mais la je bloque depuis quelques jours.
Je vous explique :
Pour mon entreprise, je dois effectuer une macro qui permet à des managers de voir des informations.
J'ai donc créer un formulaire de recherche :
Hors lorsque je sélectionne un manager, je voudrais que le choix des agents se réduit, afin que le manager ne voit que ses agents, et pareil pour le stage, je voudrais que le manager voit que les stages de l'agent qu'il a sélectionné.
Ainsi une fois ces 3 combobox remplie que ça m'affiche dans la textbox seulement les dates disponibles pour le stage demandé.
Les informations concernant le manager, l'agent et le stage sont dans un classeur nommé "Besoin"
Les informations concernant la date et le stage est répété aussi dans un classeur nommé "Session"
Mon code à l'heure d'aujourd'hui me permet pas de réduire les choix possibles dans les combobox
Voici le code :
En espérant que vous pussiez m'aide;
Bien cordialement
Étant débutant dans le VBA, mais grâce à l'aide de votre forum j'ai pu avancer sur ma macro, mais la je bloque depuis quelques jours.
Je vous explique :
Pour mon entreprise, je dois effectuer une macro qui permet à des managers de voir des informations.
J'ai donc créer un formulaire de recherche :
Hors lorsque je sélectionne un manager, je voudrais que le choix des agents se réduit, afin que le manager ne voit que ses agents, et pareil pour le stage, je voudrais que le manager voit que les stages de l'agent qu'il a sélectionné.
Ainsi une fois ces 3 combobox remplie que ça m'affiche dans la textbox seulement les dates disponibles pour le stage demandé.
Les informations concernant le manager, l'agent et le stage sont dans un classeur nommé "Besoin"
Les informations concernant la date et le stage est répété aussi dans un classeur nommé "Session"
Mon code à l'heure d'aujourd'hui me permet pas de réduire les choix possibles dans les combobox
Voici le code :
VB:
Private Sub Quitter_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Me.ComboBox1.Clear
Dim F As Worksheet
Set F = Sheets("Besoin")
Set mondico = CreateObject("Scripting.Dictionary")
a = F.Range("D2:D" & F.[D65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
For i = LBound(a) To UBound(a)
If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
Next i
'--avec tri
temp = mondico.keys
Call Tri(temp, LBound(temp), UBound(temp))
Me.ComboBox1.List = temp
End Sub
Sub Tri(a, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
G = gauc: d = droi
Do
Do While a(G) < ref: G = G + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If G <= d Then
temp = a(G): a(G) = a(d): a(d) = temp
G = G + 1: d = d - 1
End If
Loop While G <= d
If G < droi Then Call Tri(a, G, droi)
If gauc < d Then Call Tri(a, gauc, d)
End Sub
Private Sub ComboBox1_Change()
Dim F As Worksheet
Dim n As Variant
Dico_2:
Set F = Sheets("Besoin")
Set mondico = CreateObject("Scripting.Dictionary")
a = F.Range("B2:B" & F.[B65000].End(xlUp).Row) ' tableau a(n,1) pour rapidité
For i = LBound(a) To UBound(a)
If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
Next i
'--avec tri
temp = mondico.keys
Call Tri(temp, LBound(temp), UBound(temp))
Me.ComboBox2.List = temp
End Sub
En espérant que vous pussiez m'aide;
Bien cordialement