VBA Programmierung HILFE!

Hallo,

unter diesem Link http://www.loaditup.de/556809.html habe ich mal einen Auszug aus einer Exceltabelle hochgeladen. Die originale Tablle ist knapp 100MB groß. Deshalb nur der kleine Ausschnitt… Im Original sind es auch deutlich mehr Zeilen, so an die 5000. Aber das sollte ja zunächst einmal egal sein, denn die „Berechnung“ ist immer die Gleiche.
Am Anfang gibt es halt diese Zahlenwerte in Spalte AR. Danach folgende einige Abfragen und als Ergebnis kommt dann eben in Spalte AY „Steady“ oder eben nicht. Je nach dem halt. Ich möchte die Operationen, die in den Spalten AS bis AX ablaufen durch einen VBA-Code ersetzen, da die „Zwischenergebnisse“ nicht wirklich relevant sind. Und aufgrund der Menge an Daten wird die Tabelle natürlich auch unnötig groß.

Bitte so ausführlich und simpel wie nur möglich antworten. Über einen mehr oder weniger fertigen Code würde ich mich natürlich umso mehr freuen :smile: Ich habe nämlich keine Ahnung wie ich das umsetzen soll und bin absoluter Anfänger in Sachen Programmierung.

Vielen Dank

unter diesem Link http://www.loaditup.de/556809.html habe ich

Ich
möchte die Operationen, die in den Spalten AS bis AX ablaufen
durch einen VBA-Code ersetzen, da die „Zwischenergebnisse“
nicht wirklich relevant sind.

Hallo Daniel,

nachfolgender Code macht das.
Abweichungen in AY7 liegen darin daß du da mit $AY$3 rechnest, ansonsten mit $AY$5 in AY. Was soll in AY7 eingerechnet werden.

Testen in einer Kopie deiner Mappe.

Alt+F11, Einfügen—Modul, Code reinkopieren, Editor schließen.
Makro starten mit Alt+F8…

Option Explicit
'
Sub Rechne()
Dim Zei As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
 Zei = .Cells(.Rows.Count, 7).End(xlUp).Row
 .Range("AR7:AY6000").ClearContents
 .Range("AR7:AR" & Zei).FormulaLocal = "=(G8-G7)/G7"
 .Range("AS7:AS" & Zei).FormulaLocal = "=WENN((ABS(AR7-AR8)"""");AU6+1;1)"
 .Range("AV7:AV" & Zei).FormulaLocal = "=WENN(AU7\>AU6;$A7-$A6+AV6;0)"
 .Range("AW7:AW" & Zei).FormulaLocal = "=MINUTE(AV7)"
 .Range("AX7:AX" & Zei).FormulaLocal = "=STUNDE(AV7)"
 .Range("AY7:AY" & Zei).FormulaLocal = "=WENN((AW7+60\*AX7)\>=$AY$5;""Steady"";"""")"
 .Range("AR7:AY" & Zei).Value = .Range("AR7:AY" & Zei).Value
 .Range("AS7:AX" & Zei).ClearContents
End With
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard

WOW super vielen Dank. Scheint soweit zu funktionieren. Werde ich die Tage dann noch ausführlich testen. Gehe jetzt aber erstmal ins Wochenende. Sollte etwas nicht ganz funktionieren, kann ich mich dann nochmal melden?