XL 2016 Supprimer ligne si date aujourdhui()

J- Paul

XLDnaute Nouveau
Bonjour à tous
Dans le classeur joint je voudrais supprimer la ligne si la date de création colonne A est égale ou supérieure à la date aujourd'hui
Merci
 

Pièces jointes

  • Test.xlsm
    10 KB · Affichages: 6

Gégé-45550

XLDnaute Accro
Bonjour,
Dans un module,
VB:
Sub Suppression()
Dim derlig&, i&
    derlig = ThisWorkbook.Worksheets("Feuil1").Cells(Rows.Count, 1).End(xlUp).Row
    With ThisWorkbook.Worksheets("Feuil1")
        For i = 2 To derlig
            If .Cells(i, 1).Value > Now() Then
                .Cells(i, 1).EntireRow.Clear
            End If
        Next i
    End With
End Sub
puis vous lancez la procédure 'Suppression' comme bon vous semble ; bouton, changement de valeur d'une cellule, etc.
Cordialement
 

patricktoulon

XLDnaute Barbatruc
re
ben c'est surtout qu'avec delete non seulement tu ira trop loin mais tu va en zaper
apres a i regarder de plus près tu utilise un clearcontents donc tu delete pas

et secondo le demandeur a demandé "est égale ou supérieure à la date aujourd'hui"
pour deleter

sur un range

VB:
Sub RealSuppressionRowInRange()
Dim derlig&, i&
    derlig = Cells(Rows.Count, 1).End(xlUp).Row
        For i = derlig To 2
            If Cells(i, 1).Value > Date - 1 Then
                Cells(i, 1).EntireRow.Delete
            End If
        Next i
End Sub

si c'est un listobject("Tableau structuré')
attention on ne delete pas une row mais un listrow

VB:
Sub RealSuppressionRowInListObject()
Dim i&
         With Range("Tableau1").ListObject
         For i = .ListRows.Count To 1 Step -1
             If .ListRows(i).Range(1).Value > Date - 1 Then
               .ListRows(i).Delete
            End If
        Next i
End With
End Sub
;)
 

patricktoulon

XLDnaute Barbatruc
re
et je vois même un 3 eme problème même avec une boucle a reculons et même avec clearcontents
tu clear la ligne complète
il se peut que le tableau fasse x colonnes et qu'a coté ( à draite il y ai d'autre données (ex:un autre tableau)
resultat tu bousille le tableau d'a coté aussi
comme quoi une question simple peut bien en succiter quelques autres
;)
donc sur un range avec la methode clearr il faudrait travailler sur un tableau et non une colonne
et suprimer le ".rows(i) de la plage " et non la "cells(i,1).entirerow de la feuille "
ce n'est pas du tout la même chose
exemple
VB:
Sub Suppressiononlyinrangefixe()
Dim derlig&, i&
     derlig = Cells(Rows.Count, 1).End(xlUp).Row
  With Range("A1:d" & derlig)
     For i = 2 To .Rows.Count
            If .Cells(i, 1).Value > Now() Then
                .Rows(i).Clear
            End If
        Next i
    End With
End Sub
;)
les ligne supprimées dans A:D ne seront pas supprimées dans le reste des colonnes de la feuille
 
Dernière édition:

Gégé-45550

XLDnaute Accro
re
et je vois même un 3 eme problème même avec une boucle a reculons et même avec clearcontents
tu clear la ligne complète
il se peut que le tableau fasse x colonnes et qu'a coté ( à draite il y ai d'autre données (ex:un autre tableau)
resultat tu bousille le tableau d'a coté aussi
comme quoi une question simple peut bien en succiter quelques autres
;)
donc sur un range avec la methode clearr il faudrait travailler sur un tableau et non une colonne
et suprimer le ".rows(i) de la plage " et non la "cells(i,1).entirerow de la feuille "
ce n'est pas du tout la même chose
exemple
VB:
Sub Suppressiononlyinrangefixe()
Dim derlig&, i&
     derlig = Cells(Rows.Count, 1).End(xlUp).Row
  With Range("A1:d" & derlig)
     For i = 2 To .Rows.Count
            If .Cells(i, 1).Value > Now() Then
                .Rows(i).Clear
            End If
        Next i
    End With
End Sub
;)
les ligne supprimées dans A:D ne seront pas supprimées dans le reste des colonnes de la feuille
Parfaitement d'accord avec toi, mais bon, comme fichier de test, on avait une douzaine de lignes toutes seules ; après, c'est au demandeur de préciser correctement son besoin et d'avertir s'il y a des précautions à prendre en dessous et à côté ... ce qui n'enlève rien à la pertinence de toutes tes remarques.
 

Discussions similaires

Réponses
5
Affichages
244
Réponses
16
Affichages
447
Réponses
17
Affichages
403

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla