Filtre auto qui ne prend pas en compte toutes les dates

Bonjour,

J'ai un soucis sur un tableau excel assez gros (+1500 lignes et +75 colonnes) avec les filtres automatiques :

Certaines date ne sont pas considéré comme telles, j'ai le système de date filtre pour certaines avec une arborescence mois/années, mais certaines dates apparraissent comme une valeur de filtre.

Le format des colonnes est bien au format "jj/mm/aaaa" et toutes les dates sont dans ce format.

Si j'édite une case en saisie de texte et que je change de case sans changer le contenu (sans y toucher même), elle est prise en compte en tant que date et rentre "dans le rang".

J'ai tenté d'utiliser le code suivant pour tout recadrer, sans succès (sauf la correction des dates de jj/mm/aa en jj/mm/aaaa qui a très bien fonctionnée.

Sub CorrectionDate()
'Correction date

Dim MyTab(6) As Integer
MyTab(0) = 7
MyTab(1) = 8
MyTab(2) = 27
MyTab(3) = 28
MyTab(4) = 31
MyTab(5) = 71
x = 0

i = 3
While Worksheets("Suivi presta").Cells(i, 1) > 0

    For J = 0 To UBound(MyTab) - 1

        If Worksheets(1).Cells(i, MyTab(J)).Value <> "" Then

        TempDate = Worksheets(1).Cells(i, MyTab(J)).Value
        Madate = Split(TempDate, "/")

            If UBound(Madate) = 2 Then

                If Madate(2) < 2000 Then Madate(2) = Madate(2) + 2000
                Worksheets(1).Cells(i, MyTab(J)).Value = Madate(0) & "/" & Madate(1) & "/" & Madate(2)
                Worksheets(1).Cells(i, MyTab(J)).Value = Format(Worksheets(1).Cells(i, MyTab(J)).Value, "dd/MM/yyyy")
            End If
        End If
    Next J
i = i + 1
Wend
End Sub

Savez vous comment résoudre ce problème ?

Merci d'avance pour votre aide.

Bonjour et

Je comprend pas bien l'utilité de ton code, suffit de sélectionner la/les colonne(s) et de modifier le format des cellules par jj/mm/aaaa

??

A+

J'ai tendance à penser la même chose, mais ce n'est pas le cas.

Avant j'avais des dates type 01/01/13 que je devais transformer en 01/01/2013 et juste changer le format de colonne ne suffisait pas.

D'où le code pour considérer les dates en format texte et les ajuster.

M'en doutais bien, d'ou ma question.

Si le format de cellule ne modifie pas certaine cellule c'est qu'elle ne sont pas considérées comme Date cause de ton problème avec le filtre.

Tu pourais déposé une modèle de ton classeur (sans donnée confidentielle) mais avec des cellules qui ne veulent pas se modifier ?

A+

Et hop, un upload tros gros... 1,58 mo.

95gestion.xlsm (196.41 Ko)

Le classeur que tu met en démo à déjà été traité par ta macro, j'aurais souhaité que l'exemple soit avec les dates du style 1/10/11

ça permettait de trouver les mauvaises cellules plus facilement.

EDIT: Pas besoin d'un autre exemple, j'ai trouvé les cellules litigieuses, je cherche une solution.

Le problème n'est pas localisé sur les cellules en jj/mm/aa, mais sur l'ensemble, avant traitement macro, les cellules problématiques pouvaient être de format "aa" ou "aaaa".

Et malheureusement, je ne dispose plus de classeur n'ayant pas subit le traitement macro.

Voire mon édit poste précédant.

Passe ce code sur ton classeur, éventuellement adapter pour les colonnes.

Sub Transcode()
Dim S, TB, Lig As Long
    With Sheets("Suivi presta")
        For Lig = 3 To Cells(Rows.Count, "G").End(xlUp).Row
            On Error Resume Next
            S = Cells(Lig, "G")
            TB = Split(S, "/")
            If UBound(TB) = 2 Then
                Cells(Lig, "G").Value = DateSerial(TB(2), TB(1), TB(0))
            End If
            S = Cells(Lig, "H")
            TB = Split(S, "/")
            If UBound(TB) = 2 Then
                Cells(Lig, "H").Value = DateSerial(TB(2), TB(1), TB(0))
            End If
        Next Lig
    End With
End Sub

Le On Error -> tu à des cellules qui sont erronées comme en ligne 518 ->0//2000

A+

Ok, ça marche nickel, merci.

Juste par curiosité quel était le problème ?

Eh bien Excel est parfois très têtu..une fois qu'une cellule est détectée comme étant du texte il n'a pas la possibilité d'analyser la cellule pour la modifier en date. Ce que j'ai fais avec le code que je t'ai communiqué.

Pas oublier qu'il n' a pas de date avec excel mais un nombre, ce n'est que le format qui te permet de l'afficher selon les besoins.

A+

J'ai une solution très simple au problème, il suffit de remplacer dans les dates l'année par une autre (exemple : remplacer 2011 par 1991) puis faire la démarche inverse (remplacer 1991 par 2011) et toutes les dates seront intégrées dans le filtre


J'ai une solution très simple au problème, il suffit de remplacer dans les dates l'année par une autre (exemple : remplacer 2011 par 1991) puis faire la démarche inverse (remplacer 1991 par 2011) et toutes les dates seront intégrées dans le filtre

Rechercher des sujets similaires à "filtre auto qui prend pas compte toutes dates"