Makro das Formeln und Zeilen kopiert

Bild

Betrifft: Makro das Formeln und Zeilen kopiert
von: Jenny
Geschrieben am: 30.11.2015 10:15:31

Hallo ihr lieben,
wäre lieb von euch, wenn jemand von euch mit einem kleinen Makro aushilft.
Es geht um folgendes, eine Tabelle 1 von Spalte A bis N, z.Zt. ca. 62000 Zeilen, die werden aber im Laufe der Zeit weniger.
Ich habe aufgrund der Berechnungszeiten der Tabelle meine Formeln nur in der ersten Zeile stehen und in den anderen Zeilen die Werte eingefügt.
Ich würde mich freuen wenn das Makro folgendes macht:
1. Tabelle 1 nach C aufsteigend, G absteigend sortiert.
2. Die Formeln aus Tabelle 1 Zeile 1 (Spalten B-D und H-M, die anderen Spalten haben keine Formeln) bis ans Ende der Tabelle kopiert
3. von Tabelle 1 Zeile 2 an bis ans Ende die neu berechneten Werte statt den Formeln einfügt.
4. Den Inhalt der Tabelle 6 leert
5. Alle Zeilen aus Tabelle 1 in Tabelle 6 kopiert, in denen in Spalte L eine Zahl kleiner gleich 30 steht.
6. Duplikate in Tabelle 6 entfernt (bezogen auf Spalte A).
Wäre sowas machbar? Würd mich jedenfalls sehr freuen.
VG
Jenny

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: fcs
Geschrieben am: 30.11.2015 12:02:47
Hallo Jenny,
das war jetzt eine kleine Programmier-Fleißarbeit.
https://www.herber.de/bbs/user/101896.txt
Bei 62000 Zeilen kann die Laufzeit je nach Komplexität der kopierten Formeln schon erheblich sein.
Gruß
Franz

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: Jenny
Geschrieben am: 30.11.2015 12:26:46
Hallo Franz,
vielen Dank.
das war ja der Sinn der dahintergesteckt hat,
eben wegen der Laufzeit ein Makro machen, weil wenn ich es von Hand mache, ich bei jedem Schritt warten muss bis er abgeschlossen ist.
Ich fange dann mal an zu testen. Hätte nicht gedacht, dass das so aufwendig ist, das Makro zu erstellen, tut mir leid.
Aber wenn du schon sagst das wäre mit langer Laufzeit verbunden, mir ist aufgefallen, dass es mir reicht wenn die Spalten A-C und N nach Tabelle 6 kopiert würden, würde das denn eventuell was nutzen?
Bzw. auch wenn es nicht allzuviel bringen würde wärest du trotzdem so nett und änderst das Makro entsprechend ab?
Oder wäre es nicht evtl. vom Ausführen schneller wenn man die komplette Tabelle nach Tabelle6 kopiert und dann alle Zeilen mit Zahl größer 30 und Leerzellen in Spalte L löscht? und dann noch die Spalten D-M?
Viele Grüße
Jenny

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: Jenny
Geschrieben am: 30.11.2015 12:38:29
bekomme nen Laufzeitfehler 1004
bei


      With .Range(.Cells(2, 8), .Cells(Zeile_L, 13))
        .Value = .Value
bzw. die zweite Zeile davon wird markiert

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: Jenny
Geschrieben am: 30.11.2015 12:49:50
kann das irgendwie damit zusammen hängen, dass die Formel in H1=WENN(G1<>"";DATEDIF(G1;C1;"Y");"")
in H2 #ZAHL! ausgibt, da in G1 kein Datum sondern die Zahl -3545 steht? Weil genau bis hierhin hat er noch Werte eingefügt.
bzw. selbes Problem in H6, da G6=-243?
Das wäre allerdings von mir so gewollt gewesen und hat auch wenn ich den Bereich H2:M62635 markiere, kopiere und Werte einfüge nie ein Problem gemacht.
Gruß
Jenny
Das einzige was mir alternativ noch einfallen würde ist in den Zellen in denen bewusst Fehlermeldungen kommen (H2:J2, H6:J6, K31:K33) vom kopieren der Formeln und einfügen der Werte auszunehmen. Oder hast du noch eine andere Idee?

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: fcs
Geschrieben am: 30.11.2015 14:50:01
Hallo Jenny,
ersetzte

        .Value = .Value

durch
        .Copy
        .PasteSpecial Paste:=xlPasteValues

dann solte dass Problem mit mit der Fehlermeldung behoben sein.
Alternativ könnte man in die Formeln "WENNFEHLER" einbauen und dann geignete (unsinnige) Werte anzeigen statt Fehlerwerten.
Dadurch das die Berechnung auf "manuell" eingestellt wird, muss die Tabelle nur einmal berechnet werden, nachdem alle Formeln kopiert sind. Das sollte schneller funktionieren, als wenn du von Hand anfängst zu kopieren bei automatischer Berechnung.
Problematisch sind hier Funktionen, wie SVERWEIS, VERGLEICH oder auch Matrix-Formeln oder auch akkumulierende Summenberechnungen.
Einzelne Spalten zu kopieren bringt nur etwas, wenn vorher nicht gerechnet werden muss.
Gruß
Franz

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: Jenny
Geschrieben am: 30.11.2015 20:48:54
Hallo Franz,
ja hat mit dem Ausführen des Makros ein wenig gedauert.
Im Großen und ganzen funktioniert es, aber ein paar Kleinigkeiten sind mir noch aufgefallen,
die Reihenfolge der Zeilen in Tabelle 6 hat sich rumgedreht, also die Zeile die in Tabelle 1 die letzte mit einer Zahl kleiner gleich 30 ist ist jetzt in Tabelle 6 die erste.
Und außerdem, bekommen wir das noch hin, dass die Spalten E bis M gelöscht werden?
Ich weiß letztes mal stand da D-M, aber E-M ist richtig.
Gruß
Jenny

Bild

Betrifft: AW: Makro das Formeln und Zeilen kopiert
von: fcs
Geschrieben am: 01.12.2015 01:34:20
Hallo Jenny,
ich hab das Makro angepasst, so dass die Reihenfolge in den beiden Tabellenblättern identisch ist.
Dazu musste ich eine weitere Hilfsspalte einbauen, in der temporär die Zeilennummer eingetragen ist, und die Sortierungen anpassen.
Die Spalten E:M werden zum Schluss ebenfalls gelöscht.
https://www.herber.de/bbs/user/101917.txt
Gruß
Franz

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro das Formeln und Zeilen kopiert"