CALC: Schichtplan/Ruhezeiten aus VBA übersetzen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: CALC: Schichtplan/Ruhezeiten aus VBA übersetzen

Re: CALC: Schichtplan/Ruhezeiten aus VBA übersetzen

von hawe » Do, 18.10.2012 12:13

Neben den angesprochenen Fehlern ist das Hauptproblem bei

If raDatum.Parent.Cells(r, c) = 1 Then

Das ist ist auch in VBA eine Hammerkonstruktion - Seiteneffekt duch Zugriff auf die aufrufende Tabelle.
Du musst der Funktion den Tabellenbereich auf den zugegriffen wird mit geben im Functionheader, etwa

Function IstDienst(nDienstschicht As Long, dDatum As Date, Dienstplan as Variant, Optional raBereichLetzterDienst As Range)

und dann die Zeile r und Spalte c in der Variablen Dienstplan lesen - r,c sind ggf. auf diese neue Situation anzupassen.

Mit anderen Worten ohne den Aufbau von Dienstplan zu kennen kan hier keiner helfen...

Re: übersetzung vba ins basic

von Karolus » Di, 16.10.2012 08:39

Hallo
kann leider keine Datei hochladen, die das veranschaulicht!
Doch, könntest du schon, wenn du dir die "Mühe" machst dich hier zu registrieren und anzumelden.

Karolus

Re: übersetzung vba ins basic

von balu » Mo, 15.10.2012 16:54

Hallo oooNOOP,
...hatte ich auch schon in betracht gezogen....
Und das soll ich dir so glauben? Nach noch nicht mal 5 Minuten nach meinem ersten Beitrag verwirfst Du meinen Vorschlag.

wird aber grade wegen der einzuhaltenden ruhezeiten immer eine sehr umfangreiche formel!!
Wird denn die Arbeitszeit ganz individuell, oder aber nach einem fest vorgegebenen Rhythmus erstellt, also immer wiederkehrend? Ich werd da nämlich aus deiner mageren Beschreibung nämlich nicht schlau draus.

Gib uns mal ne Beispieldatei wo die Schichten aufgelistet sind. Und vor allem wie die Regelungen dafür lauten.


Dein selbst umgeschriebener Code kann so nicht funktionieren. Denn Du deklarierst die Variablen zwischen einer leeren Sub und einer Function. Und das bedeutet dann nämlich, das die Variablen der Function nicht zur Verfügung stehen.

Code: Alles auswählen

End Sub

Const TAGOFFSET as Long = 2
Dim dDatum as Date
Dim nLetzteDienstSchicht as Long
Dim r as Long, c as Long

Function....
Entweder Du deklarierst in der Function, oder aber Du schmeißt die Leere Sub raus und machst dadurch eine Öffentliche daklaration.
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig80
http://www.dannenhoefer.de/faqstarbasic ... ml#Zweig81


Ich habe auch keine große Lust dazu deinen umgeschriebenen Code zu testen, da ich nicht nachvollziehen kann wie Du an raDatum kommst.



Gruß
balu

Re: übersetzung vba ins basic

von balu » Fr, 12.10.2012 11:25

Hallo oooNOOP,
der soll in einem tabellenblatt einen schichtplan automatisch erstellen.
Muss er unbedingt per Makro erstellt werden? Könnte nicht auch eine Foremellösung in betracht gezogen werden? Ich weiß ja nicht wie gut Du dich mit Excel, bzw. Calc auskennst, aber vielleicht kommst Du ja mit diesem Thread hier weiter. Ansonsten melde dich einfach wieder.



Gruß
balu

Nach oben