Excel VBA - Stop converting date to number - excel

I've an Excel file (.xlsx) which contains cells with Dates like this: "14/12/2015".
The Dates are calculated with formulaes like this: "=D3+1".
Now I've got a little VBA script which does some things and saves the data to a .csv file... The issue is that all my dates are converted to normal numbers something like this: 41992
How can I stop excel from doing this? Anyone any ideas?
Cheers!
Patrick

Dates in Excel are really just numbers. Use the FORMAT function in your code to convert back to string.
Format(nValue, "yyyy-mm-dd")

No need to do it in VBA, You can do it directly in the cell where you have the formula D3+1
Just use =text(D3+1,"dd/mm/yyyy")

Related

How to change general date format in excel?

Quick but not a simple question for me: How to change the date format in excel so it not only affects how I see the date but also how Excel understands this format?
I mean, I want to have date like 04/13/2018 in cells and I changed to this format (it works fine) but excel still converts it to "13.04.2018" in the text field above the sheet. And It cannot be like that because I have macros built in those cells that keeps throwing errors that date format is still wrong and it needs "MM/DD/YYYY"...
Maybe I can somewhat change my region/locale formats in excel?
Alex
The result that came out shows that Excel understands that format. If you want to make sure that Excel understands your style of format, then you probably would want to change the DATE and DATE_TEXT function.

Using a CDate in a Countifs function

I was wondering if there was a way to use the CDate function in a countif statement? I'm trying to find dates less than 2 weeks old, am and currently using this statement:
=COUNTIF(CDATE(Table1[Date Closed]),">=" &TODAY() - 14)
I need to turn the Date Closed of the table into actual dates without changing the table (right now they're in the format 13-Mar-2018 but as text format).
Is there a way to do this within the Countif function or am I going to have to do a a VBA code to first change the dates?
Thank you!
=SUMPRODUCT(--(DATEVALUE(Table1[TextDates])>=(TODAY()-14)))
Although I do wonder why you can't have dates as real Excel dates, rather than text strings
Set up your table and insert a column (you could hide the original or place the new column at the end or next to the original) and convert the text date to a date via the DATEVALUE() function.
See reference:
https://support.office.com/en-us/article/datevalue-function-df8b07d4-7761-4a93-bc33-b7471bbff252
You may want to apply format to the new cell/column to look like a date.
Set up your table for "Using structured references with Excel tables."
See reference:
https://support.office.com/en-us/article/using-structured-references-with-excel-tables-f5ed2452-2337-4f71-bed3-c8ae6d2b276e
Count dates based on your condition.
See reference:
https://support.office.com/en-us/article/count-numbers-or-dates-based-on-a-condition-976d0074-245d-49e6-bf5f-1207983f82ed

mddyyy convert to mmddyyyy in excel

i have a file which contains dates like 5062014(not properly formatted) along with dates like 05062014(properly formatted) in excel.How to change those dates which are not properly formatted.Can we apply any formula in excel for that?
In my opinion you can convert the dates with this: https://support.office.com/en-us/article/Format-a-date-the-way-you-want-8e10019e-d5d8-47a1-ba95-db95123d273e

Change date format in excel

I am getting data in a CSV file with data column having format e.g. 1987-09-17T00:00:00.000-06:00.
When I apply date formatting on it to say DD/MM/YYYY, it doesn't change to 17/09/1987.
Is there a way to achieve this?
Thanks!
Excel will assume it is text because it is not in a format it recognises as being a date. You could use LEFT() and MID() functions to split out the parts you want as arguments in the DATE() function. Eg
=DATE(left(A1,4),(MID(A1,6,2),MID(A1,9,2))

How to change a column with date and time as string format in Excel into a column with the same date and time in date/time format?

I have a column in string format in Excel (2010) which shows "yyyy-mm-dd hh:mm:ss" and for an analysis I need it to be exactly the same, except that it is in date+time format instead of string format.
After some googling I got that macros will probably help me, but I never worked with visual basics in Excel before. On top of that, the questions I found which come close to this every time seem to have a very different solution.
I got so far that I have visual basics up to enter some code (yes yes, you may laugh at my poor skills), but I have no clue what code to enter there.
Thanks.
To get both the date and the time, use =DATEVALUE(A1)+TIMEVALUE(A1).
You don't need VBA. Use DATAVALUE function.
First try formatting the column as dates, you can use your format "yyyy-mm-dd hh:mm:ss" in the Custom Format, Type box.
If this doesn't work then create an extra column using =DATEVALUE(A1) and copy this down the column. Format it as required. You can Copy/Paste Values so that you could then replace the original column.
You can just use
=VALUE(A1)
and if Excel can interpret the string as a date, it will.

Resources