Microsoft Excel

Herbers Excel/VBA-Archiv

Typen unverträglich

Betrifft: Typen unverträglich
von: Christian
Geschrieben am: 16.04.2003 - 09:11:00

Hallo,
ich habe ein Problem mit einer Funktion in VBA.
Die Funktion soll die Kalenderwoche berechnen:

Function Woche(Prüfdatum As Date) As Variant
Dim ErsterJanuar As Date
ErsterJanuar = DateSerial(Jahr, 1, 1)
Woche = Prüfdatum - ErsterJanuar + WeekDay(ErsterJanuar) - 2
Woche = Fix(Woche / 7 + 1)
End Function

Der Aufruf in der Prozedur lautet wie folgt:
(Das Datum soll er sich aus einer Tabelle holen)

Dim Termin As Date
Termin = Cells(3, 1).Value
Dim KW As Variant
KW = Woche(Termin)

Ich verstehe nicht, warum er dann die Fehlermeldung bringt, obwohl ich doch die gleichen Deklarationen benutzt habe.

Vielen Dank im voraus.


  

Re: Typen unverträglich
von: Nike
Geschrieben am: 16.04.2003 - 09:36:04

Hi,

versuchs mal so:


Sub testTab()
Dim Termin As Date
Dim KW As Integer ' Ist ja ne Zahl
Termin = CDate("1/1/1") 'Cells(3, 1).Value

KW = Woche(Termin)

End Sub
Function Woche(Prüfdatum As Date) As Integer
Dim ErsterJanuar As Date
ErsterJanuar = DateSerial(Jahr, 1, 1)
Woche = Prüfdatum - ErsterJanuar + Weekday(ErsterJanuar) - 2
Woche = Fix(Woche / 7 + 1)
End Function

Bye

Nike

  

Re: Typen unverträglich
von: Yal
Geschrieben am: 16.04.2003 - 09:56:22

die beste oder einfachste Lösung ist nicht unbedingt mit VBA bedient.

Unter "Extras>>AddIn-Manager", schaltet die "Analyse-Funktionen" an. Da kommt jetzt im "Funktion-Assitent" im Kategorie "Datum & Uhrzeit" die Tabelle-Funktion "Kalendarwoche"

Viel Spass beim gut werden
Yal

  

Re: Typen unverträglich
von: Nike
Geschrieben am: 16.04.2003 - 10:03:21

Hi Yal,

nur das die Wizard-KW wohl nicht ganz DIN gerecht rechnet ;-)
Gibt`s ja im Archiv genügend threads über das Thema...

Bye

Nike

  

Re: Typen unverträglich
von: Christian
Geschrieben am: 16.04.2003 - 10:10:19

Hallo Nike, Yal
erstmal danke, dass Ihr Euch mit meinem Problem beschäftigt habt aber das funktioniert leider auch nicht. KW als Integer zu deklarieren habe ich schon im Vorfeld probiert, dass isses nicht.
Mit CDate funktioniert es auch nicht, in der Zelle A3 steht schon ein Datum.
Die Funktion Kalenderwoche aus den Add-Ins kann ich nicht verwenden, da sie zum einen nicht der DIN Norm entspricht und zum anderen will ich ja innerhalb von VBA noch weiter mit der KW arbeiten. Trotzdem danke.

  

Re: Typen unverträglich
von: Nike
Geschrieben am: 16.04.2003 - 10:15:47

Hi,
was in der Zelle steht wird im Zweifel nicht als Datum erkannt, daher mal ruhig mit dem folgenden arbeiten, so weißt du, das
es sich auch für VBA um ein Datum handelt und nicht Excel einfach
so schlau ist und den Wert richtig interpretiert
was es ja auch mal nicht machen könnte...

Dim Termin As Date
Termin = Cdate(Cells(3, 1).Value)

Ansonsten poste einfach noch ein bischen mehr Code
und beschreibe noch ein wenig mehr die Umstände.

Bye

Nike

  

Re: Typen unverträglich
von: Christian
Geschrieben am: 16.04.2003 - 10:37:43

Alles klar, der Fehler war an einer anderen Stelle. Trotzdem danke.