2.6k Aufrufe
Gefragt in Tabellenkalkulation von
ich habe ein excel userform,darin gibt es eine textbox1 in der ich ein datum eingebe, nach eingabe des datum, soll in textbox11 die kalenderwoche angezeigt werden.

4 Antworten

0 Punkte
Beantwortet von
Hi,

Da ich annehme, dass Du die "deutsche" KW suchst (bzw. jene nach DIN) benötigst Du eine Funktion, die Dir die KW berechnet. (Diese habe ich einmal von www.office-loesung.de entnommen.)
Dann musst Du Dir noch ein Ereignis der TB1 aussuchen, welches die KW in die TB11 schreibt. (Im BeispielCode das Exit-Ereignis.)

Füge folgenden Code in das UserForm-Modul (TextBox1 und TextBox11müssen auf der Form existieren) einer TEST-Mappe ein:
Function KalenderWoche_Din(Datum As Date) As Integer
''von Christoph Kremer, Aachen
'Berechnt die KW nach DIN 1355
Dim t&
t = DateSerial(Year(Datum + (8 - Weekday(Datum)) Mod 7 - 3), 1, 1)
KalenderWoche_Din = (Datum - t - 3 + (Weekday(t) + 1) Mod 7) \ 7 + 1
End Function



Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(Me.TextBox1.Value) Then
Me.TextBox11.Value = KalenderWoche_Din(Me.TextBox1.Value)
Else
Me.TextBox11.Value = ""
End If
End Sub


Wenn Du nun in TB1 ein gültiges Datum einträgst, dann wird beim Verlassen der TB1 die zugehörige KW in TB11 eingetragen.

Bye
malSchauen
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo,

die Aussage mit der Funktion ist nicht korrekt. Ab Version 2010 berechnet das Excel auch korrekt. Schalter 21.

Gruß Hajo
0 Punkte
Beantwortet von
Hi,

@Hajo (Hajo_Zi)
Uih... Das wusste ich nicht. (Obwohl ich selbst mittlerweile mit Xl2010 arbeite.) Daher Danke für die Info.
Da aber der TO keine Angabe zur verwendeten XL-Version gemacht hat, und obige Function auch unter XL2010 das richtige Ergebnis liefern wird, kann man das Beispiel wohl mal so stehen lassen.

bye
malSchauen
0 Punkte
Beantwortet von
Hi malSchauen

Danke es funktioniert.

Gruss

HWR
...