Supprimer les lignes antérieures à une date donnée [VBA] [Résolu/Fermé]

Signaler
-
 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

Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 198
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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")