Also das ist mein zweites Problem was ich hier ins Forum schreibe und es ist ein anderes, also nein, du hast mir dazu noch nichts raten können.
Die Überschrift passt.
Meine Projekte sind listenförmig. Jede Überschrift mit dem Namen des Projektes ist die 1 und dann kommen noch 10 weiter Punkte mit IST, SOLL, Abweichung und dem ganzen Muß. In Zeile 1 steht die Projektnummer und in den 10 Zeilen danach auch.
Dann kommt natlos das nächste Projekt mit seinen insgesamt 11 Zeilen. So unterscheide ich den Bereich um den es sich pro Aufruf des Makros handelt. Per Rechtsklick kommt der Name des Makros in die Liste des Popup-Menüs. Mit activecell.row weis ich um welches Projekt es sich handelt. Das Makro im Rechtsklickmenü heißt dementsprechend "-jeweilige Projektnummer- aktualisieren". Das Makro geht dann die Zeilen mit Projekten durch und findet die erste Zeile des Projektes wo ich gerade aktualisieren will. meine Aktualisierung bezieht sich auf die dritte bis elfte Zeile jedes Projekt.
Ich weis also gefundene Zeile + 2 bis gefundene Zeile + 10 sind meine Grenzen für das Array (die Spalten hab ich natürlich auch).
Damit ist es dann egal in welchem Projekt ich rumklicker und welches ich aktualisieren will, es ist immer das wo der Kursor gerade steht.
Ich lese den Bereich ein und arbeite die einzelnen Zeilen so ab wie ich es brauche und speicher das in einem Array der selben Größe. Den Bereich den ich vorher eingelesen habe überschreibe ich mit dem erzeugten Array mit meinen Änderungen. So kann ich mir einen haufen Formeln sparen, die die Mappe sonst ausbremsen.
Und das klappt solange man nicht filtert. Der Filter würde mir z.B. alle Zeilen 3 von allen Bauvorhaben auswerfen (wenn ich so wähle) und somit kann ich die zeitliche Abfolge und Überschneidungen der Projekte super sehen.
Wenn sich was überschneidet dann ändert man das. Dann müssen auch Termine in anderen Zeilen dieses Projekts, wo was geändert wurde, aktualisiert werden. Vom handling wird niemand den Filter zurücksetzten, die Projektdaten aktualisieren und den Filter wieder setzen.
Man wird gleich rechtsklick machen und das Projekt aktualisieren. Und das funktioniert dann nicht. Das Makro ermittelt zwar trotzdem den Bereich pro Projekt, den ich im Array haben will und liest das auch korrekt ein, egal ob das gefilterte Zeilen sind oder nicht. Nur die Ausgabe in eben gaunau die selben Zeilen, den selben Bereich funktioniert mit den ausgeblendeten/gefilterten Zeilen nicht.
Und das ist das Problem.
Jemand hatte von Areas angefangen, dass ich die beachten muss. Ansonsten sind die mir egal, wenn die nicht zur Lösung des Problems beitragen. Und wenn die Areas das Problem selbst sind und ich die dann auch wieder ermitteln muss, dann ok, dann ist das die Lösung mit der ich nichts anfangen kann, weils mir dann zu kompliziert wird. Dann erstelle ich mir lieber 9 Arrays, die dann nur eine Zeile des Bereichs abdecken und geb dann die Zeilenweise wieder zurück bzw. hab ich es jetzt so gemacht. Ist aber noch immer nicht des Pudels Kern warum sich Excel da so doof hat.
Ich hab noch einen Bereich wo die Projekte zeilenweise untereinander stehen für die Liefertermine. Ist auch wieder ein zusammenhängender Bereich aber hier geht die Lösung pro Zeile ein Array nicht, denn es sind ja nicht immer gleich viele Projekte sondern ist ein kommen und gehen alle par Monate. Aber wenn ich einen Filter nutze dann filtert es die Liefertermine gleich mit und damit hab ich wieder einen gefilterten Bereich in den ein Array als Block geschrieben wird, was ja nicht funktiniert. Da muss ich noch etwas grübeln, wenn es keine Lösung oder Erklärung dieses Phänomens gibt.
Ich weis nicht ob es sinnvoll ist sich die Einstellungen des Filters zu merken, den Filter per Makro zurückzusetzen, die Daten zu überschreiben und dann den Filter wieder zu setzen.
...
Ich wünsch dir jedenfalls noch einen schönen Urlaub.
|