suppression lignes en fonction des dates

nice

XLDnaute Nouveau
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

  • Classeur1.xls
    19.5 KB · Affichages: 78
  • Classeur1.xls
    19.5 KB · Affichages: 84
  • Classeur1.xls
    19.5 KB · Affichages: 100

nice

XLDnaute Nouveau
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??
 

Staple1600

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
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
 

Staple1600

XLDnaute Barbatruc
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.
aam.gif
Ici résultat avec la macro: eclater_cellules
 
Dernière édition:

nice

XLDnaute Nouveau
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
 

Staple1600

XLDnaute Barbatruc
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:

Staple1600

XLDnaute Barbatruc
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:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 501
dernier inscrit
talebafia