Sorteren op datum gaat niet goed

Status
Niet open voor verdere reacties.

Halbertsma

Gebruiker
Lid geworden
25 jun 2009
Berichten
34
Hallo,

In een excelbestand is kolom D (vanaf rij 4) gevuld met data (nederlandse weergave, dd-mm-yyyy).
Kolom B is gevuld met text.

Nu wil ik ( "A1:Laatste cel gebruikt") sorteren op datum en daarna kolom B sorteren op alfabet.

Hiervoor heb ik de volgdende code opgesteld
Code:
 Columns("D:D").NumberFormat = "m/d/yyyy"

Range("A4", ActiveCell.SpecialCells(xlLastCell)).Select
   Selection.Sort Key1:=Range("D1"), Order1:=xlAscending, Key2:=Range("B1"), _
        Order2:=xlAscending, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers, _
        DataOption2:=xlSortNormal

Dit gaat echter niet goed. Het volgende gebeurt namelijk:
4-4-2008
19-9-2009
6-9-2010
18-8-2009
18-8-2009
18-8-2009
18-8-2009
18-8-2009

2010 moet natuurlijk onderaan.
Waar zit de fout?
 
Halbertsma,

Hiervoor heb ik de volgdende code opgesteld

Code:
Columns("D:D").NumberFormat = "m/d/yyyy"

Range("A4", ActiveCell.SpecialCells(xlLastCell)).Select
   Selection.Sort Key1:=Range("D1"), Order1:=xlAscending, Key2:=Range("B1"), _
        Order2:=xlAscending, Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers, _
        DataOption2:=xlSortNormal

Heb je dit met de macro recorder gedaan?
Doe anders even een voorbeeldje, is soms wat makkelijker te begrijpen.
 
Laatst bewerkt:
Halbertsma,

Ik ga zo naar de camping voor 14 dagen, dit terzijde.

Je kunt aangepast sorteren gebruiken, kun je 2 of meer opties geven.
Dit kun je ook met de macro recorder doen en de code onder een knop zetten.
De code kun je altijd vereenvoudigen, de recorder schrijft meer dan dat nodig is.

Ik denk dat de datum dan niet echt op volgorde zal staan omdat je op 2 kolommen sorteerd.
 
Kontroleer de gegevens in de te sorteren kolom: daarin staan zowel data als teksten (die eruit zien als data, maar het niet zijn).
Ook een datum in 3009 komt erin voor.
Eenvoudig te kontroleren met:

Code:
Sub tst()
  For Each cl In Columns(4).SpecialCells(xlCellTypeConstants)
    cl.Interior.ColorIndex = VarType(cl)
  Next
End Sub
 
Kontroleer de gegevens in de te sorteren kolom: daarin staan zowel data als teksten (die eruit zien als data, maar het niet zijn).
Ook een datum in 3009 komt erin voor.
Eenvoudig te kontroleren met:

Code:
Sub tst()
  For Each cl In Columns(4).SpecialCells(xlCellTypeConstants)
    cl.Interior.ColorIndex = VarType(cl)
  Next
End Sub

Bedankt, ik ben er uit gekomen. Inderdaad gevuld met en datum dat niet herkend werd als datum.
(de datum van 3009 stond er trouwens expres in)

Offtopic:
@snb, heeft u trouwens gezien dat ik mijn vraag in het ander topic heb aangepast en een goede poging heb gedaan om de vraag concreter en duidelijker te stellen?
http://www.helpmij.nl/forum/showpost.php?p=2767241&postcount=31 en http://www.helpmij.nl/forum/showpost.php?p=2767241&postcount=32
Hopelijk kunt u me hier ook verder mee helpen!
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan