• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

schrikkeljaar overbruggen

Status
Niet open voor verdere reacties.

Wallo

Gebruiker
Lid geworden
17 mrt 2009
Berichten
63
Hallo iedereen, een vraagje en één van de oplossingen denk ik.
Er zal wel een formule voor zijn maar ik ken ze niet, voor het overbruggen van de 29ste februari in een kalender. De bedoeling is in één cel (in mijn vb "F1")de datum wijzigen van 1/1/2010 naar bv 1/1/2012(wat een schrikkeljaar is) en in cel "G3) 29 februari invuld, indien geen schrikkeljaar niets, op 1 maart in cel "G5" vult hij dan steeds 1 maart in. Het werkt in mijn vb met verticaal zoeken, ik had graag geweten of hier een formule voor bestaat.
Alvast bedankt.
 

Bijlagen

  • schrikkeljaar overbruggen.xls
    21 KB · Weergaven: 113
Het is in ieder geval zo:
Als een jaartal deelbaar is door 4 EN niet deelbaar door 100 of deelbaar door 400, dan is het een schrikkeljaar.
 
Een schrikkeljaar deel je door 4 en de rest is nul, dus
Code:
=ALS(REST(jaar;4)=0;DATUM(jaar;2;29);"")
Ik heb een jaartal in een cel gezet en een naam gegeven.
 
Hou het simpel:
zet in A1: 01-01-2012
pak de vulgreep en trek door naar beneden (bijv. tot regel 366).
Klaar.

Of in VBA:
Code:
Sub tst()
  Cells(1, 1) = DateValue("01-1-2012")
  Blad1.Cells(1, 1).AutoFill Blad1.Cells(1, 1).Resize(366)
End Sub
 
Laatst bewerkt:
Niet helemaal juist. Dit klopt voor de jaren , die geen eeuwjaar zijn.
2000 is deelbaar door 400, dus schrikkeljaar. 2100 is deelbaar door 4, maar niet door 400, dus geen schrikkeljaar.
Dus aanpassen in: =(ALS(REST(jaar;4)=0 EN ALS(REST(jaar;100)<>0) OF ALS(REST(jaar;400)=0) dan schrikkeljaar

@SNB: De vraag was om een formule
 
Laatst bewerkt:
En waarvoor diende die formule ?

de formule is
=ALS(MAAND(F1+59)=2;F1+59;"")
 
Laatst bewerkt:
Waar die voor dient weet ik niet, maar hij wil een formule, dus bij deze. Dat werkt onder VB.
 
Laatst bewerkt:
Voor de duidelijkheid, op de vraag of een jaar een schrikkeljaar is :

Function IsLeapYear(Year As Integer) As Boolean
If ((Year Mod 4 = 0) And (Year Mod 100 <> 0) Or (Year Mod 400 = 0)) Then
IsLeapYear = True
Else
IsLeapYear = False
End If
End Function

Een functie dus, nog makkelijker.
 
Laatst bewerkt:
Niet helemaal juist. Dit klopt voor de jaren , die geen eeuwjaar zijn.
Voor een deel van de jaren na 2000 gaat de volgende formule op:
Code:
=ALS(EN(REST(A1;4)=0;LENGTE(A1/100)<>2);"schrikkel";"")
Bij de volgende eeuwjaren gaat het mis:
1900
2000
2400
2800
3200
3600
4000
4400
4800
5200
5600
6000
6400
6800
Klik hier voor het volledige bestand.
 
Je moet voorgaande functie gebruiken, altijd goed.
 
@Krolik
De vraag was om een formule, niet om een UDF ;)
 
Allen hartelijk bedankt voor de reacties, waarvoor moet het dienen, ik heb een bestand gemaakt waar de verloven en overuren worden in bijgehouden, nu bij die overuren moet de telling jaar na jaar doorlopen dit om de reden dat overuren na 4 maanden vervallen en worden uitbetaald, deze berekening gebeurd automatisch via de datum, zoiets als een never ending story. Om deze datum jaarlijks aan te passen moet ik nu maar in één cel de datum te wijzigen en 29 februari en 1 maart worden dan juist weergegeven ook in een schrikkeljaar.:thumb::thumb::thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan