Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1884to1888
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Chronologie prüfen

VBA Chronologie prüfen
07.06.2022 12:28:27
Hans
Hallo liebes Forum :)
ich benötige mal wieder Hilfe bzgl. einer VBA-Programmierung (oder ggf. auch ohne VBA)
Zur Zeit bin Praktikant in einem Technikmuseum, in dem ich die Ausstellungsorganisation unterstütze. Die folgende beschriebene Situation ist (datenschutzgemäß) simplifiziert. Bspw. gibt es deutlich mehr Exponate und deutlich mehr Positionen.
Es geht darum für alle beteiligten Kollegen eine Übersicht der aktuell ausgestellten Exponate darzustellen. Diese Übersicht liegt bereits vor und kann nur bedingt von den den Grund-Parametern geändert werden.
Ich möchte über einen VBA-Makro prüfen ob die Chronologie und/oder die Dekaden-Zuordnung der Übersicht stimmt. Es ist hierbei nicht zwingend relevant, dass die Positionen stringent hintereinander aufgelistet werden.
Zur Ausgangssituation:
-Es gibt zwei Stränge in der der Ausstellung (Wand links/rechts) die jeweils chronologisch geordnet werden sollen.
Wand rechts: Positionen 1-4, 11-14 und 20-24 (bspw. soll auf der rechten Seite das Jahr bei Position 4 mit dem Jahr an Position 11 verglichen werden, nicht mir Position 5)
Wand links: Positionen 5-10 und 15-19
-Die Positionen können nicht neu vergeben werden
-Die Zuordnung von Exponate-Nummer, Exponate-Bezeichnung und Exponate-Jahr kann nicht neu vergeben werden
-Die Exponate-Bezeichnung und das Exponate-Jahr wird über einen XVERWEIS mittels der Exponate-Nummer abgerufen
Gewünschter Zielzustand
-Wenn ein Exponat ein anderes ersetzt, soll -sofern die Chronologie und Dekadenzuordnung nicht stimmt- ein Hinweis am Ende der betroffenen Zeile angezeigt werden, dass hier etwas zu tun ist. Hinweis: CHRONOLOGIE PRÜFEN! bzw. DEKADENZUORDNUNG PRÜFEN! Eine automatische Anpassung wäre der absolute Traum, ist aber nicht notwendig.
aktuell helfe ich mir mit der WENN-Funktion, was jedoch nur bedingt funktioniert. Teilweise "verhaut" es mir diese WENN-Funktion wenn ich Zeilen löschen, ausschneide oder verschiebe, da die Bezugszellen nicht mehr stimmen. Ggf. gibt es hier auch eine Lösung ohne VBA, die die Bezugszellen fixiert und Excel versteht, welche Position nach welche Position kommen soll?
Bspw:

=WENN(ISTZAHL(C16);WENN(ISTZAHL(C7);WENN(C7

angehängten Datei
Hier gibt es Drei Situationen, die mein Problem genauer beschreiben sollen.
Situation 1 (Ausgangssituation, aktueller Stand)
Situation 2, bei der zwar die Reihenfolge stimmt (Position 4: 1907, Position 11: 1908) jedoch nicht die Dekadenzuordnung (1908 ist bei 1960er und nicht bei vor 1950)
Situation 3, bei der die Chronologie und Dekadenzuordnung nicht stimmt
Die beiden Situation 2 und 3 werden von links falsch nach rechts richtig aufgelöst. die falschen Zeilen/Zuordnungen werden rot hinterlegt dargestellt, die richtigen grün
Ich hoffe ihr könnt mir helfen und dass ich mich klar genug ausgedrückt habe.
Vielen Dank vorab
Hans
https://www.herber.de/bbs/user/153446.xlsm

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Chronologie prüfen
07.06.2022 16:35:07
ChrisL
Hi Hans
https://www.herber.de/bbs/user/153451.xlsx
Ich bin relativ stark von der Vorgabe abgewichen. Bei Bedarf kannst du die Frage auch wieder als offen markieren.
Zur Logik. Ich denke Fehler in der Chronologie können nur schwer eindeutig per Maschine identifiziert werden. Beispiel:
1905, 1945, 1944, 1951
Hier könnte 1945 oder 1944 an der falschen Position stehen.
Das zweite Fehlerbeispiel in der Datei könnte man vielleicht noch identifizieren, aber spätestens wenn mal zwei Exponate hintereinander durcheinander kommen, wird eine solche Prüfung richtig chaotisch.
Jedenfalls habe ich mich auf "potenzielle Fehler" beschränkt.
Weiter machst du dir mit der Struktur (Kategorie als Leerzeile) das Leben so richtig schwer. Im Anhang habe ich die Kategorien mittels SVERWEIS bezogen und als separate Spalte dargestellt. Sieht vielleicht nicht ganz so hübsch aus, dafür lässt sich damit arbeiten und vor allem kannst du eine "intelligente Tabelle" (Menü Start, Als Tabelle formatieren) verwenden. Damit erweitern sich die Formeln immer automatisch und es sollte nichts mehr durcheinander kommen.
cu
Chris
Anzeige
AW: VBA Chronologie prüfen
07.06.2022 17:28:49
ChrisL
Ergänzung:
https://www.herber.de/bbs/user/153453.xlsx
Die reine Darstellung (ohne Fehleridentifikation) könnte man übrigens z.B. per Pivot aufbessern. (links)
Und eine gute Datenbasis ermöglich zudem Auswertungen z.B. Anzahl potenzieller Fehler. (rechts)
AW: VBA Chronologie prüfen
08.06.2022 12:21:48
Hans
Hallo :)
zunächst einmal vielen Dank für die Rückmeldungen und den kreativen Input. Mit Pivot Tabellen kenne ich mich noch nicht sonderlich aus, steht aber oben auf der Zu-Lernen-Liste.
Ich habe meine Datei nochmal überarbeitet, die mir den "Chronologie prüfen!"-Hinweis liefert. Die Dekadenprüfung ist eher untergeordnet wichtig und das werde ich mit deinen Ideen nochmals angehen.
Habe meiner Datei ein weiteres Tabellenblatt hinzugefügt, in dem die Position und die Nummer via XVERWEIS geprüft werden (Tabelle Positionen, Spalte D)

=WENN(ISTZAHL($C3);WENN(ISTZAHL($C2);WENN($C2
und dann in der eigentlichen Tabelle (Übersicht) wiederum positionsbezogen der "Chronologie prüfen!"-Hinweis zurückgespielt wird (Tabelle Übersicht, Spalte E) .

=WENN(Positionen!$F$3="";XVERWEIS(D5;Tabelle2[Exponatenummer aktuell];Tabelle2[Chronologie prüfen?]; "nicht vorhanden";0);"") 
https://www.herber.de/bbs/user/153464.xlsm
Anzeige
AW: VBA Chronologie prüfen
08.06.2022 12:52:45
ChrisL
Hi
Danke für die Rückmeldung.
Nur ein Hinweis. Du vergleichst immer mit der Zahl vorher und nicht mit der Zahl nachher. Z.B.
1969, 2010, 1978, 1983...
In dem Beispiel wird 1978 als Fehler gekennzeichnet statt 2010. Darum eben die Idee mit "potenziellen" Fehlern, womit 1978 zwar auch markiert würde, aber immerhin zusätzlich auch die richtige Zahl 2010.
cu
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige