Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1644to1648
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

Variierende Summen kopieren

Variierende Summen kopieren
12.09.2018 15:14:00
marco
Hallo Zusammen,
ich habe hier bereits einmal großartige Hilfe bekommen, weshalb ich mich nochmal voller Hoffnung an Euch wende.
Ich habe folgende Testdatei erstellt, anhand der meine Frage hoffentlich verständlich wird.
https://www.herber.de/bbs/user/123892.xlsx
Was habe ich bisher:
Über eine Makse in einem anderen Reiter werden verschiedene Textbausteine in den Reiter "Datengrundlage" kopiert.
Es werden immer ganze "Blöcke" kopiert:
1. Block: A4:CB8
2. Block: A9:CB16
usw.
Wie viele Zeilen ein Block hat/haben wird ist nicht vorhersehbar. Die Blöcke werden einfach im Ganzen untereinander kopiert. ("Gehe zur letzten befüllten Zelle in Spalte "L", dann nochmal eine Zeile runter und ganz nach links, dann kopiere alles rein")
Der Aufbau der Texte ist immer gleich:
Hauptinformation: A4:J4 bzw. Hauptinformation: A9:J9 usw.
Weiterführende Info: K4:CB8 bzw. Weiterführende Info: K9:CB16 usw.
Für jede der 17 Überschriften gibt es 3 relevante Kategorien: "+", "-", "k.A." unter denen eine "1" stehen kann.
Was ich benötige:
Ich versuche nun einen Code zu schreiben, der Folgendes kann:
1.) Im Reiter "Summe" sollte in A4:J4 der Inhalt aus "Datengrundlage" A4:J4 kopiert werden.
in A5:J5 der Inhalt aus "Datengrundlage" A9:J9 kopiert werden
usw.
2.) Im Reiter "Summe" sollte unter jeder Überschrift 1-17 und jeder Kategorie ("+", "-", "k.A.") die Summe der 1er gebildet werden, die im Reiter "Datenrgundlagen" unter der jew. Kategorie/Überschrift stehen.
Wichtig zu wissen:
Im Reiter "Datengrundlage" in Spalte "K" werden Daten stehen ("Test A" / "Test B" usw.), sie ich immer mal wieder händisch/einzeln/manuell bearbeiten werde:
Dabei werde ich beispielsweise den Inhalt aus "Datengrundlage - K6" ausschneiden und ihn dafür in M6 kopieren. Dies hat wiederum zur Folge, dass ich manuell die "1" aus P6 lösche und entweder bei N6 oder O6 eine 1 eintragen werden.
Wenn ich dies tue, müssten sich unbedingt die Summen im Reiter "Summe" unter der Überschrift 1 ändern.
Am besten wäre also, dass ich das Makro auf einem Baustein zuweise, der "Summenberechnung aktualisieren" heißt oder so.
Parallel werden natürlich weiterhin Datenblöcke über die Maske mit Hilfe eines Makros aus einem anderen Reiter in den Reiter "Datengrundlage" unter die bestehenden Blöcke kopiert.
Diese neuen Daten müssten dann mit dem nächsten Klick auf "Summenberechnung aktualisieren" in den Reiter "Summe" übertragen und summiert werden.
Ich hoffe ich konnte euch meine Problemstellung verständlich erläutern.
Ich komme leider beim besten Willen nicht drauf,wie ich das machen soll und würde mich sehr über eure Hilfe freuen.
Vielen Dank und liebe Grüße
Marco

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Areas?
12.09.2018 15:31:45
Fennek
Hallo,
auch wenn du dir beim Erstellen der Daten Mühe gegeben hast, ich konnte es nicht nachvollziehen.
Wenn die Blöcke wie in der Datei gezeigt eine Zeile mit Text und getrennt mit Leerzellen sind, kann man mit Columns(1).specialcells() darauf zugreifen:

for each ar in activesheet.usedrange.columns(1).specialcells(xlCellTypeBlanks).areas
'die Texte stehen in ar.cells(1).offset(-1)
next ar
Hilft das?
mfg
AW: Areas?
12.09.2018 16:16:59
marco
Hallo,
vielen Dank für die schnelle Antwort.
Leider verstehe ich deine Antwort nicht. :(
Mein Ziel ist ja Folgendes:
Im Reiter "Summe" soll in K4 die Summe aus dem Bereich N4:N8 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in L4 die Summe aus dem Bereich O4:O8 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in M4 die Summe aus dem Bereich P4:P8 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in N4 die Summe aus dem Bereich R4:R8 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in O4 die Summe aus dem Bereich S4:S8 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in P4 die Summe aus dem Bereich T4:T8 aus "Datengrundlage" berechnet werden.
usw....das wäre dann die Auswertung des 1. Blocks ("A4:CB8" aus "Datengrundlage")
Anschließend muss der 2.Block ausgewertet werden:
Im Reiter "Summe" soll in K5 die Summe aus dem Bereich N9:N16 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in L5 die Summe aus dem Bereich O9:O16 aus "Datengrundlage" berechnet werden.
Im Reiter "Summe" soll in M5 die Summe aus dem Bereich P9:P16 aus "Datengrundlage" berechnet werden.
usw...das wäre dann die Auswertung des 2. Blocks ("A9:CB16" aus "Datengrundlage")
Dann kommt der nächste Block usw...
Die neuen Blöcke (entspricht einfach nur Text) kommen über ein Makro in den Reiter "Datengrundlage" und werden automatisch unterhalb des letzten Blocks reinkopiert - das klappt alles sehr gut.
Nun müsste es eben nur mit Hilfe eines weitern Makros klappen, dass der neue Block "verarbeitet" wird.
In meiner Excel würde der neue Block dann "Beispiel D" heißen und wird aus einer Maske in "Datengrundlage - D19:CB?" kopiert. CB?, weil es eben beliebig viele Zeilen sein können.
1.) Das Makro muss also die Daten D19:J19 aus "Datengrundlage" nach A7:J7 "Summe" kopieren.
2.) Anschließend muss in "Summe - K7" die Summe aus den 1ern in "Datengrundlage - N19:N?" gebildet werden.
Das ganze dann eben für alle 3 Kategorien (+/-/k.A.) der 17 Überschriften.
SChwierig ist, dass es eben in jedem neu dazukommenden Block beliebig viele Zeilen sein können und ich somit nicht weiß, wie "weit runter" meine Summe gebildet werden muss.
Verstehst du nun mein Problem etwas besserß
Viele Grüße und Dank für die Zeit
Marco
Anzeige
AW: 5 Min?
12.09.2018 16:27:40
Fennek
Hallo,
der gezeigte Code liefert die Zeilennummern der Blöcke, egal wie groß die Blöcke sind. Die Summenbildung passiert anschließend.
Ich bewerte jede Frage mit einer Zeit, die ich daruaf verwenden möchte (0 - x). Bei dir i.M. 5 Minuten, die bereits aufgebraucht sind. Erzähle ml, worum es geht, vielleicht wird es dann für mich interessanter.
mfg
AW: wäre evtl. auch mit Formeln lösbar ...
12.09.2018 16:30:09
neopa
Hallo Marco,
... wenn es keine Massendatenauswertung ist (also z.B. weniger als tausend Datensätze in "Datengrundlage). Dann reichen wie ich es bisher interpretiert habe 4 Formeln aus.
In Summe!A4: =WENNFEHLER(INDEX(Datengrundlage!A:A;
AGGREGAT(15;6;ZEILE(A$4:A$99)/(Datengrundlage!A$4:A$99"");ZEILE(A1)));"")
und nach rechts unten unten kopieren.
In Summe!K4: =WENN(L4="";"";L4) nach unten unten kopieren
In Summe!L4: =WENN(A4="";"";INDEX(Datengrundlage!L:L;VERGLEICH(A4;Datengrundlage!A:A;0)))
nach unten unten kopieren
In Summe!M4: =WENN(M$3="TF";$L4;ZÄHLENWENNS(INDEX(Datengrundlage!I:L;;VERGLEICH("TF";
Datengrundlage!I$3:L$3;0));INDEX($A4:L4;SPALTE()-REST(SPALTE()-1;4));Datengrundlage!M:M;1))

nach unten und rechts unten kopieren.
Gruß Werner
.. , - ...
Anzeige
AW: ergänzende Anmerkungen ...
12.09.2018 16:44:46
neopa
Hallo,
... wenn Du Deine Daten in der Datengrundlage zu einer "intelligenten" Tabelle wandelst (würde eine zusätzliche Zeile zwischen (jetzt Zeile Nr 3 und 4) erfordern) können die Formel für A4, L4 und M4 dafür definiert werden, was die Auswertungsgeschwindigkeit steigert und anderseits die Formeln sich automatisch an nachträgliche Datenerweiterungen anpassen.
Wenn die Daten in A:J immer die gleichen sind, sollte ab Spalte B einfach =A4 eingesetzt werden. Wenn es verschieden Datenwerte sind, könnte man mit einer Hilfsspalte in Datengrundlage die Auswertungsgeschwindigkeit für A:J und einer entsprechend einfacheren Formel in A4 die Auswertungsgeschwindigkeit auch weiter steigern.
Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige