LastDayOfMonth geeft verkeerde waarde en geeft foutcode

Status
Niet open voor verdere reacties.

Killerclown

Gebruiker
Lid geworden
30 dec 2007
Berichten
181
Goeiemorgen iedereen,

Ik gebruik in excel de "DatePicker" om cellen in te vullen met een periode (datum)
Wanneer echter de maand van DtPicker1.value en de maand van DtPicker2.value verschillen wil ik in de cel de periode krijgen van de waarde van DtPicker1 tot het einde van die maand. (en dan in een nieuwe cel het begin van de volgende maand tot de waarde van DtPicker2)

Ik heb tot nu toe volgende code maaaaaaaaaaaaaaar...

Code:
Dim MyMonth
Dim MyYear
Dim LastDayOfMonth As Date

MyMonth = Format(DTPicker1.Value, "m")
MyYear = Format(DTPicker1.Value, "yyyy")

LastDayOfMonth = DateSerial(Year(MyYear), Month(MyMonth) + 1, 0)

If DTPicker1.Month <> DTPicker2.Month Then
Cells(emtpyrow, 3).Value = DTPicker1.Value & " - " & LastDayOfMonth
End If

Ik krijg nu volgende problemen:
- LastDayOfMonth geeft mij de waarde 31/01/1905, wat niet juist is. Ik zie niet wat ik fout doe :-(
- Bij
Code:
 Cells(emtpyrow, 3).Value = DTPicker1.Value & " - " & LastDayOfMonth
krijg ik een foutmelding 1004.
"Door de toepassing of door object gedefinieerde fout"
Ik zie ook niet in wat ik fout doe.

Kan iemand mij even op weg helpen om dit op te lossen want ik zie het even niet.

Alvast dank.
 
tja dit is denk ik iets waar je niks aan kan doen.
probeer het programma met Admin rechten te draaien!
 
Beetje onzinnig antwoord van tim; er zit een stevige fout in je code. Die zou ik er eerst uithalen :)

Code:
Dim MyMonth
Dim MyYear
Dim LastDayOfMonth As Date

MyMonth = Month(DTPicker1.Value)
MyYear = Year(DTPicker1.Value)
LastDayOfMonth = DateSerial(MyYear, MyMonth + 1, 0)

Je haalt een jaar op (met format; zou overigens wel moeten werken, maar waarom niet gelijk Year gebruikt?) en vervolgens haal je met DateSerial een nieuw jaar op door op basis van het gescoorde jaartal (2013) een nieuw jaartal te genereren. Het jaartal van de datum 2013 is inderdaad 1905. Dubbelop dus...
 
Inderdaad een raar antwoord van Tim. Ik verstond er niks van :-)

Oef, ik krijg nu al de juiste waarde voor LastDayOfMonth. Ik zag het echt niet. En 2 keer een jaartal genereren, dan krijg je inderdaad niet wat je wilt.
Nu heb ik nog het probleem dat ik de waarde niet in de cel krijg.

Code:
Cells(emtpyrow, 3).Value = DTPicker1.Value & " - " & LastDayOfMonth

Wat kan hier het probleem zijn?
 
Probleem opgelost.

Ik heb "Dim LastDayOfMonth as Date" verandert naar "Dim LastDayOfMonth as String"

Hoe snel men over iets heen kijkt.

Alvast dank voor de reacties!!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan