Hallo Gunther,
Das „Zeiten“-Blatt dient zur Eingabe, das „Dienstplan“-Blatt
ist das formatierte Ergebnis.
für was brauchst du dann A17:K38 ff?
andererseits soll bei der Eingabe kontrolliert werden
können, ob alles richtig ist. Farben erhöhen die
Übersichtlichkeit, sollen aber im auszudruckenden Dienstplan
nicht vorhanden sein.
okay, das ist ein Grund. Und sehr weise in Bezug auf Farbbenutzung.
Da wo sie angebracht sind ist es schön da eine Auswahl an Farben zu haben. Wo sie nicht angebracht sind, hinweg damit.
Ersetze in K4:Q4 die „-“ durch nix
Schreibe in K4
=WENN(K$2="";"";SUMMEWENN($B4:blush:J4;"*"&K$2&"*";$B$3:blush:J$3))
So geht das also mit Platzhaltern. Was hab’ ich mir einen
abgebrochen! Sehr elegant. Vielen Dank dafür!
Danke.
Wenn B3:J3 nur dafür da ist so kannste das auch weglassen.
Nimm dann diese Formel:
=WENN(K$2="";"";SUMMEWENN($B4:blush:J4;"*"&K$2&"*";$B$2:blush:J$2)-
SUMMEWENN($B4:blush:J4;"*"&K$2&"*";$B$1:blush:J$1))
B3:J3 sollen auch dazu dienen, schnell ohne großes Rechnen
sehen zu können, an welcher Stelle man wieviel Zeit
umschichten kann, falls einem Mitarbeiter mal zu viel oder zu
wenig Stunden aufgebürdet wurden.
Okay, bleibt also.
Die Datei hat nachfolgenden Code der Schaltfläche im Blatt Zeiten
zugeordnet.
Guter Ansatz! Ich sollte mich mal in die Makro-Syntax
einarbeiten, um folgendes zu ändern:
- Das Makro hört nicht bei drei Schichten pro Mitarbeiter auf.
Werden also mehrere eingetragen (bis zu fünf sind bei 9
Schichtzeiten möglich, aber mehr als drei kommen nicht vor),
werden die nachfolgenden 4 Zeilen im „Zeiten“-Blatt und die
nachfolgenden beiden Zeilen im „Dienstplan“-Blatt gnadenlos
überschrieben.Müßte auf drei Zeiten begrenzt werden.
? Warum sollte das Makro nach drei Schichten pro Tagen aufhören?
Diese Schichten (die über 3) fehlen doch dann bei der Zusammenstellung bzw. im Dienstplan.
Logisch bestimmst du was da ablaufen soll aber ich würde das nicht auf 3 begrenzen. Ja, max. 5 sind möglich.
Per Vba-Prozedur ist es aber recht einfach aufgrund der Schichten
die Zusammenfassunfstabellen in A19:J38 bzw. die im Dienstplan
anzupassen.
a) überall 5 Zeilen bzw 10 Zeilen für die Schichten.
b) überall pro MA soviele zeilen wie nötig
c) wie b) aber optisch "ordenlicher", die größte Schichtanzahl pro tag
bestimmt wieviele zeilen bei allen angezeigt werden.
- Dann werden die Zeiten für den nächsten Mitarbeiter
geschrieben. Es werden nur so viele Zeilen geschrieben, wie
Schichtzeiten vorhanden sind, der Rest bleibt unberührt - also
auch die Zeilen des vorherigen Mitarbeiters bzw. alte
Schichtzeiten des aktuellen Mitarbeiters, wenn es vor der
Aktualisierung mehr gab. Das kann ich so lassen, wenn ich das
Blatt zu Beginn initialisiere (leere) - wenn ich
herausgefunden habe, wie das im Makro gemacht wird.
Schau nach .Clearcontents.
Das ist wie in Excel „Entf“.
Brauchste eine härtere „Säuberung“ der Zellen dann .Clear.
Sehe ich hier aber nicht als nötig an.
Es soll im Dienstplan unterhalb eines jeden Mitarbeiters noch
eine Zeile mit den Tagessummen, die in K4:Q10 stehen,
eingefügt werden. Weil dann „Dienstplan“ bei lesbarer
Zeichengröße nicht mehr auf einem Blatt ausdruckbar ist, soll
die Mitarbeiteranzahl auf 6 reduziert werden. Ich denke, das
bekomme ich im Makro irgendwie hin.
Ich würde dafür ein extra Druckmakro basteln.
D.h. Dienstplan bleibt wie er ist, egal wieviele MA.
Das Druckmakro sucht sich schon seine Daten zusammen mit Kopf/Fußzeile,
Wiederholungszeilen usw.
Interessantes tut sich auch, wenn man mittendrin ein
Mitarbeiterkürzel (K2:Q2) wegläßt. Das sollte man aber ohnehin
nicht tun…
Verhindere so Schweinskram mit dem Blattschutz mit Passwort. Also nur
Berechtigte dürfen da rumspielen. Wenn die so einen Mist bauen, naja.
Mit dem Blattschutz, schau zu protect, Unprotect in der Vba-Hilfe
oder zeichne dir ein makro auf wo du den Blattschutz setzt.
Dann weißt du wie du den in meinem Code abändern mußt daß er
mit passwort funktioniert und ggfs. nur bestimmte Szenarien schützt,
was es da für Szenarien gibt ist Versionsabhängig.
Logischerweise, wenn das Passwort klar im Code steht mußt du den Code
vor Ansicht schützen.
Rechtsklick auf das Projekt, Eigenschaften—Schutz…
Bis hierhin erstmal meinen allerherzlichsten Dank! Bis auf das
Initialisieren (hast Du dazu noch was „im Köcher“?)
Ja. Für den jetzigen Mappenzustand könnte ich dir den Löschcode schnell basteln. Aber lese bitte alles was ich schrieb.
Vielleicht ändert sich ja durch deine Antwort der Zustand.
Mal ein hoffentlich hilfreiches Beispiel beim jetzigen Zustand:
With Worksheets("Dienstplan")
dim Zei as long
for zei=3 to 27 step 4
.cells(zei,3).resize(3,7).clearcontents
next zei
end with
Müßte laufen, wenn nicht, da grad so hingeschrieben, kannste ja üben Fehler im Code zu suchen 
Wobei das gar kein Witz ist, dabei lernt man mit am meisten.
Auch zu begreifen was einem der Debugger mitteilen möchte.
Die Schlüsse aus seinen Meldungen/Hinweisen mußt du ziehen.
Und noch was: Ich bin dankbar für die Unzulänglichkeiten im
Makro.
„Unzulänglichkeiten“? *aargs* um das zu verdauen brauche ich wieder 3 Stunden beim Therapeuten
)
Die zwingen mich nämlich, mich damit zu befassen. Wer
weiß, ob nicht irgendwann wieder was geändert werden muß
Keiner, also richtig gedacht von dir. macht also schon für die Zukunft
für dich gr0ßen Sinn soviel wie möglich von meinem Code zu verstehen.
Dann gleich alle Codezeilen mit Kommentaren versehen in deinen Worten.
Das ist langfristig ungemein effektiv.
Gruß
Reinhard