Affichage des dates dans un ComboBox en excluant lignes maquées

INFINITY100

XLDnaute Occasionnel
Bonjour à tous

Voila j'ai sous la main une macro qui fonctionne très bien soit en affichage des dates dans le ComboBox soit en tri de ces dates, seulement il me reste qu'un petit soucis s’agissant des lignes masquées par un filtre, en effet j'aimerai ajouté au code ci-dessous un code qui ignore l'affichage des dates des lignes masquées dans le ComboBox

VB:
'Macro qui rapporte la liste des dates et les transpose dans le ComboBox "Par_Date"
Private Sub UserForm_Initialize()
'Raffraichir pendant le code
  Application.ScreenUpdating = True
'Curseur sur le ComboBox "Par_Date"
  Par_Date_ComboBox.SetFocus
'Transposer les dates dans le Combobox et faire le tri
  Set F = Sheets("Pertes-Par-Atelier")
  Set mondico = CreateObject("Scripting.Dictionary")
  a = F.Range("G20:G" & F.[G65000].End(xlUp).Row)
  For i = LBound(a) To UBound(a)
    If a(i, 1) <> "" Then mondico(a(i, 1)) = ""
  Next i
  temp = mondico.keys
  Tri temp, LBound(temp), UBound(temp)
  Me.Par_Date_ComboBox.List = temp
End Sub

VB:
'Macro de qui tri par ordre numerique auquelle le ComboBox "Par Date" fait appel
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

Merci à vous tous

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 617
Membres
103 608
dernier inscrit
rawane