Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kllmoon

XLDnaute Occasionnel
Bonjour,

je fais un classeur qui me sert de base de données. Dans la colonne D, j'ai une série de dates qui ne servent plus au bout de 3 mois. Je voudrais donc me créer une macro qui s'exécute au lancement du classeur et qui vérifie ma colonne D pour voir si j'ai des dates qui ont été entrées il y a plus de 3 mois. Ensuite, je le ferais effacer la ligne au complet.

Je peux tout faire son le calcul de la date en boucle pour chaque lignes (D4,D5,D6.....D88,etc). Quelqu'un peut m'aider svp??? Bref, je veux une macro qui passe toutes les lignes de la colonne D et si la date inscrite fait plus de 3 mois, on efface.
 
Re : Calcul de date

ça ne semble pas fionctionner pour moi...

Code:
Sub Menage()
Dim L As Long
 
    With Sheets("c")
            For L = .Range("D65536").End(xlUp).Row To 3 Step -1
                If IsDate(.Cells(L, 1)) Then
                     .Cells(L, 1) = .Cells(L, 1)
                         If DatePart("m", CDate(.Cells(L, 1).Value)) < DatePart("m", Date) - 3 Then
                             .Rows(L).Delete
                         End If
                End If
            Next
    End With


End Sub

Ceci devrait effacer tout ce qui fait plus de 3 mois dans la colonne D non?
 
Re : Calcul de date

Bonjour Kilmoon 🙂,
Pour le lancement à l'ouverture, utilises dans ThisWorkBook
Code:
Private Sub Workbook_Open()
End Sub
Pour la boucle, tu peux utiliser :
Code:
Dim I As Integer
I = 1
While Sheets("Feuil1").Cells(I, 4) <> ""
If Date - Cells(I, 4) > 90 Then
Cells(I, 1).EntireRow.Delete Shift:=xlUp
Else
I = I + 1
End If
Wend
La valeur 90 est a affiner.
Enfin pour tes posts, évite "je veux" ("je souhaiterais" est beaucoup plus agréable...), et un petit "Au revoir" ne mange pas de pain.
Bonne journée 😎
 
Re : Calcul de date

Rebonjour JNP, j'ai essayé vite fait car j'obsède sur ce que je fais... Je joint le fichier, remarque que c'est une ébauche donc on ne juge pas le produit!

J'ai essayé le code que tu m'as indiqué mais ça ne semble pas rien faire lorsque j'exécute la macro et je n'y comprend rien...

Merci de m'aider, c'est très apprécié.
 
Re : Calcul de date

Re 🙂,
Rebonjour JNP, j'ai essayé vite fait car j'obsède sur ce que je fais... Je joint le fichier, remarque que c'est une ébauche donc on ne juge pas le produit!

J'ai essayé le code que tu m'as indiqué mais ça ne semble pas rien faire lorsque j'exécute la macro et je n'y comprend rien...

Merci de m'aider, c'est très apprécié.
Euh, il est où le fichier ? 😛
Dans mon code, je suis parti du fait que tu étais sur la feuille à traiter, il faudrait peut-être remplacer les Cells(I, 4) par Sheets("Feuil1").Cells(I, 4) en modifiant le nom de Feuil1 suivant le nom de ton onglet. D'autre part, la procédure Workbook_Open ne s'exécute, comme son nom l'indique, qu'à l'ouverture du fichier.
A +
 
Re : Calcul de date

J'aurais pourtant juré avoir annexé le fichier.... Prise 2, le voici inclus 😀

Je n'ai que cette feuille à traiter, j'ajouterai une autre feuille lorsque je ferai l'option d'imprimer une liste de noms de mères qui sont dues pour accoucher dans le mois. Ce sera un autre casse tête lorsque je serai rendu là!
 

Pièces jointes

Re : Calcul de date

Bonsoir le forum 🙂,
Pierrejean : c'est vrai que depuis que je suis sur 2007, j'évite d'utiliser Range("D65536").End(xlUp) vu qu'on sait jamais, il peux y a voir des données en 65537 et + 😀.
Kilmoon : Tu ne m'avais pas dit que dans ton fichier il fallait commencer à la ligne 4 (la cellule D2 est vide, donc la macro s'arrête...). Il suffit de mettre I = 4 au lieu de I = 1 pour que ça fonctionne. Le résultat sera d'ailleurs le même que celui obtenu par Pierrejean.
Bonne soirée 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
171
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
429
Retour