Suppression de lignes en fonction d'une date

Bonjour

Je voudrais essayer d’avoir une macro qui me propose (msgbox) de supprimer ou non toutes les lignes des formations qui ont une date de fin (colonne H) supérieur à plus d’un mois de la date du jour dans un fichier qui comporte plus de 4000 lignes.

Dans le fichier exemple la macro que je souhaiterai avoir devrait pouvoir me proposer de supprimer toutes les lignes où j’ai mis un fond rouges dans la date fin qui correspond à une date dépassée depuis plus d’un mois.

Merci.

Salut Philippe,

voici, à coller dans le module de la feuille concernée.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Cancel = True
'
Application.ScreenUpdating = False
'
If Not Intersect(Target, Range("H2")) Is Nothing Then
    iRep = MsgBox("Confirmez-vous la suppression des données?", vbDefaultButton2 + vbYesNo + vbCritical, "Suppression")
    If iRep = 6 Then
        iRow = Range("A" & Rows.Count).End(xlUp).Row
        For x = iRow To 2 Step -1
            If Cells(x, 8).Interior.Color = RGB(255, 0, 0) Then Rows(x).Delete shift:=xlUp
        Next
    End If
End If
'
Application.ScreenUpdating = True
'
End Sub

A+

Salut Curulis57

Super ton petit code. Il fonctionne très bien mais ce n'est pas l'objectif que je voulais atteindre. Ce n'est pas les lignes ayant la cellule "H" en fond rouge que je souhaite supprimer MAIS les lignes dont la date en colonne H est dépassée depuis plus d'un mois. J'avais mis le fond rouge pour faire ressortir les ligne qui devait disparaître.

Autre point le double clic est super mais pour éviter et même si une fenêtre d'avertissement apparait je préfèrerai que le code s'exécute par un module lancé par un bouton. De cette manière c'est vraiment une action voulu qui est faite et non pas un double clic accidentelle.

Encore merci pour ton travail et j'espère que tu pourras adapter ton code.

Salut Philippe,

pas de souci..

Dis-moi, dans ta colonne [E:E], y a-t-il ne fût-ce qu'un demi-risque sur un milliard qu'un même code se répète d'une date à la suivante?

A+

Salut

La colonne E correspond au code de la session. Il est UNIQUE pour chaque FORMATION définie dans la colonne A donc il ne peut pas se répéter sauf erreur de saisie

Par contre tu peux avoir des formations différentes avec des dates de début et/ou de fin identiques.

A+

Oui, j'entends bien que les codes sont uniques pour chaque formation.

Ce que je demande, pour le dire autrement : une même formation peut-elle être organisée deux fois de suite dans ta liste.

Pour le dire encore autrement, puis-je être certain de trouver des successions de formations, donc de codes

, différentes ?

Pourquoi ? Cellules fusionnées !!!!

A+

Je n'arrive pas à comprendre ce que tu me dis au sujet des formation. Il peut y avoir plusieurs formations indentiques mais qui auront obligatoirement un code session différent et des dates différentes également.

La fusion est pour avoir un confort visuel en regroupant les dates de début et fin d'une même formation. Si elle te gêne tu peux très bien lancer au début de ta macro la procédure "Sub detaildetouteslescolonnes()" du module1. Il n'y aura plus de fusion.

Est-ce mon complément de réponse de convient.

Salut Philippe,

ne te tracasse plus! J'ai trouvé une solution élégante que je suis en train de mettre en place!

A+

Super je suis impatient de la voir

Voilà, Philippe,

un petit bouton rouge en [H2] à cliquer pour une MsgBox de confirmation...

Private Sub cmdGO_Click()
'
Application.ScreenUpdating = False
'
iRep = MsgBox("Confirmez-vous la suppression des données?", vbDefaultButton2 + vbYesNo + vbCritical, "Suppression")
If iRep = 6 Then
    iRow = Range("A" & Rows.Count).End(xlUp).Row
    For x = iRow To 3 Step -1
        If Cells(x, 8) <> "" And Cells(x, 8) < Date Then
            If DateDiff("m", CDate(Cells(x, 8)), Date) >= 1 Then
                iFlag = Range("H" & x).MergeArea.Rows.Count - 1
                Rows(x & ":" & x + iFlag).Delete shift:=xlUp
            End If
        End If
   Next
End If
'
Application.ScreenUpdating = True
'
End Sub

A+

Super ça marche. Impec . Merci pour ton travail et le temps consacré.

Je mets en résolu.

Rechercher des sujets similaires à "suppression lignes fonction date"