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

XL 2016 Supprimer ligne si date aujourdhui()

  • Initiateur de la discussion Initiateur de la discussion J- Paul
  • 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 !

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

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
 
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
😉
 
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😀 ne seront pas supprimées dans le reste des colonnes de la feuille
 
Dernière édition:
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.
 
- 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
4
Affichages
116
Réponses
6
Affichages
189
  • Question Question
Microsoft 365 bouton supprimer
Réponses
4
Affichages
115
  • Question Question
XL 2021 Doublons
Réponses
7
Affichages
146
  • Question Question
Power Query Power Query
Réponses
26
Affichages
597
Réponses
10
Affichages
384
Réponses
5
Affichages
267
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…