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

suppression lignes en fonction des dates

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

N

nice

Guest
Bonjour à tous,

Mes faibles connaissances en VBA ne me permettent pas de régler ce problème
J'ai une série de valeurs dans les cellules de la colonne A, séparées par des virgules
avec une date en 1ère valeur( en format anglais, Année, Mois, Jour).
Je veux seulement conserver les lignes correspondant à la date la plus récente dernier jour avec une macro.
(Le nombre de ligne pouvant varier)

( voir fichier joint)
Auriez vous la gentillesse de m'aider
Merci infiniment
 

Pièces jointes

Re : suppression lignes en fonction des dates

Bonjour


Puisque tu débutes en VBA

Saches que tu peux obtenir ce que tu souhaites sans macro en utilisant:
1) Données/Convertir
2) les fonctions AUJOURDHUI() et MIN

Intéressé par cette piste ?

Ou tu veux vraiment une macro ?
 
Re : suppression lignes en fonction des dates

Bonjour Nice, Staple, le forum,

Tu touveras ci joint ton fichier avec une macro te permettant de garder uniquement les lignes qui auront la meme date que celle de ta derniere ligne (d'apres ton fichier, les lignes sont importées chronoligiquement), les autres lignes seront supprimer.

Dans la macros tu trouveras tous les commentaires normalement nécessaire à la compréhension.

Bon dimanche à tous😎.
 

Pièces jointes

Re : suppression lignes en fonction des dates

Merci Nyko
c'est exactement ce que je cherchais, et merci aussi pour tes commentaires
Pour ma compréhension, une question:
Pourquoi utilises tu la fonction CDATE qui transforme une chaine de caractères en date, alors que la partie isolée de gauche est déjà en format date?
Merci infiniment
 
Re : suppression lignes en fonction des dates

Re, bonjour nyko283


Une macro donc
(en suivant la piste évoquée (et modifiée) plus bas)
Code:
Sub test()
Dim crit&, fin&
fin = [A65536].End(3).Row
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 5), Array(2, 9), Array(3, 9), Array(4, 9), Array(5, 9), Array(6, 9)), _
        TrailingMinusNumbers:=True
crit = Application.Max(Range("B1:B" & fin))
ActiveSheet.Range("B1:B" & fin).AutoFilter 1, "<" & crit, xlAnd
Selection.EntireRow.Delete
Columns(2).Delete
End Sub
 
Re : suppression lignes en fonction des dates

Re
Merci infiniment
Ta macro fonctionne super
mais est il possible de l'utiliser sans sélectionner manuellement les cellules de la colonne A
Cordialement
 
Re : suppression lignes en fonction des dates

Re


Juste pour infos: l'avantage d'utiliser Données/Convertir et d'extraire les dates
C'est qu'ensuite avec le filtre automatique , un vaste monde s'offre à toi
.
Cliques sur l'image pour plus de détails.

Pour répondre à ta question: oui on peut éviter la sélection.
EDITION: voici la macro modifiée en conséquence
Code:
Sub test_2()
Dim crit&, fin&
Application.ScreenUpdating = False
fin = [A65536].End(3).Row
Range("A1:A" & fin).TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 5), Array(2, 9), Array(3, 9), Array(4, 9), Array(5, 9), Array(6, 9)), _
        TrailingMinusNumbers:=True
crit = Application.Max(Range("B1:B" & fin))
ActiveSheet.Range("B1:B" & fin).AutoFilter 1, "<" & crit, xlAnd
Cells.SpecialCells(xlCellTypeVisible).EntireRow.Delete
Columns(2).Delete
Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Re : suppression lignes en fonction des dates

Pour en revenir à CDATE,

En visuel, la chaine de caractere est une date mais pour Excel cela reste du texte ( tu peut le voir car il est entouré de guillemet) or les dates dans Excel est un nombre ( aujourd'hui nous somme le 08/05/2011 et bas pour Excel nous sommes le 40671 eme jour depuis le 1 janvier 1900) donc pour les comparer facilement, dans ton fichier je compare le dernier jour 40669(06/05/2011) et tous ce qui est plus petit 40668...

Mais il est vrai que l'on aurait pu comparer les chaines de caratères...
 
Re : suppression lignes en fonction des dates

Merci Nicolas pour cette explication
Est il possible aussi d'extraire de cette chaine la date , A, et C seulement

Gilbert




Gilbert
 
Re : suppression lignes en fonction des dates

Re

Est il possible aussi d'extraire de cette chaine la date , A, et C seulement
Oui comme je l'ai déjà dit avec Données/Convertir 😉

Voila
Code:
Sub Macro4()
Dim  fin&
Application.ScreenUpdating = False
fin = [A65536].End(3).Row

Range("A1:A" & fin).TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 5), Array(2, 1), Array(3, 9), Array(4, 1), Array(5, 9), Array(6, 1)), _
        TrailingMinusNumbers:=True
Application.ScreenUpdating =True
End Sub
 
Dernière édition:
Re : suppression lignes en fonction des dates

Re Nicolas
Il y a un petit souci
La macro me donne une erreur 9 à la ligne " maDate", j'utilise un très grand nombre de ligne (dans certains cas environ 60 000 lignes)
Peux tu regarder ?
Merci infiniment
Gilbert
 
Re : suppression lignes en fonction des dates

Re


Et avec ma macro, il y aussi un petit souci ou pas ?

Concernant le code de nyko283
Modifies ainsi
Code:
Dim i As Long
et aussi
Code:
For i = Range("A65536").End(xlUp).Row To 1 Step -1
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
597
Réponses
9
Affichages
524
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…