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

Merci pour ta réponse
Ton code fonctionne très bien
J'ai toujours l' erreur 9 en modifiant le code de Nicolas
Très Cordialement
 
Re : suppression lignes en fonction des dates

la valeur A de ma chaîne est en fait une heure au format 00:00
ma chaîne est la suivante : la date,00:00,nombre1,nombre2,nombre3
Cela peut il provoquer cette erreur 9??
 
Re : suppression lignes en fonction des dates

Re

PS:
J'avais oublié cette modif à faire également
Code:
maDate = CDate(Replace(Left(Cells(ThisWorkbook.Worksheets("Feuil1").Range("A65356").End(xlUp).Row, 1).Value, 10), ".", "/"))

Un doute vient de m'assaillir
Et j'ai testé
Si pas de feuille nommée Feuil1
alors moi aussi j'ai une erreur d'éxécution 9

Donc, chez toi qu'en est-il ?
 
Dernière édition:
Re : suppression lignes en fonction des dates

Re

Ce n'est pas plutôt
2011.02.23,23:30,1.37504,1.37623,1.37499,1.37612,6.32

Tu as vu ma question dans mon précédent message ?

Tu as bien une feuille nommée Feuil1 dans ton classeur ?
 
Dernière édition:
Re : suppression lignes en fonction des dates

Re


Peux-tu tester ceci (sue une copie de ton fichier d'origine), stp ?

Code:
Sub eclater_cellules()
With Range([A1], [A65536].End(xlUp))
    .TextToColumns .Cells(1, 2), 1, , , , , , , , , Array(1, 5), "."
End With
End Sub
 
Re : suppression lignes en fonction des dates

Re


Et celui-là
Code:
Sub eclater_cellules_TESTOK()
Dim crit&, fin&
Application.ScreenUpdating = False
fin = [A65536].End(3).Row
    With ActiveSheet
        .Range([A1], [A65536].End(xlUp)).TextToColumns .Cells(1, 2), 1, , , , , , , , , Array(1, 5), "."
        crit = Application.Max(.Range("B1:B" & fin))
        .Range("B1:B" & fin).AutoFilter 1, "<" & crit, xlAnd
        .Cells.SpecialCells(xlCellTypeVisible).EntireRow.Delete
        .Columns(1).Delete
    End With
End Sub
Chez moi, tout se passe sans problème.

Ici résultat avec la macro: eclater_cellules
 
Dernière édition:
Re : suppression lignes en fonction des dates

Re
la macro m'enlève la 1ère ligne et ainsi de suite a chaque fois que je la lance
On va y arriver, j'en suis sur
et encore un grand merci pour ton aide!!

Cordialement
 
Re : suppression lignes en fonction des dates

Re

Damned! j'avais, oublié le piège du TextToColumns

Voici une proc à garder sous le coude (pour sortir du piège)
Code:
Sub ClearTextToColumns()
    On Error Resume Next
    If IsEmpty(Range("A1")) Then Range("A1") = "XYZZY"
    Range("A1").TextToColumns Destination:=Range("A1"), _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=False, _
        Space:=False, _
        Other:=False, _
        OtherChar:=""
    If Range("A1") = "XYZZY" Then Range("A1") = ""
    If Err.Number <> 0 Then MsgBox Err.Description
End Sub
 
Dernière édition:
Re : suppression lignes en fonction des dates

Re


Bon normalement, cela doit fonctionner cette fois-ci
(J'évite le piège en amont par sureté 😉 )
Code:
Sub eclater_cellules_TESTOK_BIS()
Dim crit&, fin&
Application.ScreenUpdating = False
ClearTextToColumns
fin = [A65536].End(3).Row
    With ActiveSheet
        .Range([A1], [A65536].End(xlUp)).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, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1)), DecimalSeparator:=".", TrailingMinusNumbers:=True
        crit = Application.Max(.Range("B1:B" & fin))
        .Range("B1:B" & fin).AutoFilter 1, "<" & crit, xlAnd
        .Cells.SpecialCells(xlCellTypeVisible).EntireRow.Delete
        .Columns(1).Delete
    End With
End Sub
Code:
Sub ClearTextToColumns()
    On Error Resume Next
    If IsEmpty(Range("A1")) Then Range("A1") = "XYZZY"
    Range("A1").TextToColumns Destination:=Range("A1"), _
        DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, _
        Tab:=False, _
        Semicolon:=False, _
        Comma:=False, _
        Space:=False, _
        Other:=False, _
        OtherChar:=""
    If Range("A1") = "XYZZY" Then Range("A1") = ""
    If Err.Number <> 0 Then MsgBox Err.Description
End Sub
 
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…