Macro + Dates formatting issue

G

Guest

Hi All,

Formatting issue with a macro.

Report with dates formatted as dd.mm.yyyy is changed by

Columns("G:G").Select
Selection.Replace What:=".", Replacement:="/", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.NumberFormat = "dd/mm/yyyy;@"
Columns("A:N").Select
Selection.Sort Key1:=Range("G2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B1").Select

BUT, on some cells, the format of the date = mm/dd/yyyy.

Subsequently my sort is incorrect. Seriously going bald over this one.

Any help much appreciated.

Cheers

John
 
D

Dave Peterson

If you have 01.02.2003 in a cell, then do your mass change, you'll be left with
01/02/2003. Excel will see it as a date -- and if your windows short date
format is in mdy order, that cell will become Jan 2, 2003.

If you have 31.01.2003, you'll end up with 31/01/2003 and excel won't even know
that it's a date -- since it doesn't match the windows short date (mdy order).

Instead of using edit|replace, try recording a macro when you select your range.
data|text to columns
fixed width, no lines and no new lines
and choose dmy (to match the data--not to match what you want)

Then apply the formatting you like (dd/mm/yyyy)

And sort your data.

And stop the recorder.
 
G

Guest

Spot on Dave,
Many thanks

Dave Peterson said:
If you have 01.02.2003 in a cell, then do your mass change, you'll be left with
01/02/2003. Excel will see it as a date -- and if your windows short date
format is in mdy order, that cell will become Jan 2, 2003.

If you have 31.01.2003, you'll end up with 31/01/2003 and excel won't even know
that it's a date -- since it doesn't match the windows short date (mdy order).

Instead of using edit|replace, try recording a macro when you select your range.
data|text to columns
fixed width, no lines and no new lines
and choose dmy (to match the data--not to match what you want)

Then apply the formatting you like (dd/mm/yyyy)

And sort your data.

And stop the recorder.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top