VBA: Zahlenbereiche und Teilbereiche

Bild

Betrifft: VBA: Zahlenbereiche und Teilbereiche
von: Christian
Geschrieben am: 14.11.2015 15:28:21

Hallo zusammen,
ich habe schon viel von euch gelernt, verzweifel aber an folgender Aufgabe und hoffe auf eure Hilfe.
Bsp-Datei: https://www.herber.de/bbs/user/101511.xls
In Spalte B und C stehen jeweils Start- und Endwerte von Zahlenbereichen.
Diese Bereiche können aber auch Teilbereiche eines zuvor bereits genannten Bereichs sein.
Dabei sind die Spalten A-C (Bereichsgröße, Startwert, Endwert) wie folgt sortiert:
- Startwert > aufsteigend
- Bereichsgröße > absteigend
- Endwert > aufsteigend
Bsp:
In Zeile 6 steht der Bereich von 201 bis 300
In Zeile 7 steht der Bereich von 221 bis 240
221-240 ist also ein Teilbereich von 201-300
demnach ist:
- der Bereich 201-220 einfach belegt
- der Bereich 221-240 doppelt belegt
- der Bereich 241-300 einfach belegt
Überschneidungen im Sinne von Bereich 1=100-200 und Bereich 2=150-250 kann es dabei nicht geben, d.h. ein Teilbereich startet frühestens mit den Startwert des übergeordneten Bereichs und endet spätestens mit dessen Endwert.
Bei den Bereichen kann es bis 3-fach Belegung kommen.
Wie ich mir die Auswertung vorstelle, seht ihr in der Beispieldatei.
Ich such 'ne Lösung per VBA.
Könnt ihr mir helfen?
Vielen Dank vorab
Grüße
Christian

Bild

Betrifft: AW: VBA: Zahlenbereiche und Teilbereiche
von: Matthias
Geschrieben am: 15.11.2015 02:48:50
Hallo Christian,
schau dir mal bitte dies an:
https://www.herber.de/bbs/user/101521.xlsm
Wenn alles zu deiner Zufriedenheit ist, bitte eine Rückmeldung und wenn nicht sowieso,
lg Matthias

Bild

Betrifft: AW: VBA: Zahlenbereiche und Teilbereiche
von: Christian
Geschrieben am: 15.11.2015 14:15:42
Hallo Matthias,
herzlichen Dank für deine Antwort und deinen Lösungsvorschlag.
Ich hatte in den letzten Tagen erfolglos mit verschachtelten Schleifen versucht, die jeweiligen Bereiche aus den Daten der Spalten A-C zu bestimmen.
In der Bsp-Datei habe ich dann zum Verständnis die Werte in den Spalten Q-T hinzugefügt.
Die falschen Einträge in Spalte S-T hast du ja schon erkannt. Danke für den Hinweis. Da hab in der Bsp-Datei vorne was geändert und vergessen, diese Änderungen in Spalte S-T nach zu ziehen.
Auf deine Idee, diese Werte (Q-T) per Code zu erzeugen, bin ich nicht gekommen, geschweige denn daraus die Bereiche in den Spalten E-O zu berechnen.
Dein Vorschlag ist klasse!
Aber leider fehlt da z.Bsp. im Bereich "1-fach belegt" der Eintrag 601-700 von Zeile 18 bis 30, u.ä.
Dieser ist in deiner Lösung aufgeteilt auf die Werte in "1-fach" und "2-fach" Belegung.
Kann man das noch ändern?
Möglich wäre auch, für diesen Bereich 601-700 von der ersten bis zur letzten Zeile dieses Breichs die Start- und Endwerte (sprich 601-700) einzutragen. Die betroffenen Teilbereiche von 2-fach, 3-fach Belegung erkennt man ja aus den Daten in Spalte Q-T.
Gleiches gilt natürlich in dieser Bsp-Datei für die Bereiche 201-300, 401-500, 651-690
Hast du dazu noch eine Idee?
Nochmals vielen Dank für deinen Einsatz und deine Hilfe
Viele Grüße
Christian

Bild

Betrifft: AW: VBA: Zahlenbereiche und Teilbereiche
von: Matthias
Geschrieben am: 15.11.2015 22:40:03
Hallo Christian,
dh. im Klartext, du willst die Bereiche aus der Original-Tabelle ebenfalls in die grüne Tabelle einfügen, sofern sie in Teilbereiche zerlegt wurden? Das wäre einfach zu realisieren indem man alle Originale unten ran kopiert und die doppelten entfernt:
https://www.herber.de/bbs/user/101537.xlsm
Es sind dabei aber noch ein paar Bereiche mehr wie in deiner Beispielauswertung, welche ich orange markiert habe. Sie entstehen wenn ein Bereich in einem anderen liegt und dieser dadurch in zwei oder drei Teilstücken zerlegt wird. Einer wird genau von dem innenliegenden Bereich repräsentiert, der oder die anderen Teilstücken gibt es in der Original-Liste nicht. Wenn diese dich stören, dann probier es mal so:
https://www.herber.de/bbs/user/101539.xlsm
lg Matthias

Bild

Betrifft: AW: VBA: Zahlenbereiche und Teilbereiche
von: Matthias
Geschrieben am: 15.11.2015 22:43:09
Achja,
wenn du Spalte U dann nach "Falsch" filterst, bekommst du übrigens die Leerzeilen alle weg.
lg Matthias

Bild

Betrifft: Vielen Dank
von: Christian
Geschrieben am: 16.11.2015 17:36:17
Hallo Matthias,
das siehr sehr gut aus.
Vielen Dank für deine Unterstützung
Grüße
Christian

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA: Zahlenbereiche und Teilbereiche"