Hoe vind je de laatste dag van een maand.

Status
Niet open voor verdere reacties.

DutchOirs

Gebruiker
Lid geworden
30 sep 2009
Berichten
720
Goedenavond,

Zit met een vraagje

Hoe kan je de laatste dag van een maand vinden met VBA. dit in gewoon datum notatie dd-mm-yyyy

Had er een gevonden nl.

Code:
  LastDate = DateSerial(Year(Date), Mnd + 1, 0)'

Maar deze loopt dus fout als de maand in volgend jaar ligt.
Kijk de Mnd is te bewerken, maar Year(Date) niet. Die houd dit jaar vast.

Kan er ook geen

Code:
  LastDate = Jaar & Mnd van maken

Iemand een idee?

Vr. Gr.

Dutch
 
Function ldvdm(ByVal jaar As Integer, maand As Integer) As Date
ldvdm = DateAdd("d", -1, DateAdd("m", 1, DateSerial(jaar, maand, 1)))
End Function
 
Of:
Code:
LaatsteDag = WorksheetFunction.EoMonth(Date, 0)
Daarbij staat de 0 voor de maand in Date.
Volgende maand is dan 1, enz.
 
Laatst bewerkt:
Code:
Sub M_snb()
   For j = 1 To 20
     MsgBox Format(DateSerial(Year(Date), j, 0), "dd-mm-yyyy")
   Next
End Sub
of

Code:
Sub M_snb()
   For j = 1 To 20
     [z1] = j
     MsgBox [Text(eomonth(today(),Z1),"dd-mm-yyyy")]

     MsgBox Evaluate("Text(eomonth(today()," & j & "),""dd-mm-yyyy"")")

     MsgBox Format(Evaluate("eomonth(today()," & j & ")"), "dd-mm-yyyy")
   Next
End Sub
 
Laatst bewerkt:
Goedemorgen,

Thanks allemaal mooie oplossingen.

Zal ze vandaag allemaal even testen

Thanks

die van Edmoor geeft Fout 438 Eigenschap of methode wordt niet ondersteund.
 
Laatst bewerkt:
Deze werkt in ieder geval.
Code:
Sub NextMonth()
Dim i As Integer, dt As Date, str As String
    For i = 1 To 12
        dt = DateAdd("m", i, DateSerial(Year(Date), Month(Date), 0))
        If str <> "" Then str = str & vbLf
        str = str & dt
    Next i
    MsgBox str
End Sub
 
even bezig geweest maar moet nu stoppen.

van edmoor een foutmelding en de 1e van snb geeft dus in een lus laatste dag van het jaar.

Bedoeling is dat ik deze datum kan gebruiken in een kalender.
als je door de maanden heen bladert en op volgend jaar komt dan zou het jaar ook moeten veranderen.
Als uitkomst zou ik dan moeten hebben: LastDate = ... de laatste datum van die maand (en juiste jaar)

Maar vanavond verder..

Thanks
 
Die van mij werkt hier prima.
Die van anderen zullen ook goed werken.
Laat even weten met welke versie van Office je werkt.
 
@Edm

Eomonth zat nog niet in E2003.
 
Vandaar m'n vraag over zijn Office versie :)
 
Sjonge, Dutch test eerst eens volledig en op je gemak. Dat voorbarige oordelen begint wel een beetje irritant te worden. Een lus van 20 kan nooit 1 waarde geven, maar 20 verschillende.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan