Zeile durchsuchen (EXCEL2003)

Moin!

Ich hänge gerade an folgendem Problem:

In einer Tabelle habe ich einen Tag in ungleichlange Abschnitte unterteilt. Zeile 1 enthält die Uhrzeit des Beginns eines Abschnittes, Zeile 2 dessen Endeuhrzeit. Zeile 3 und folgende enthalten Buchstaben für jeweilige Tätigkeiten in den Abschnitten. Die Zeilen stehen für unterschiedliche Tage. Die Tätigkeiten habe ich in einer Hilfstabelle definiert.

Meine Tabelle sieht also beispielsweise folgendermaßen aus:

5:30 6:30 7:00 11:00 13:00 13:30 14:00 15:00 18:00
6:30 7:00 11:00 13:00 13:30 14:00 15:00 18:00 21:00
 s s s s s
w w w w
s s w w s s s s s

Nun möchte ich diese Tabelle folgendermaßen auswerten: In einer Tabelle sollen je Tätigkeit Beginn- und Endeuhrzeit von ununterbrochenen Abschnitten aufgelistet werden. Also so:

Name Mo Di Mi 

Schlaf 7:00 Frei 5:30 
 13:00 7:00 
 14:00 13:00 
 21:00 21:00

Wach Frei 5:30 7:00 
 6:30 13:00 
 7:00 
 13:30 

Fand die Tätigkeit an diesem Tag nicht statt, soll ein Text (z. B. „Frei“ ausgegeben werden.

Die erste Startzeit bekomme ich mit etlichen WENNs zu fassen. Die Textausgabe, wenn keine Startzeit gefunden wird, bekomme ich auch hin. Das Formelmonster sieht dann in etwa so aus: =WENN(B4=K2;B1;WENN(C4=K2;C1;WENN(D4=K2;D1;WENN(E4=K2;E1;WENN(F4=K2;F1;WENN(G4=K2;G1;WENN(H4=K2;H1;WENN(I4=K2;I1;„Frei“)))))))) - auch, wenn da noch eine WENN-Abfrage fehlt. In K2 steht das Kürzel. Die Daten beginnen in Spalte B, Zeile 4.

Für die dazugehörige Endezeit wäre es sinnvoll, wenn erst ab der Fundstelle der ersten Startzeit weitergesucht würde. Deren Fundstelle wäre dann Ausgangspunkt für die Suche nach der nächsten Startzeit und so fort. Und genau das bekomme ich einfach nicht hin. Geht das überhaupt ohne Makros mit EXCEL-Bordmitteln?

Besten Dank vorab!

Munter bleiben… TRICHTEX

Hallo Gunther,

Die Daten beginnen in Spalte B, Zeile 4.

? oben hattest du geschrieben, Zeile 1 u. 2 sind die Zeiten, die
Daten stehen ab zeile 3. Nun Zeile 4?

Geht das überhaupt ohne Makros mit EXCEL-Bordmitteln?

K.A. (noch nicht) Lade bitte mit fileupload, Adresse siehe FAQ:2606 eine Mappe hoch.

Mich interessiert wie es weitergeht in den Zeilen.
Also kommt nach Mo,Di,Mi nur noch der Rest der tage und die tabelle ist beendet?
Oder folgen dann die Tage der nächsten Wochen des Monats, des Jahres?

Das Ausfüllen der s/w/leer zellen kannste dir vereinfachen. Benutze
=WENN(ZUFALLSZAHL()>0,66;„w“;WENN(ZUFALLSZAHL()>0,5;„s“;""))
in allen Zellen des reinen Datenbereichs.
Dann markiere alles, Bearbeiten—Inhalte einfügen—Werte

Gruß
Reinhard

Moin!

K.A. (noch nicht) Lade bitte mit fileupload, Adresse siehe
FAQ:2606 eine Mappe hoch.

Ok. Ich hab’s mir mit Hilfsfeldern und etlichen verschachtelten WENNs zusammengestümpert:

http://www.file-upload.net/download-4352443/Arbeitsp…

Das „Zeiten“-Blatt dient zur Eingabe, das „Dienstplan“-Blatt ist das formatierte Ergebnis. Ich habe nicht mit Kommentaren gespart. Kernfrage ist, ob ich ohne Hilfsfelder (M17:S66) mit den verschachtelten WENNs (die sich natürlich in C17:I66 fortsetzen) auch zum Ziel kommen kann.

Nochmals besten Dank vorab!

Munter bleiben… TRICHTEX

Hallo Gunther,

http://www.file-upload.net/download-4352443/Arbeitsp…

Das „Zeiten“-Blatt dient zur Eingabe, das „Dienstplan“-Blatt
ist das formatierte Ergebnis.

für was brauchst du dann A17:K38 ff?

Kernfrage ist, ob ich ohne Hilfsfelder (M17:S66) mit
den verschachtelten WENNs (die sich natürlich in C17:I66
fortsetzen) auch zum Ziel kommen kann.

„kann“? Ja, mit Formeln lösbar ist das sicherlich.
Ist halt nur die Frage welche Mammutformeln entstehen, wieviele Hilfszellen, ggfs. Arrayformeln s.
http://excelformeln.de/formeln.html

Ersetze in K4:Q4 die „-“ durch nix
Schreibe in K4
=WENN(K$2="";"";SUMMEWENN($B4:blush:J4;"*"&K$2&"*";$B$3:blush:J$3))

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))

Die Datei
http://www.uploadagent.de/show-184630-1336825007.html
hat nachfolgenden Code der Schaltfläche im Blatt Zeiten zugeordnet.

Gruß
Reinhard

Option Explicit

Sub Trichtex()
Dim Zei As Long, Z As Long, Spa As Long, A As Integer, SpaMA As Integer
Dim WksD As Worksheet
Set WksD = Worksheets("Dienstplan")
WksD.Unprotect
Application.ScreenUpdating = False
With Worksheets("Zeiten")
 .Unprotect
 SpaMA = Application.CountA(.Range("K2:Q2"))
 If SpaMA = 0 Then Exit Sub
 ReDim zeilen(1 To SpaMA, 4 To 10) As Range
 For SpaMA = 1 To Application.CountA(.Range("K2:Q2"))
 For Zei = 4 To 10
 For Spa = 2 To 10
 If InStr(.Cells(Zei, Spa).Value, .Cells(2, 10 + SpaMA).Value) \> 0 Then
 If Not zeilen(SpaMA, Zei) Is Nothing Then
 Set zeilen(SpaMA, Zei) = Application.Union(zeilen(SpaMA, Zei), .Cells(Zei, Spa))
 Else
 Set zeilen(SpaMA, Zei) = .Cells(Zei, Spa)
 End If
 End If
 Next Spa
 Next Zei
 Next SpaMA
 For SpaMA = 1 To SpaMA - 1
 For Zei = 4 To 10
 If Not zeilen(SpaMA, Zei) Is Nothing Then
 ReDim Von(1 To zeilen(SpaMA, Zei).Areas.Count)
 ReDim Bis(1 To zeilen(SpaMA, Zei).Areas.Count)
 For A = 1 To zeilen(SpaMA, Zei).Areas.Count
 Von(A) = Format(.Cells(1, zeilen(SpaMA, Zei).Areas(A).Cells(1, 1).Column), "hh:mm")
 Bis(A) = Format(.Cells(2, zeilen(SpaMA, Zei).Areas(A).Cells(1, \_
 zeilen(SpaMA, Zei).Areas(A).Cells.Count).Column), "hh:mm")
 .Cells(19 + (SpaMA - 1) \* 7 + (A - 1) \* 2, Zei - 1).Value = Von(A)
 .Cells(19 + (SpaMA - 1) \* 7 + (A - 1) \* 2 + 1, Zei - 1).Value = Bis(A)
 WksD.Cells(2 + (SpaMA - 1) \* 4 + A, Zei - 1).Value = Von(A) & " - " & Bis(A)
 Next A
 Else
 .Cells(19 + (SpaMA - 1) \* 7, Zei - 1).Value = "Frei"
 WksD.Cells(3 + (SpaMA - 1) \* 4, Zei - 1).Value = "Frei"
 End If
 Next Zei
 Next SpaMA
 .Protect
End With
Application.ScreenUpdating = True
WksD.Protect
End Sub
1 „Gefällt mir“

Moin Reinhard!

Das „Zeiten“-Blatt dient zur Eingabe, das „Dienstplan“-Blatt
ist das formatierte Ergebnis.

für was brauchst du dann A17:K38 ff?

Einerseits hätte die gleichzeitige Aufbereitung die verschachtelten WENN-Konstrukte noch unübersichtlicher gemacht, 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.

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!

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.

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.
  • 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.

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.

Interessantes tut sich auch, wenn man mittendrin ein Mitarbeiterkürzel (K2:Q2) wegläßt. Das sollte man aber ohnehin nicht tun…

Bis hierhin erstmal meinen allerherzlichsten Dank! Bis auf das Initialisieren (hast Du dazu noch was „im Köcher“?) könnte ich die Änderungen wohl hinbekommen.

Und noch was: Ich bin dankbar für die Unzulänglichkeiten im Makro. Die zwingen mich nämlich, mich damit zu befassen. Wer weiß, ob nicht irgendwann wieder was geändert werden muß - ich hätte ja nie mit einer fertigen Lösung von Dir gerechnet.

Munter bleiben… TRICHTEX

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 :smile:
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 :frowning: :smile:)

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

1 „Gefällt mir“

Moin Reinhard!

? Warum sollte das Makro nach drei Schichten pro Tagen
aufhören?

Weil mehr Schichten pro Mitarbeiter und Tag nicht zulässig sind. Deshalb habe ich auch nur 3 bzw. 6 Schichtzeilen pro Mitarbeiter vorgesehen.

Diese Schichten (die über 3) fehlen doch dann bei der
Zusammenstellung bzw. im Dienstplan.

Wie gesagt, die darf es nicht geben.

Schau nach .Clearcontents.
Das ist wie in Excel „Entf“.

Gut, wird eingebaut. Danke!

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.

Auch keine schlechte Idee. Nur ein Tabellenblatt mit einer Schaltfläche „Drucken“. Ich seh’ mal zu, dass ich sowas bastele.

Verhindere so Schweinskram mit dem Blattschutz mit Passwort.
Also nur
Berechtigte dürfen da rumspielen. Wenn die so einen Mist
bauen, naja.

Die Tabelle wird nur eine Benutzerin haben. Die beste Frau von allen muss für ihr Team Dienstpläne erstellen und an die Zentrale schicken. Für den technischen Teil hat sie mich :wink:

Mit dem Blattschutz, schau zu protect, Unprotect in der
Vba-Hilfe

protect und unprotect hast Du ja in Deiner Lösung verwendet, ich vermutete schon, dass das der Blattschutz ist.

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.

Ich werde noch einige Zeit benötigen, um mich durch alles durchzuarbeiten und entsprechendes auszuprobieren. Wird aber erledigt, Du hast es ganz sicher nicht vergebens geschrieben.

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 :frowning: :smile:)

Ich reiche Dir erstmal ein virtuelles Bier. Prost!

Die zwingen mich nämlich, mich damit zu befassen.

Das ist langfristig ungemein effektiv.

Learning by doing und Try & Error. Das ist das schöne bei solchen Dingen kann man das machen - beim Hausbau würde ich eher drauf verzichten :wink:

Also nochmal vielen Dank, Du warst mir eine wertvolle Hilfe!

Munter bleiben… TRICHTEX

Hallo Gunther,

? Warum sollte das Makro nach drei Schichten pro Tagen
aufhören?

Weil mehr Schichten pro Mitarbeiter und Tag nicht zulässig
sind.

naja, Glaskugel hab ich nicht :smile:

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.

Auch keine schlechte Idee. Nur ein Tabellenblatt mit einer
Schaltfläche „Drucken“. Ich seh’ mal zu, dass ich sowas
bastele.

okay.

Verhindere so Schweinskram mit dem Blattschutz mit Passwort.
Also nur
Berechtigte dürfen da rumspielen. Wenn die so einen Mist
bauen, naja.

Die Tabelle wird nur eine Benutzerin haben. Die beste Frau von
allen muss für ihr Team Dienstpläne erstellen und an die
Zentrale schicken. Für den technischen Teil hat sie mich :wink:

Aha *grins*, klingt so als ob du ihr auf sehr dirktem Weg sagen kannst diesen Mist zu unterlassen.
Ist evtl. 100%ig möglich aber sehr aufwändig alle Fehleingaben
mit Vba zu erkennen, ggfs. korrigieren, aber wozu?
Grad wenn nur einer die Tabelle füttert.
Der/die sollte wissen daß z.B. die Eingabe "s " anstatt „s“
zu Fehlern führt. U.v.m.

Mit dem Blattschutz, schau zu protect, Unprotect in der
Vba-Hilfe

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.

Ich werde noch einige Zeit benötigen, um mich durch alles
durchzuarbeiten und entsprechendes auszuprobieren. Wird aber
erledigt, Du hast es ganz sicher nicht vergebens geschrieben.

In dieser Sache geht es einzig darum Vba mitzuteilen welche Zellbereiche es denn löschen soll ohne die Gesamttabelle zu „zerschießen“.
Dazu gehört unbedingt die Information wie da diese tabelle
aufgebaut ist.

Hat jeder MA beginnend in Zeile 3 seine drei Datenzeilen und der nächste MA fängt analog dazu in 4 Zeilen darunter an so ist das leicht zu handeln.

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 :frowning: :smile:)

Ich reiche Dir erstmal ein virtuelles Bier. Prost!

ein Bier? Weißt du was 3 Therapiestunden kosten? *grien*

Das ist langfristig ungemein effektiv.

Learning by doing und Try & Error.

Okay, ein bißchen angelesenes Wissen gehört auch dazu.
Ich hab Resize benutzt in
.cells(zei,3).resize(3,7).clearcontents
und das ist schon eine Herausforderung für Neulinge.

Wenn man nun schon weiß daß .cells(zei,3) ein Rangeobjekt also einen Zellbereich ist, .clearcontents nur bedeutet im dem Zellbereich die Inhalte zu löschen bleibt noch das unklare resize.

Angenommen zei hätte in dem Moment der Wert 5, den man übrigens im Testcode anstelle von zei eintragen kann, so ist .cells(zei,3) die
Zelle 5fte Zeile, 3te Spalte, also C5.
Wenn man nun, das meine ich mit Wissen, weiß daß jeder Zellbereich
Zelladressen hat so kann man da im Code einbauen
MsgBox .cells(zei,3).resize(3,7).address

Dann die 3,7 Werte abändern und schauen was sich tut.
Danach hat man „resize“ kapiert.

Du warst mir eine wertvolle Hilfe!

Meld dich wenn Prolematiken bestehen bleiben.

Gruß
Reinhard

Hallo Gunther,

ich hab mich jetzt mal an einer reinen Formellösung versucht.
Im Fall von „s“ scheint sie zu funktionieren.
Bei den andern beiden ist noch ein Fehler drinne :frowning:
Den siehst du an den Einträgen im Blatt „Hilf“.
In der Formel des Namens Zeit1 muß noch der Wurm drin sein.

Manko:
Die Formel in Zeiten!C19 ist kopierbar nach Zeiten!C19:I24.
Aber (noch nicht) nach Zeilen!C26:I31.
Du mußt also die Formel aus Zeiten!C19 nach Zeiten!C26 kopieren.
Dann manuell wie gezeigt anpassen. Dann kannste Zeiten!C26 nach
Zeiten!C26:I31 kopieren.

Dies halt für jede Mitarbeiterin. Ich halte das für vertretbaren Aufwand bei 3-6 Mitarbeitern. Bei 50 frage nochmal nach daann mache ich die Formel komplett kopierbar.
Ähnliches gilt auch für „Dienstplan“.

Gruß
Reinhard

ups, Datei vergessen :smile:
Hallo Gunther,

http://www.uploadagent.de/show-184679-1337015888.html

Gruß
Reinhard