Supprimer les lignes antérieures à une date donnée [VBA]

Résolu
Fitz_Chev -  
 Fitz_Chev -
Bonjour,

Dans le cadre d'une de mes macros, je souhaite, comme indiqué dans le titre, supprimer toutes mes lignes antérieures à une date spécifique.
J'ai déjà préparer un petit quelque chose mais je ne comprends pas car quand je lance ma macro, il me supprime toutes mes lignes, même celle postérieures ou égales à ma date. Pour info, ma date est en colonne C, bien entendu en format date, et mon tableau a des en-têtes.
Voici ce que j'ai fait:
Sub test()
saisie_date:
    Date_CA = InputBox(Chr(13) & Chr(10) & Chr(13) & Chr(10) & "      Saisissez la date du fichier de surcos (format JJ/MM/AAAA)", "Saisie de la date", Format(Date, "dd/mm/yyyy"))
    If Date_CA = "" Then
        Exit Sub
    End If
    If Not IsDate(Date_CA) Then
        MsgBox "Format de date saisie incorrect !"
        GoTo saisie_date
    End If
    If Date_CA <> Format(Date_CA, "dd/mm/yyyy") Then
        MsgBox "le format doit être jj/mm/aaaa !"
        GoTo saisie_date
    End If
    For n = [C65000].End(xlUp).Row To 2 Step -1
    If Range("C" & n).Value < Date_CA Then Range("C" & n).EntireRow.Delete
    Next n
End Sub


Si vous avez besoin d'un fichier exemple, dites le moi.

Merci d'avance

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    ton pb vient du fait que la valeur de date de l'inputbox se transforme en date anglophone
    02/04/2016 te renvoie 04/02/2016 !

    ci joint une petite maquette à adapter à ton contexte en utilisant un userform avec un combobox: les dates inférieures à la date choisie sont supprimées
    attention le combobos renvoie la date sous forme de string

    MAIS:
    le + simple (à mon avis ) serait de mettre dans ta feuille une à validation de donnée reprenant les dates ou d'inscrire la date dans une cellule

    la maquette
    http://www.cjoint.com/c/FCyiwNWEn8t
    1
    1. Fitz_Chev
       
      Merci, je n'ai pas utiliser ta méthode mais avec ta réponse, j'ai inscrit ma date dans une cellule que j'ai converti après ce qui me donne la bonne date, pour info, ça peut servir, voici les 3 lignes que j'ai rajoutées:

          Range("R1").Select
          ActiveCell = Date_CA
          Range("R1").Value = Format(Range("R1").Value, "dd/mm/yyyy")
      0