Microsoft Excel

Herbers Excel/VBA-Archiv

Überschneidung von Zeiträumen verhindern

Betrifft: Überschneidung von Zeiträumen verhindern von: KurTina
Geschrieben am: 27.03.2020 08:18:58

Hallo und guten Morgen!

Ich habe Tabellen (für jedes Monat ein eigenes Blatt 01-12) in der Zeiten erfasst werden.
Die Eingabe muß nicht chronologisch erfolgen.
Pro Tag sind pro Tabellenblatt mehrere Einträge möglich.
Und nun zu meinem Problem:

Die Zeiten pro Tag dürfen sich NICHT überschneiden.

Das betrifft aber immer nur das aktuelle Datenblatt - die Überprüfung braucht sich nicht auf die anderen Datenblätter beziehen. Es wird bereits überprüft ob das eingegeben Datum auch in diesem Tabellenblatt eingetragen werden darf – damit ist sichergestellt, dass im Tabellenblatt 01 kein Datum vom 01.02 bis 31.12. eingetragen werden kann.

Die Eingabe erfolgt in den Zellen wie folgt:
Das Datum wird in den Zellen AB80 bis AB99 und JK81 bis JK 99 eingegeben.
Die Tages Beginnzeit wird in den Zellen E80 bis E99 und N81 bis N99 eingegeben und ist durch eine Datenüberprüfung eingeschränkt.
Die Tages Endezeit wird in den Zellen F80 bis F99 und O81 bis O99 eingegeben und ist durch eine Datenüberprüfung eingeschränkt.

Die Datenüberprüfung prüft ob sich die Eingabe nicht mit einer Eingabe an anderer Stelle überschneidet.
In den Zellen G80 bis G99 und P81 bis P99 werden die jeweiligen Stunden ausgegeben.
Wenn es zu einer Eingabe kommt, die sich mit einer bereits bestehenden Eingabe überschneidet, sollte eine Fehlermeldung aufpoppen und das dazugehörende Summenfeld im Bereich G80 bis G99 bzw. P81 bis P99 darf keine Summe auswerfen.

Nachdem ich Tage damit verbracht habe dieses Problem zu lösen habe ich aufgegeben und hoffe, dass es in diesem Forum jemanden gibt, der mir einen Lösungsansatz für mein Problem geben kann.

Der Bereich A1:CA118 (ausgenommen jene Zellen die oben angeführt sind) wird bereits verwendet und darf nicht benutzt werden.

Zur Veranschaulichung habe ich eine Mustertabelle hochgeladen.

https://www.herber.de/bbs/user/136145.xlsx

Danke für eure Hilfe KurTina

Betrifft: AW: mit Datengüligkeitsdef. nur bed. möglich ...
von: neopa C
Geschrieben am: 27.03.2020 09:21:51

Hallo Tina,

... denn diese würde lediglich eine fehlerhafte Eingabe verhindern können und nicht anzeigen warum nicht. Außerdem könnte man die Datengültigkeit auch "aushebeln". Deshalb ist hier mE eine VBA-Lösung notwendig. Da ich mich aus solcher jedoch heraus halte, stelle ich den thread offen und so verpasse ich die Lösung hierfür auch nicht.

Gruß Werner
.. , - ...

Betrifft: Bei dieser ambitionierten Frage solltest Du ...
von: lupo1
Geschrieben am: 27.03.2020 09:41:11

... darauf verzichten, papier-ausgabeorientiert zu denken und richtig alle Datensätze ("noFrills!") untereinander anordnen.

Es wäre auch nett, wenn Du Farbfomatierungen und verborgene Zellen weglässt. Dann mag man sich eher an die Lösung begeben.

Betrifft: AW: thread weiter offen ...
von: neopa C
Geschrieben am: 27.03.2020 10:18:11

Hallo lupo1,

... die Farbangaben waren von ihr mE nur zum besseren Verständnis für die potentiellen Helfer angegeben, um die Datensätze zu kennzeichnen, welche sie künftig verhindern will und die "verborgenen Zellen" spielen bei der Fragestellung mE keine Rolle.

Gruß Werner
.. , - ...

Betrifft: AW: Überschneidung von Zeiträumen verhindern
von: Firmus
Geschrieben am: 27.03.2020 11:18:37

Hi KurTina,
in Zelle "R80" =WENN(UND(A79=A80;E80<=F79);"üschnitt";"ok") einfügen.

Anschließend die Formel in der Spalte nach unten ziehen.

Es wird geprüft ob zwei aufeinanderfolgende Zeilen vom gleichen Tag sind.
Falls JA, dann prüfe ob der Beginn der zweiten Zeile kleiner/gleich dem Ende der Zeile davor ist.

In deiner Beispielmappe werden damit R83 und R87 als Überschneidung angezeigt.

Gruß,
Firmus

Betrifft: AW: Überschneidung von Zeiträumen verhindern
von: KurTina
Geschrieben am: 27.03.2020 13:10:15

Hallo
die Abfrag von Firmus löst nicht wirklich mein Problem diesen Ansatz und auch noch weit koplexerer hatte ich schon. Die Überschneidungen die unmittelbar angrenzen sind nicht das Problem - die löst die Abfrage.
Problematisch sind die Überschneidungen Beispiel 1, 4, 5 und 6.
Ich weiß, dass man die Daten natürlich auch in einem Block ausgeben kann und dann erst die Überprüfung durchführt - aber auch dafür habe ich keine Lösung gefunden.
LG
KurTina (männlich) :-)

Betrifft: Das Sortieren der Zeiträume jedoch ...
von: lupo1
Geschrieben am: 27.03.2020 15:18:43

... ermöglicht derart kurze Antworten!

Es kann durchaus verlangt werden, dass Du nach Anfangs-DatumZeit sortierst.

Das geht mittlerweile auch mit =SORTIEREN().

Betrifft: AW: Das Sortieren der Zeiträume jedoch ...
von: KurTina
Geschrieben am: 29.03.2020 17:10:49

Lieber Lupo1!
Auch diese Funktion ist mir bekannt - steht mir aber in meiner EXCEL Version - Microsoft Office Professional Plus 2019 - nicht zur Verfügung.
Ich habe die eingegeben Daten aus dem linken und rechten Bereich in eine Liste kopiert, sortiert und dann erst begonnen mit div. Abfragen die überschneidenden Zeiten herauszufiltern. Das Problem ist, dass es pro Tag mehrere unterschiedliche Eingaben geben kann.
LG
KurTina

Betrifft: AW: (m)ein Vorschlag dazu ...
von: neopa C
Geschrieben am: 29.03.2020 19:38:04

Hallo KurTina,

... ich würde die Daten aus A + E und A + F in einem freien Spaltenbereich mit Formeln zusammengefasst untereinander sortiert listen, das geht auch ohne SORTIEREN(). Jegliche Eingaben kannst Du mit der Funktionalität Datenüberprüfung mit Bezug auf diese zwei Hilfsspalten leichter benutzerdefiniert prüfen und damit Falscheingaben verhindern.

Alternativ dazu wäre auch eine visuelle Fehleingabeprüfung vornehmen. Dazu eignet sich die bedingte Formatierung. Also evtl. Fehleingaben sofort mit roter Schrift auf roten Hintergrund maskieren und den/die Dateneingeber anweisen, derartige Eingaben sofort zu korrigieren.

Gruß Werner
.. , - ...

Betrifft: AW: (m)ein Vorschlag dazu ...
von: KurTina
Geschrieben am: 31.03.2020 18:34:49

Lieber Werner!
Habe mein Problem genau so gelöst zwar nicht zu 100% aber gebrauchsfähig:
Habe die Eingaben (Datum Beginn und Ende) in einen Bereich kopiert (mittels VBA) und aus dem Datum und der Beginn Uhrzeit bzw. Datum und Ende Uhrzeit zwei Hilfsspalten erzeugt. Danach wird sortiert (auch mit VBA) und dann mit einer Wenn Abfrage die Fehlereingabe abgefragt. Dies hab ich jedoch nur für 4 Einträge pro Tag abgefragt und hoffe dass es keine 5 Einträge pro Tag gibt und der 5. dann auch noch dazu fehlerhaft ist.
Die sortierten Datensätze schreibe ich dann mittels VBA wieder in die Eingabefelder zurück.
Dieser Vorgang erfolgt jedesmal beim speichern der Datei.
Vielen Dank für eure Hilfe.

Beiträge aus dem Excel-Forum zum Thema "Überschneidung von Zeiträumen verhindern"