Bonjour,
J'expose la situation.
J'ai un tableau de plusieurs colonne. Je souhaite trier la colonne 29 "A recontacter" avec la fonction "trier" d'Excel.
Pour ce faire, j'utilise macro qui ouvre un userform avec un combobox dont la valeur selectionnée genere le filtre de la colonne.
Mon problème, c'est que quand je selectionne une date, le filtre ne s'applique pas.
A priori les dates ne sont pas reconnues par la fonction filtre. Car, quand j'utilise le même code, sur des valeurs de type strings, mon code marche !
voilà mon code :
............................................................
initialisation de la combobox (sans doublon):
............................................................
Sub maj_liste_recont()
liste_recont.Clear
Feuil1.Activate
debut = "AC2"
nb_fiche = Cells(1, 1).End(xlDown).Row
bas = "AC" & Cells(1, 29).End(xlDown).Row
Range(Cells(1, 1), Cells(nb_fiche, 29)).Sort Key1:=Range("ac2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
If bas <> "ac65536" Then
Set Plage = Range(debut, bas)
For Each cell In Plage
If cell.Value <> "" Then
doublon = False
'test les doublons
nb = liste_recont.ListCount
For N = 1 To nb
d = liste_recont.List(N - 1, 0)
If DateValue(cell.Value) = DateValue(liste_recont.List(N - 1, 0)) Then
doublon = True
N = nb
End If
Next
If doublon = False Then
liste_recont.AddItem DateValue(cell)
End If
End If
Next cell
End If
liste_recont.Text = "A recontacter le"
End Sub
............................................................
Lorsque je selectionne la valeur dans le menu déroulant :
............................................................
Private Sub liste_recont_AfterUpdate()
Feuil1.Activate
liste_niveau.Clear
liste_ville.Clear
Run "raz_filtre"
If liste_recont.ListIndex >= 0 Then
Run "filtre", liste_recont.Value, 29, Feuil1.Name
End if
............................................................
macro qui filtre le tableau
............................................................
Sub filtre(filtre, colonne, table)
Sheets(table).Activate
Selection.AutoFilter Field:=colonne, Criteria1:=filtre
end Sub
............................................................
A ce moment en théorie, il ne devrait rester que les lignes filtrées, mais dans mon cas, il n'y a rien !!!
............................................................
Merci par avant
J'expose la situation.
J'ai un tableau de plusieurs colonne. Je souhaite trier la colonne 29 "A recontacter" avec la fonction "trier" d'Excel.
Pour ce faire, j'utilise macro qui ouvre un userform avec un combobox dont la valeur selectionnée genere le filtre de la colonne.
Mon problème, c'est que quand je selectionne une date, le filtre ne s'applique pas.
A priori les dates ne sont pas reconnues par la fonction filtre. Car, quand j'utilise le même code, sur des valeurs de type strings, mon code marche !
voilà mon code :
............................................................
initialisation de la combobox (sans doublon):
............................................................
Sub maj_liste_recont()
liste_recont.Clear
Feuil1.Activate
debut = "AC2"
nb_fiche = Cells(1, 1).End(xlDown).Row
bas = "AC" & Cells(1, 29).End(xlDown).Row
Range(Cells(1, 1), Cells(nb_fiche, 29)).Sort Key1:=Range("ac2"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
If bas <> "ac65536" Then
Set Plage = Range(debut, bas)
For Each cell In Plage
If cell.Value <> "" Then
doublon = False
'test les doublons
nb = liste_recont.ListCount
For N = 1 To nb
d = liste_recont.List(N - 1, 0)
If DateValue(cell.Value) = DateValue(liste_recont.List(N - 1, 0)) Then
doublon = True
N = nb
End If
Next
If doublon = False Then
liste_recont.AddItem DateValue(cell)
End If
End If
Next cell
End If
liste_recont.Text = "A recontacter le"
End Sub
............................................................
Lorsque je selectionne la valeur dans le menu déroulant :
............................................................
Private Sub liste_recont_AfterUpdate()
Feuil1.Activate
liste_niveau.Clear
liste_ville.Clear
Run "raz_filtre"
If liste_recont.ListIndex >= 0 Then
Run "filtre", liste_recont.Value, 29, Feuil1.Name
End if
............................................................
macro qui filtre le tableau
............................................................
Sub filtre(filtre, colonne, table)
Sheets(table).Activate
Selection.AutoFilter Field:=colonne, Criteria1:=filtre
end Sub
............................................................
A ce moment en théorie, il ne devrait rester que les lignes filtrées, mais dans mon cas, il n'y a rien !!!
............................................................
Merci par avant