Discussion:
Rekenen met datums en tijden
(te oud om op te antwoorden)
ROn...
2005-11-11 20:52:45 UTC
Permalink
Hoi,

Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.

Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.

Hoe kan ik dit in VBA doen?

Alvast bedankt voor jullie reakties en tips!

Gr. ROn...
Luc Heyndrickx
2005-11-11 21:20:41 UTC
Permalink
Je begint met één van de grootste problemen in VBA.
Je moet constant op je hoede zijn voor verkeerde datumweergave, i.v.m.
andere datumweergave van Europa tegenover Amerika.
http://users.skynet.be/onderland/Excel.htm#Lessen
5- Datums in VBA

Luc
Post by ROn...
Hoi,
Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.
Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.
Hoe kan ik dit in VBA doen?
Alvast bedankt voor jullie reakties en tips!
Gr. ROn...
Niek Otten
2005-11-11 21:38:59 UTC
Permalink
< één van de grootste problemen in VBA>

Niet helemaal mee eens, Luc.
Het is waar dat weergave een probleem op zich is, maar het rekenen gaat
gewoon goed.
Als de tijden zonder datum zijn en de datums zonder tijden, kun je gewoon
eerst de bij elkaar horende datums en tijden bij elkaar optellen en daarna
die van een andere set er van aftrekken.
Dan komt nog de weergave, waar je inderdaad even goed moet opletten.
--
Kind regards,

Niek Otten
Post by Luc Heyndrickx
Je begint met één van de grootste problemen in VBA.
Je moet constant op je hoede zijn voor verkeerde datumweergave, i.v.m.
andere datumweergave van Europa tegenover Amerika.
http://users.skynet.be/onderland/Excel.htm#Lessen
5- Datums in VBA
Luc
Post by ROn...
Hoi,
Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.
Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.
Hoe kan ik dit in VBA doen?
Alvast bedankt voor jullie reakties en tips!
Gr. ROn...
Luc Heyndrickx
2005-11-11 22:02:33 UTC
Permalink
OK... er zijn nog wel moeilijkheden in Excel. Zeker als je met lokale talen
rekening moet houden.
Toch heb je kans dat je berekeningen niet kloppen. Maar alles hangt er
natuurlijk van af hoe je datums inleest... wat je er allemaal mee doet... en
uiteraard, als je alles goed nagekeken hebt, en voldoende gecontroleerd, dan
zal het niet fout gaan.

Wie natuurlijk altijd met Engelstalige Office toepassingen werkt, en daarbij
nog kiest voor de Amerikaanse datumnotatie, die zal de moeilijkheden zelfs
nog niet gemerkt hebben.

Luc
Post by Niek Otten
< één van de grootste problemen in VBA>
Niet helemaal mee eens, Luc.
Het is waar dat weergave een probleem op zich is, maar het rekenen gaat
gewoon goed.
Als de tijden zonder datum zijn en de datums zonder tijden, kun je gewoon
eerst de bij elkaar horende datums en tijden bij elkaar optellen en daarna
die van een andere set er van aftrekken.
Dan komt nog de weergave, waar je inderdaad even goed moet opletten.
--
Kind regards,
Niek Otten
Post by Luc Heyndrickx
Je begint met één van de grootste problemen in VBA.
Je moet constant op je hoede zijn voor verkeerde datumweergave, i.v.m.
andere datumweergave van Europa tegenover Amerika.
http://users.skynet.be/onderland/Excel.htm#Lessen
5- Datums in VBA
Luc
Post by ROn...
Hoi,
Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.
Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.
Hoe kan ik dit in VBA doen?
Alvast bedankt voor jullie reakties en tips!
Gr. ROn...
Niek Otten
2005-11-11 22:11:34 UTC
Permalink
Hi Luc,

Inlezen kan een probleem zijn, bijvoorbeeld vanaf websites of vanuit csv
files.
Maar als eea in een werkblad staat, hoe het er ook gekomen is, gaat alles
consequent goed.
Bij handmatig invoeren is er dus sowieso niets aan de hand.
--
Kind regards,

Niek Otten
Post by Luc Heyndrickx
OK... er zijn nog wel moeilijkheden in Excel. Zeker als je met lokale
talen rekening moet houden.
Toch heb je kans dat je berekeningen niet kloppen. Maar alles hangt er
natuurlijk van af hoe je datums inleest... wat je er allemaal mee doet...
en uiteraard, als je alles goed nagekeken hebt, en voldoende
gecontroleerd, dan zal het niet fout gaan.
Wie natuurlijk altijd met Engelstalige Office toepassingen werkt, en
daarbij nog kiest voor de Amerikaanse datumnotatie, die zal de
moeilijkheden zelfs nog niet gemerkt hebben.
Luc
Post by Niek Otten
< één van de grootste problemen in VBA>
Niet helemaal mee eens, Luc.
Het is waar dat weergave een probleem op zich is, maar het rekenen gaat
gewoon goed.
Als de tijden zonder datum zijn en de datums zonder tijden, kun je gewoon
eerst de bij elkaar horende datums en tijden bij elkaar optellen en
daarna die van een andere set er van aftrekken.
Dan komt nog de weergave, waar je inderdaad even goed moet opletten.
--
Kind regards,
Niek Otten
Post by Luc Heyndrickx
Je begint met één van de grootste problemen in VBA.
Je moet constant op je hoede zijn voor verkeerde datumweergave, i.v.m.
andere datumweergave van Europa tegenover Amerika.
http://users.skynet.be/onderland/Excel.htm#Lessen
5- Datums in VBA
Luc
Post by ROn...
Hoi,
Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.
Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.
Hoe kan ik dit in VBA doen?
Alvast bedankt voor jullie reakties en tips!
Gr. ROn...
Luc Heyndrickx
2005-11-11 22:59:11 UTC
Permalink
Hoi Niek,

Ik heb hier even een macro, die een fout geeft.
Stel dat je in cel A1 de datum 10/11/2005 zet.
Vervolgens speel je deze macro af:

Sub test()
Dim dt As Date
dt = Range("A1").Value
Range("B1").Value = InputBox("Test", , dt)
End Sub

Bij mij komt de waarde 11/10/2005 in cel B1

Ik weet het... ik heb het opzettelijk gedaan, om een fout te krijgen. Maar
je weet tenslotte ook niet in hoeverre de macro van Ron gaat.

Luc
Post by Niek Otten
Hi Luc,
Inlezen kan een probleem zijn, bijvoorbeeld vanaf websites of vanuit csv
files.
Maar als eea in een werkblad staat, hoe het er ook gekomen is, gaat alles
consequent goed.
Bij handmatig invoeren is er dus sowieso niets aan de hand.
--
Kind regards,
Niek Otten
Post by Luc Heyndrickx
OK... er zijn nog wel moeilijkheden in Excel. Zeker als je met lokale
talen rekening moet houden.
Toch heb je kans dat je berekeningen niet kloppen. Maar alles hangt er
natuurlijk van af hoe je datums inleest... wat je er allemaal mee doet...
en uiteraard, als je alles goed nagekeken hebt, en voldoende
gecontroleerd, dan zal het niet fout gaan.
Wie natuurlijk altijd met Engelstalige Office toepassingen werkt, en
daarbij nog kiest voor de Amerikaanse datumnotatie, die zal de
moeilijkheden zelfs nog niet gemerkt hebben.
Luc
Post by Niek Otten
< één van de grootste problemen in VBA>
Niet helemaal mee eens, Luc.
Het is waar dat weergave een probleem op zich is, maar het rekenen gaat
gewoon goed.
Als de tijden zonder datum zijn en de datums zonder tijden, kun je
gewoon eerst de bij elkaar horende datums en tijden bij elkaar optellen
en daarna die van een andere set er van aftrekken.
Dan komt nog de weergave, waar je inderdaad even goed moet opletten.
--
Kind regards,
Niek Otten
Post by Luc Heyndrickx
Je begint met één van de grootste problemen in VBA.
Je moet constant op je hoede zijn voor verkeerde datumweergave, i.v.m.
andere datumweergave van Europa tegenover Amerika.
http://users.skynet.be/onderland/Excel.htm#Lessen
5- Datums in VBA
Luc
Post by ROn...
Hoi,
Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.
Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.
Hoe kan ik dit in VBA doen?
Alvast bedankt voor jullie reakties en tips!
Gr. ROn...
Niek Otten
2005-11-12 14:22:48 UTC
Permalink
Hi Luc,

Reken ik ook onder invoer. Maar het is een mooi voorbeeld van hoe verwarrend
het kan zijn; als je in A1 nl 13-10-2005 zet gaat het wel goed.
Blijft oppassen met die datumsystemen!
--
Kind regards,

Niek Otten
Post by Luc Heyndrickx
Hoi Niek,
Ik heb hier even een macro, die een fout geeft.
Stel dat je in cel A1 de datum 10/11/2005 zet.
Sub test()
Dim dt As Date
dt = Range("A1").Value
Range("B1").Value = InputBox("Test", , dt)
End Sub
Bij mij komt de waarde 11/10/2005 in cel B1
Ik weet het... ik heb het opzettelijk gedaan, om een fout te krijgen.
Maar je weet tenslotte ook niet in hoeverre de macro van Ron gaat.
Luc
Post by Niek Otten
Hi Luc,
Inlezen kan een probleem zijn, bijvoorbeeld vanaf websites of vanuit csv
files.
Maar als eea in een werkblad staat, hoe het er ook gekomen is, gaat alles
consequent goed.
Bij handmatig invoeren is er dus sowieso niets aan de hand.
--
Kind regards,
Niek Otten
Post by Luc Heyndrickx
OK... er zijn nog wel moeilijkheden in Excel. Zeker als je met lokale
talen rekening moet houden.
Toch heb je kans dat je berekeningen niet kloppen. Maar alles hangt er
natuurlijk van af hoe je datums inleest... wat je er allemaal mee
doet... en uiteraard, als je alles goed nagekeken hebt, en voldoende
gecontroleerd, dan zal het niet fout gaan.
Wie natuurlijk altijd met Engelstalige Office toepassingen werkt, en
daarbij nog kiest voor de Amerikaanse datumnotatie, die zal de
moeilijkheden zelfs nog niet gemerkt hebben.
Luc
Post by Niek Otten
< één van de grootste problemen in VBA>
Niet helemaal mee eens, Luc.
Het is waar dat weergave een probleem op zich is, maar het rekenen gaat
gewoon goed.
Als de tijden zonder datum zijn en de datums zonder tijden, kun je
gewoon eerst de bij elkaar horende datums en tijden bij elkaar optellen
en daarna die van een andere set er van aftrekken.
Dan komt nog de weergave, waar je inderdaad even goed moet opletten.
--
Kind regards,
Niek Otten
Post by Luc Heyndrickx
Je begint met één van de grootste problemen in VBA.
Je moet constant op je hoede zijn voor verkeerde datumweergave, i.v.m.
andere datumweergave van Europa tegenover Amerika.
http://users.skynet.be/onderland/Excel.htm#Lessen
5- Datums in VBA
Luc
Post by ROn...
Hoi,
Ik wil in VBA ('97) rekenen met datums en tijden. Ik heb in Excel rijen
waarin in kolom 1 een datum staat en in kolom 2 een tijd.
Ik wil nu berekenen wat het verschil in uren is tussen de
datum/tijden
in de ene rij en de daarop volgende rij en afhankelijk van het
resultaat bepaalde acties ondernemen.
Hoe kan ik dit in VBA doen?
Alvast bedankt voor jullie reakties en tips!
Gr. ROn...
ROn...
2005-11-12 20:04:04 UTC
Permalink
Hoi Luc e.a.

De datums waarom het gaat zijn in NL formaat. Hoe combineer ik nu de
datums en tijden inj de cellen om het verschil in uren te berekenen?

Gr. ROn...
Luc Heyndrickx
2005-11-12 21:04:25 UTC
Permalink
Hoi Ron,

Vooral ook het artikel op m'n website lezen. Het is echt te lastig om u via
de nieuwsgroep voor alle gevaren te behoeden.
Maar datums en tijden zijn natuurlijk makkelijk te combineren.

In cel A1 staat een datum
In Cel B1 staat een tijd.

Die twee kan je gewoon optellen:

Tijdstip = A1 + B1

In de formulebalk zal je zeker de volledige datum met tijd zien.

Luc
Post by ROn...
Hoi Luc e.a.
De datums waarom het gaat zijn in NL formaat. Hoe combineer ik nu de
datums en tijden inj de cellen om het verschil in uren te berekenen?
Gr. ROn...
ROn...
2005-11-15 20:00:03 UTC
Permalink
Post by ROn...
Ik wil nu berekenen wat het verschil in uren is tussen de datum/tijden
in de ene rij en de daarop volgende rij
Gevonden...

| 1 | 2
-----------------------------------
1 | Dat1 | Tijd1
-----------------------------------
2 | Dat2 | Tijd 2


Dim dtm1 as date
dim dtm2 as date
dim lUren as long

dtm1 = cdate(dat1 + tijd1)
dtm2 = cdate(dat2 + tijd2)

lUren = datediff("h", dtm1, dtm2)

Gr. ROn...

Loading...