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 SubEn espérant que vous pussiez m'aide;
Bien cordialement

 
	 
 
		 
 
		 
					
				 
						
					 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		