wie kann man auf Funktionen aus dem AddIn
"Analysefunktionen-VBA" oder "Analysefunktionen"
in VBA-Code zugreifen?
Ich benötige im Code die Berechnung der Kalenderwoche
aus einem gegebenen Datum. Im Arbeitblatt geht es prima
mit
'=KALENDERWOCHE("10.01.2000";2)-1'
, aber wie im Code???
Danke für Eure Hilfe,
herzliche Grüße, Holger.
Bye
Ulli.
Holger van Lishaut schrieb:
--
Microsoft MVP für Excel
ich glaube, das ist was du brauchst ...
Function DINKW(Optional dat As Date) As Integer
'ermittelt die Kalenderwoche nach DIN
If dat = 0 Then dat = Date
DINKW = DatePart("ww", dat, vbUseSystemDayOfWeek, vbUseSystem)
End Function
hth
JB
auch euch möchte ich einen Beitrag von Christoph Kremer nicht
vorenthalten. Denn auch diese Funktion ermittelt die KW nicht richtig.
Kritische Daten sind 29.12.2003, 4.1.2004 und 6.1.2008. Hier rechnet
DINKW nicht richtig.
Hier der Beitrag von Christop und seine (richtig rechnende) Funktion.
zur Ermittlung der Kalenderwoche nach DIN habe ich vor einiger Zeit
selber
eine VBA-Lösung entwickelt (veröffentlicht in PC Magazin 9/97 und WIN
9/97),
da die in Büchern und Zeitschriften abgedruckten Lösungen teilweise
falsche
Ergebnisse liefern oder aber unhandlich lang sind.
Nach DIN gilt: Die erste Kalenderwoche eines Jahres ist diejenige, in
der
der erste Donnerstag des Jahres liegt.
==============================================
‘ VBA-Funktion zur Berechnung der Kalenderwoche nach DIN
Function KWoche(d as Date)
Dim t as Long
t = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 1)
KWoche = ((d - t - 3 + (WeekDay(t) + 1) Mod 7)) \ 7 + 1
End Function
==============================================
Dazu noch zwei Hinweise:
- Der Variablen t wird der 1. Januar desjenigen Jahres zugewiesen, dem
die
Kalenderwoche zugerechnet wird
- Der Schrägstrich "\" in der vorletzten Zeile ist – wie bei
Pfadangaben –
rückwärts gerichtet und darf nicht mit dem Divisionszeichen "/"
verwechselt
werden; dieser Operator liefert den ganzzahligen Anteil einer Division
Gruß
Christoph Kremer
Joachim Braig schrieb:
--
bis dann,
Robert
Nicht was Du sagst ist entscheidend,
sondern was verstanden wird.