Private i As Integer 'déclare la variable I (Incréments)
Dim Tab_Referent()
Dim Tab_Axe()
Private Sub FiltreAxe_Change()
Dim k%
Axestrat = ""
Thème = ""
NomRéduit = ""
Réferent = ""
Datedébutprojet = ""
Datefinprojet = ""
Me.TabStrip1.Value = -1 'tabstrip no index start
Do While TabStrip1.Tabs.Count > 1
TabStrip1.Tabs.Remove (0) 'remove all but first tab
Loop
With GestionProjet.TabStrip1
For i = 0 To Cells(Rows.Count, 1).End(xlUp).Row - 1 'boucle 1 = boucle sur tous les projets de la liste
If Sheets("Liste projet").Cells(i + 5, 2).Value = FiltreAxe Then
.Tabs.Add
.Tabs(k).Caption = Feuil1.Cells(i + 5, 4).Value
k = k + 1
ReDim Preserve Tab_Referent(1 To k) 'on redimensionne le tableau temporaire
Tab_Referent(k) = Feuil1.Cells(i + 5, 5).Value 'on récupére la valeur de la Colonne "Référent Projet"
If k = 1 Then
If TabStrip1.Tabs.Count > 1 Then TabStrip1.Tabs.Remove (1) 'supp tabs
Axestrat = Feuil1.Cells(i + 5, 2).Value
Thème = Feuil1.Cells(i + 5, 3).Value
NomRéduit = Feuil1.Cells(i + 5, 5).Value
Réferent = Feuil1.Cells(i + 5, 6).Value
Datedébutprojet = Feuil1.Cells(i + 5, 9).Value
Datefinprojet = Feuil1.Cells(i + 5, 10).Value
Label58 = i + 5
End If
End If
Next i
End With
FiltreRéférent.Clear 'On vide le Control
[B][COLOR=rgb(247, 218, 100)]FiltreRéférent.List = Tab_Referent 'On remplit le Control[/COLOR][/B]
FiltreRéférent.ListIndex = IIf(k = 1, 0, -1) 'On affiche la valeur si un seul Choix
TabStrip1.Value = 0
Erase Tab_Referent 'On vide le tableau temporaire
End Sub
Private Sub FiltreRéférent_Change()
Dim k%
Axestrat = ""
Thème = ""
NomRéduit = ""
Réferent = ""
Datedébutprojet = ""
Datefinprojet = ""
Me.TabStrip1.Value = -1 'tabstrip no index start
Do While TabStrip1.Tabs.Count > 1
TabStrip1.Tabs.Remove (0) 'remove all but first tab
Loop
With GestionProjet.TabStrip1
For i = 0 To Cells(Rows.Count, 1).End(xlUp).Row - 1 'boucle 1 = boucle sur tous les projets de la liste
If Sheets("Liste projet").Cells(i + 5, 5).Value = FiltreRéférent Then
.Tabs.Add
.Tabs(k).Caption = Feuil1.Cells(i + 5, 4).Value
k = k + 1
ReDim Preserve Tab_Axe(1 To k) 'on redimensionne le tableau temporaire
Tab_Axe(k) = Feuil1.Cells(i + 5, 2).Value 'on récupére la valeur de la Colonne "Référent Projet"
If k = 1 Then
If TabStrip1.Tabs.Count > 1 Then TabStrip1.Tabs.Remove (1) 'supp tabs
Axestrat = Feuil1.Cells(i + 5, 2).Value
Thème = Feuil1.Cells(i + 5, 3).Value
NomRéduit = Feuil1.Cells(i + 5, 4).Value
Réferent = Feuil1.Cells(i + 5, 5).Value
Datedébutprojet = Feuil1.Cells(i + 5, 7).Value
Datefinprojet = Feuil1.Cells(i + 5, 8).Value
Label58 = i + 5
End If
End If
Next i
End With
FiltreAxe.Clear 'On vide le Control
[B][COLOR=rgb(247, 218, 100)]FiltreAxe.List = Tab_Axe 'On remplit le Control[/COLOR][/B]
FiltreAxe.ListIndex = IIf(k = 1, 0, -1) 'On affiche la valeur si un seul Choix
TabStrip1.Value = 0
Erase Tab_Axe 'On vide le tableau temporaire
End Sub
Private Sub UserForm_Initialize()
Set f = Sheets("Liste projet")
Set MonDico = CreateObject("Scripting.Dictionary")
a = f.Range("B6:B" & f.[A65000].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
Me.FiltreAxe.List = MonDico.keys
Set MonDico = CreateObject("Scripting.Dictionary")
a = f.Range("E6:E" & f.[A65000].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
Me.FiltreRéférent.List = MonDico.keys
Me.Left = Application.Left + Application.Width / 2 - Me.Width / 2
Me.Top = Application.Top + Application.Height / 2 - Me.Height / 2
End Sub