Datum -> Alle Montage im Monat November ausrechnen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

chris786
*
Beiträge: 12
Registriert: Di, 24.10.2006 16:22

Datum -> Alle Montage im Monat November ausrechnen

Beitrag von chris786 »

Hallo
Ist es mit einem Makro möglich mir alle Monatage im November 2006 zu "errechnen"? Wie das ausgeben und weiterverarbeiten ist mir einigermaßen klar.
Mfg
Chris
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Chris

Als Makrofunktion für Calc könnte das etwa so aussehen :

Code: Alles auswählen

function montage(monat,jahr)

dim korrekt
dim montag
dim msg as variant

korrekt = 8-weekday(dateserial(jahr,monat,1)-1,2)
montag = dateserial(jahr,monat,1)-1+korrekt
msg = montag

while month(montag+7) = monat
montag = montag +7
msg = msg &","&montag
wend 
'msgbox(msg)
montage = split(msg,",")
End function
aus einer Calczelle mit :

=WERT(MONTAGE(monatszahl;4stell.Jahreszahl)
als Array-funktion mit [strg shift enter] abschliessen, und die Zellen als Datum formatieren.

Gruß Karo
chris786
*
Beiträge: 12
Registriert: Di, 24.10.2006 16:22

Beitrag von chris786 »

Erstmal vielen Dank für deine Hilfe. Allerdings habe ich damit es funktioniert
noch eine Kleinigkeit ändern müßen.

Code: Alles auswählen

 dim montag
habe ich als

Code: Alles auswählen

dim montag as date 
definiert, damit ich das Datum und nicht irgendwelche Zahlen erhalte.
DANKE
Chris
chris786
*
Beiträge: 12
Registriert: Di, 24.10.2006 16:22

Ergänzende Frage

Beitrag von chris786 »

Hallo
Das Code Beispiel funktioniert, allerdings nur für November 2006.
Ich habe versucht es so zu modifizieren, das ich beliebig den Monat und das Jahr definieren kann und es mir für das entsprechende Jahr und den Monat jeweils die Montag ausgibt. Aber leider ohne Erfolg, ....
Kann mir nochmal jemand helfen.
Chris
Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Chris

Du musst doch garnichts modifizieren, sondern nur mit den entsprechenden Parametern als Funktion aus einer Zelle aufrufen, zb. für April 2007 :

=WERT(MONTAGE(4;2007)

Gruß Karo
Antworten