Erstellung eines Schichtplans

  • Excel

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Lee001.

    Erstellung eines Schichtplans

    Hallo zusammen!
    In unserem Betrieb (ca. 15 Mitarbeiter) haben wir bisher immer manuell in Excel einen Monats-Schichtplan erstellt.
    Da dies viel Zeit in Anspruch nimmt, wollten wir dies automatisieren. Das Tool soll die Besonderheiten wie Arbeitszeitgesetz und einzelne Besonderheiten (manche arbeiten nachts und tags, manche nur tags, manche 8h, manche 10h etc.) einhalten und einen Plan erstellen.
    Ich hatte ursprünglich vor, ein Javaprogramm zu schreiben, doch habe nun überlegt, ob dies auch in Excel selbst über Makros oder VBA geht? Ist dies möglich und können Makros diese Anforderungen erfüllen?
    Hinzu kommt, dass ich noch nie mit VBA gearbeitet habe. Ist dies schwer zu erlernen für mein Vorhaben?
    Vielen Dank im Voraus!

    Verschoben. ~fufu

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fufu“ ()

    @Lee001 Willkommen im Forum. :thumbup:
    Da hast Du Dir ja ganz schön was vorgenommen.
    Zunächst solltest Du Dich auf eine Programmiersprache festlegen. Im Titel steht VB.NET, im Text VBA, dafür gibt es hier ein separates Unterforum.
    Fang an und schreib eine präzise Aufgabenstellung, da ist es zunächst egal, in welcher Sprache Du programmierst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Am einfachsten bei sowas ist es immer eine zentrale Benutzerverwaltung zu haben, über welche man die einzelnen Parameter einer Person eingeben kann (unter anderem auch die gewünschte Arbeitszeit).

    Dann solltest du dir auf jeden Fall darum Gedanken machen, wie du die Platzierung der Arbeitszeiten-Blöcke vornimmst. Weil das macht man normalerweise aus einer Liste raus. Heißt du musst die Einträge der Mitarbeiter nach einem oder mehreren Kriterien sortieren (z.B. Neuer Kollege => muss eher noch die doofen Zeiten nehmen, Älterer Kollege => arbeitet gerne nachts, Hatte vor kurzem schon diese Art von Schicht => Sollte dann beim nächsten Lauf anders gesetzt werden) und dann in die einzelnen Schicht-Blöcke setzen.

    Ich würde der Einfachheit halber auf WinForms setzen und eine Datenbank-Datei dazu nehmen. So hast du nicht ganz so viel Aufwand beim Aufsetzen der Umgebung.

    RodFromGermany schrieb:

    <a href="https://www.vb-paradise.de/index.php/User/26983-Lee001/">@Lee001</a> Willkommen im Forum. <img src="https://www.vb-paradise.de/wcf/images/smilies/thumbup.png" alt=":thumbup:" />
    Da hast Du Dir ja ganz schön was vorgenommen.
    Zunächst solltest Du Dich auf eine Programmiersprache festlegen. Im Titel steht VB.NET, im Text VBA, dafür gibt es hier ein separates Unterforum.
    Fang an und schreib eine…


    Danne für die nette Aufnahne!
    Ja, habe ich. Meinst du das ist zu viel für einen Anfänger?
    welche der beiden Sprachen würdest du mir denn empfehlen?

    @Snickbrack: Kannst du bitte ausführen, was du mit Benutzerverwaltung meinst? Eine Datenbank z.B.?
    Meinst du, ich soll eine Datenbank haben, die ich dann mit VB oder VBA besrbeite und dann in Winforms etwas fülle?
    Danke für die schnellen Rückmeldungen!
    @Lee001 Ja genau, die Daten des Personals müssen ja irgendwo herkommen, die werden ja nicht fest in das Programm integriert. Wenn sich personell mal etwas ändern sollte, müsste man jedes Mal das Programm ändern. Eine Datenbank mit Benutzerverwaltung macht also Sinn.

    Die Aufgabe die du dir hier stellst ist für einen Anfänger ich würde sagen machbar wenn du genug Zeit und Motivation hast. Ob dabei aber etwas vernünftiges rauskommt bezweifle ich eher. Solche Projekte sind von der Komplexität, obwohl es sich für Anfänger nicht unbedingt so anhört, eher für anspruchsvolle bzw. erfahrene Entwickler geeignet.

    seh schrieb:

    @Lee001 Ja genau, die Daten des Personals müssen ja irgendwo herkommen, die werden ja nicht fest in das Programm integriert. Wenn sich personell mal etwas ändern sollte, müsste man jedes Mal das Programm ändern. Eine Datenbank mit Benutzerverwaltung macht also Sinn.

    Die Aufgabe die du dir hier stellst ist für einen Anfänger ich würde sagen machbar wenn du genug Zeit und Motivation hast. Ob dabei aber etwas vernünftiges rauskommt bezweifle ich eher. Solche Projekte sind von der Komplexität, obwohl es sich für Anfänger nicht unbedingt so anhört, eher für anspruchsvolle bzw. erfahrene Entwickler geeignet.


    Danke für die Rückmeldung.
    Ich muss dazu sagen, dass ich in Java halbwegs programmieren kann, ich also nicht komplett neu im Thema programmieren bin.
    Ich bin mir aber nicht sicher, ob VBA bspw. in Excel all diese Regeln beachtenkann, bspw. Urlaub, Arbeitszeitgesetz etc.?
    Du kannst das natürlich in VBA und Excel machen.

    Da ist der Vorteil, das du die GUI eigentlich schon hast und die Zellen sehr einfach einfärben kannst.

    Das ist aber wie @RodFromGermany sagte, die Programmiersprache ist herzlich egal.

    Wichtig ist, wenn es zu schwierig wird dann machst du es falsch ;)
    @Lee001 Bitte unterlass das Zitieren kompletter Posts über Deinen :!:
    Ja, ich denke, dass das für einen Anfänger etwas heftig ist, insbesondere, da Du das Arbeitszeitgesetz erwähnst.
    Da ich von VBA und Co keine Ahnung habe, würde ich das in VB.NET bzw. C# machen.
    Vielleicht fängst Du mit etwas einfacheren Sachen an, um Dich mit der Sprache vertraut zu machen: [Sammelthread] Programmieren, aber was? (Programmideen)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Lee001
    Ich habe so einen Schichtplan einmal in ACCESS gemacht...
    Da hast du gleich alles beieinander:
    Da kannst du gleich mit Tabellen arbeiten und Forms generieren und mit VBA werken...

    War aber eine sehr komplexe und mühsame Arbeit!

    z.B.:
    zulässige Schichtwechsel und deren synchrone Darstellung in verschiedenen Plänen...
    Personallisten
    Arbeitszeitzyklen
    Ansicht monatl. Urlaubsplan zu Wochenplan der verschiedenen Schichten
    Bereitschaftslisten zu Verplanungslisten
    Übersicht auf alle Schichten
    etc..

    Momentan setze ich dieses Projekt in WPF (MVVM) um...
    Krasses Projekt wenn man nicht Programmieren kann. Würde ich nicht machen wollen als Anfänger/Neuling. Mit unterschiedlichen Arbeitszeit Modellen und berücksichtigen von Gesetzesvorgaben wirds echt kompliziert...
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen