• 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.

Datum textbox naar 2 Labels (weeknummer en dag van de week)

Status
Niet open voor verdere reacties.

arnose09

Gebruiker
Lid geworden
28 aug 2006
Berichten
141
Beste Helpmij'ers,

Is het mogelijk de formulier labels ETA(WEEK) en DAG te vullen aan de hand van de datum in Texbox, ETA(Datum)?

Vb. Als ik de textbox vul met bijv. 10-18-2011 worden de labels automatisch gevuld:
Week: 42
Dag: dinsdag

Ik heb een code gevonden maar weet niet hoe ik deze zo kan aanpassen dat dit werkt zoals ik wil:
Code:
Public Function DagVandeWeek(Weeknummer As Integer, Jaar As Integer, dag As Integer) As Date
  Dim basis As Date
  Dim x As Integer
  Dim i As Integer
  basis = DateSerial(Jaar, 1, 1)
  x = Weekday(basis, vbMonday)
  i = dag - x
  basis = DateAdd("d", i, basis)
  DagVandeWeek = DateAdd("d", (Weeknummer - 1) * 7, basis)
End Function

En is het mogelijk als een van de ingevoerde acties in een voorgaande week ligt dat hiervan een melding wordt gemaakt in een Msgbox bij openen van het bestand dat de actie is verlopen?

Bestand is bijgesloten.

Bekijk bijlage test.xlsm

Alvast bedankt.
 
Is dit een lastige vraag? Ben ik misschien niet duidelijk genoeg geweest?

No pressure maar ik wil hier graag mee verder ter afronding van een projectje. Anders zal ik de vraag op een ander forum gaan stellen.

Alvast bedankt voor het lezen van dit topic.
 
Deze in een standaardmodule
Code:
Function IsoWeek(d1)
    IsoWeek = Format(d1, "ww", 2) - IIf(Format("04-01-" & Year(d1), "ww", 2) = 2, 1, 0)
    If IsoWeek = 0 Then IsoWeek = 53
End Function

En deze in de module van je formulier
Code:
Private Sub ETA_DATUM_AfterUpdate()
ETA_WK = IsoWeek(ETA_DATUM)
ETA_DAG = Choose(Weekday(ETA_DATUM), "Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag")
End Sub
 
Hoi Rudi,

Dank voor je snelle antwoord!

Helaas werkte de code niet goed. Het telde een week erbij op leek het wel (week 42 werd 43). Door even te speuren op Isoweek op het net kwam ik de volgende function code tegen waardoor ik zelf met dank aan jou de oplossing heb gevonden:

Public Function IsoWeekNumber(d1 As Date) As Integer
Dim d2 As Long
d2 = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
IsoWeekNumber = Int((d1 - d2 + Weekday(d2) + 5) / 7)
End Function

Nu werkt het perfect. Nogmaals dank. Ik ben hier enorm mee geholpen! :d
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan