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

Fermé
deub-deub Messages postés 21 Date d'inscription mercredi 25 septembre 2013 Statut Membre Dernière intervention 21 novembre 2013 - 18 oct. 2013 à 14:41
 foo - 18 oct. 2013 à 15:38
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.
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 307
Modifié par michel_m le 18/10/2013 à 15:10
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
via55 Messages postés 14477 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 3 octobre 2024 2 730
18 oct. 2013 à 15:17
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
Bonjour

deja ton If est pas bon

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

A+

Maurice
-1