Comparer colonnes de dates à la date d'aujourd'hui

deub-deub Messages postés 21 Statut Membre -  
 foo -
Bonjour ,

Je débute en VBA et je dois trier parmi une grosse une grosse liste toutes les lignes dont la date (se trouvant à la colonne 16) est ultérieure à aujourd'hui.
J' essayé d'écrire une macro , je pense que mon raisonnement est bon mais je sais pas comment le retranscrire en langage VBA :

Dim i as integer

For i = 2 to "ligne finale"

If Cells(i,16).value < Aujourd'hui() Then

"copier la ligne dans une nouvelle feuille"
End If

Next

Merci d'avance pour votre aide.

3 réponses

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

    qu' appelles tu "grosse liste " : 2000 lignes,50000,20000?
    Combien de colonnes dans ton tableau ou dernière colonne utilisée ?

    avec tes réponses, on pourra te proposer une solution

    Au besoin , mets un extrait (2000 lignesmaxi) de ton classeur

    pour joindre une pièce
    mettre le classeur sans données confidentielles en pièce jointe sur
    https://www.cjoint.com/
    puis copier l'adresse du lien et la coller dans le message de réponse

    d'avance merci

    Michel
    0
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Pourquoi t'embêter avec une macro qui prendra du temps peut être à s'exécuter en lisant ligne par ligne en plus

    Tu selectionnes ta colonne de dates; tu appliques un Filtre (onglet Données Filtrer) Tu cliques sur l'icône filtre au sommet de la colonne puis Filtres chronologiques puis Après et Postérieur au et tu choisis la date d'aujourdhui
    Une fois le filtre appliqué tu selectionnes toutes les colonnes et tu fais un copier coller sur une autre feuille

    Si tu veux automatiser la procédure tu peux lancer l'enregistreur de macro avant de commencer la manip pour obtenir une macro réutilisable

    Cdlmnt
    0
  3. foo
     
    Bonjour

    deja ton If est pas bon

    If Cells(i, 16).Value < DateValue(Now) Then

    A+

    Maurice
    -1