Excel Vba Datum

Status
Niet open voor verdere reacties.

woltersgert

Gebruiker
Lid geworden
15 mei 2001
Berichten
47
Geacht Forum,

in het bijgeleverde Excel document staat in kolom H de duur in dagen, uren, minuten en seconden.
in de kolommen B,C,D en E is gewerkt met de functies: dag, uur, minuut en seconde en het gewenste resultaat staat in kolom F.

In kolom I staat het resultaat als ik Vba het resultaat laat uitrekenen. Totaal anders dan gewenst.
Vba Excel gaat naar mijn idee raar om met de functie Day.

Ik heb Vba code nodig om het gewenste resultaat te krijgen.

Hoe moet het anders?

Met vriendelijke groet,

Gert Wolters
 

Bijlagen

Maak van 1-1-1900 eens 1-1-2000, dan gaat het wel goed.
Is er een reden om 1900 te kiezen?
 
Laatst bewerkt:
Excel Vba Datum vooral de functie Day in Vba

Geacht forum,

de data komt uit een csv bestand, het is juist deze data waar mee gerekend moet worden.

Het lijkt erop dat de functie Day in Vba een fout maakt in de volgende dagen:

van 1-1-1900 tot en met 29-02-1900.

Vanaf 01-03-1900 gaat het wel goed.

Zie nieuw bijgeleverd Excel document, je ziet het verschil in rij 63 en 64.

Met vriendelijke groet,

Gert Wolters
 

Bijlagen

Zoals je in het werkblad ziet staan de datums vóór 1900 links uitgelijnd. Dat is dus tekst. Met tekst kun je niet rekenen.
Day, month, year, Hour, etc hebben getallen nodig als argument.

In B2 kun je dus zetten:

=left(A2;2)

of

=DAY(DATE(RIGHT(A2;4);MID(A2;4;2);LEFT(A2;2)))

Zet de getalopmaak op 'general'.

In C2 kun je terecht met:

=HOUR(TIMEVALUE(TRIM(MID(A3;11;10))))
 
Laatst bewerkt:
Excel Vba Day

Geacht forum,

zoals ik in de voorgaande vraag aangaf en ik benadruk het nog een keer:

het gaat om dit:

de data komt uit een csv bestand, het is juist deze data waar mee gerekend moet worden.

Het lijkt erop dat de functie Day in Vba een fout maakt in de volgende dagen:

van 1-1-1900 tot en met 29-02-1900. Het gaat dus om deze dagen.

Vanaf 01-03-1900 gaat het wel goed.

Met vriendelijke groet,

Gert Wolters
 
Dat klopt. Er zit een bug in Excel met schrikkeljaar berekeningen in 1900 waardoor dat probleem ontstaat.
Berekeningen lopen dan een dag achter. 1-1-1900 geeft met de Day functie dus 31, de dag ervoor.

http://support.microsoft.com/kb/214326

Dat kun je dus omzeilen door de manier van snb te gebruiken.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan