Ich habe eine .csv mit den Daten der Gebäudestruktur eines KNX-Projektes exportiert.
Leider hat diese einen nicht gerade übersichtlichen Aufbau.
Die Daten aus der .csv liegen im Tabellenblatt "Gebaeudestruktur".
Um die Stuktur übersichtlich zu gestalten habe ich auf VBA zurückgegriffen, mit dem Ziel, vorerst nur die Gebäude, Etagen, Verteilerbereiche, Räume, Verteiler und Geräte in einer Art baumstruktur-ähnlichem Aussehen in ein neues Tabellenblatt zu kopieren. Dabei sollen die Dummys natürlich ausgelassen werden. Da diese Informationen alle in Spalte D stehen soweit kein Problem.
Ich habe um Quelltext zu sparen die Überprüfung, um welche "Ebene" der Baumstruktur es sich handelt, in eine Function ausgelagert und alles in einer For-Schleife laufen lassen.
Diese funktioniert einwandfrei von Zeile 17 (erster relevanter Eintrag) bis Zeile 33, ab diesem Zeitpunkt kommt nur noch Nonsens heraus. Mit Überwachung der Daten, die die Function nutzt, habe ich festgestellt, dass scheinbar Cells innerhalb der Function auf falsche Zellen verweist und deshalb der Inhalt der einzuordnenden Zellen falsch interpretiert wird.
Ich habe alles mir mögliche versucht, dem Übeltäter auf die Spur zu kommen, bin jetzt allerdings am Ende meiner Kreativität angekommen.
Die Originaldatei (mit zusätzlichem Tabellenblatt bei dem die zu kopierenden Daten zu besseren Übersicht farblich markiert sind) und die Datei nach Ausführen des Makros sind angehängt.
Der Quellcode liegt im Modul Gebaeudestruktur. Ich habe möglichst verständlich den Code kommentiert, sollten Fragen aufkommen helfe ich gern weiter.
Originaldatei:
https://www.herber.de/bbs/user/130448.xlsm
Datei nach ausgeführtem Makro:
https://www.herber.de/bbs/user/130449.xlsm
Sollten mögliche Verbesserungen bei meinem Programmierstil auffallen bitte ich um konstruktive Kritik. Nehme ich gerne an. Priorität hat allerdings das oben beschriebene Problem.
Kommentar zur verwendeten Excel-Version: ich nutze Excel 2016.