Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

date depasser de 1 mois

  • Initiateur de la discussion Initiateur de la discussion Mitch
  • Date de début Date de début

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 !

Mitch

XLDnaute Occasionnel
Bonjour j'ai cette macro qui m'efface la ligne quand une date dans la colonne C et dépasser mais j'aurais voulu quelle s'efface que 1 mois après

Application.ScreenUpdating = False 'accélère l'éxecution et évite le scintillement de l'écran
Dim C As Date, i As Integer, imax As Integer 'déclarations
With Sheets("chantier posé")
imax = .Cells(Rows.Count, 4).End(xlUp).Row 'numéro de la dernière ligne saisie
For i = imax To 2 Step -1 'boucle en partant du bas
C = CDate(.Cells(i, 3)) 'date de la ligne en cours
If C < Now Then .Rows(i).EntireRow.Delete 'suppression de la ligne complète
Next i
 
Re : date depasser de 1 mois

Bonjour Mitch, bonjour le forum,

Un mois pile c'est compliqué car les mois n'ont pas le même nombre de jours... Si une solution avec 30 jours (ou 31 jours) te convient il suffit de remplacer la ligne :
Code:
If C < Now Then .Rows(i).EntireRow.Delete 'suppression de la ligne complète
par
Code:
If C + 30 < Now Then .Rows(i).EntireRow.Delete 'suppression de la ligne complète
 
Re : date depasser de 1 mois

Salut Mitch et le forum
Si j'ai bien compris ton charabia, tu voudrais que quand la date en C est dépassée de plus d'un mois, on l'efface.

Quelques remarques : écrire en phonétique n'est pas le meilleur moyen de supprimer les erreurs d'interprétation que peuvent faire les dépanneurs.

Un extrait de code ne permet pas de le comprendre obligatoirement. Déjà avec toute la macro, sans explication de ce qu'elle doit faire, ce n'est pas facile... alors avec juste un lambeau...
Code:
Application.ScreenUpdating = False 'accélère l'éxecution et évite le scintillement de l'écran

Dim C As Date, L As Long, Lmax As Long 'déclarations

With Sheets("chantier posé")
    Lmax = .Cells(Rows.Count, "D").End(xlUp).Row 'numéro de la dernière ligne saisie
    For L = Lmax To 2 Step -1 'boucle en partant du bas
        C = CDate(.Cells(L, "C")) 'date de la ligne en cours
        C = DateSerial(Year(C), Month(C) + 1, Day(C))
        If C < date Then .Rows(L).Delete 'suppression de la ligne complète
    Next L
Lambeau non testé
A+
 
Re : date depasser de 1 mois

Bonjour le fil, bonjour le forum,

Merci Gorfael d'avoir complété ma réponse avec une solution intéressante que je vais tenter de retenir...
Par contre je n'ai pas compris tes remarques envers Mitch. Son explication me parraissait claire (malgré le et dépasser à la place de est dépassée...) et l'extrait de son code suffisant pour pouvoir lui répondre...
 
Re : date depasser de 1 mois

Merci Robert 30 jours me convient parfaitement
Gorfael excuse moi c'est vrai que pour celui qui voit le message il lui faut un max d'indication je le ferais plus promis
 
- 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
1 K
A
Réponses
25
Affichages
4 K
A
P
Réponses
6
Affichages
1 K
Pieerre69
P
M
Réponses
11
Affichages
2 K
Melidan2006
M
M
Réponses
3
Affichages
1 K
MarcTer
M
V
Réponses
5
Affichages
4 K
V
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…