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

MAX- u. MIN-Werte sich ändernder Zellen festhalten

MAX- u. MIN-Werte sich ändernder Zellen festhalten
19.02.2015 13:55:12
Fabian
Hallo zusammen,
ich habe ein Performance-Problem:
Die folgende Prozedur soll die MIN und MAX-Werte aus 2 Zeilen festhalten, während sie ständig durch anderen VBA-Code geändert werden. Es werden max. 600 Spalten mit Werten gefüllt sein. Da der gezeigte Code mehrere hundert Mal ausgeführt wird, dauert das ganze sehr lang. Habt ihr eine Idee, wie ich das beschleunigen kann?
Hier der Code:
Sub Biegespannung_MIN_MAX()
Dim x As Integer
x = 0
With Worksheets("Biegebalken")
Do Until Worksheets("Biegebalken").Cells(35, x + 3).Value = ""
If .Cells(35, x + 3).Value >= .Cells(37, x + 3).Value Then
.Cells(37, x + 3).Value = .Cells(35, x + 3).Value
End If
If .Cells(35, x + 3).Value = .Cells(39, x + 3).Value Then
.Cells(39, x + 3).Value = .Cells(36, x + 3).Value
End If
If .Cells(36, x + 3).Value 

Danke für die Hilfe im Voraus
Fabian

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MAX- u. MIN-Werte sich ändernder Zellen festhalten
19.02.2015 14:00:49
UweD
Hi
hilft das schon?
Sub Biegespannung_MIN_MAX()
Dim x As Integer
x = 0
Application.ScreenUpdating = False
Gruß UweD

AW: MAX- u. MIN-Werte sich ändernder Zellen festhalten
19.02.2015 15:14:32
Fabian
Immerhin 25% schneller ist es schon mal, danke!
Aber da geht doch sicher noch mehr, oder? ;-)
Wäre es möglich statt immer Zellen mit Werten zu füllen, das ganze z.b. in einem Array zu sammeln und am Ende Prozedur reinzuschreiben? Würde das was bringen?

Array in Tabelle schreiben
19.02.2015 15:59:21
Erich
Hi Fabian,
ja, das sollte schon einigen Zeitgewinn bringen. Probier mal (ungetestet!)

Sub Biegespannung_MIN_MAX2()
Dim lngQ As Long, arQ, cc As Long, arW
cc = 0
With Worksheets("Biegebalken")
lngQ = .Cells(35, .Columns.Count).End(xlToLeft).Column
arQ = Range(.Cells(35, 3), .Cells(36, lngQ)).Value
arW = Range(.Cells(37, 3), .Cells(40, lngQ)).Value
For cc = 1 To lngQ - 2
If arQ(1, cc) >= arW(1, cc) Then arW(1, cc) = arQ(1, cc)
If arQ(1, cc) = arW(3, cc) Then arW(3, cc) = arQ(2, cc)
If arQ(2, cc) 
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: MAX- u. MIN-Werte sich ändernder Zellen festhalten
19.02.2015 15:54:48
Fabian
Hab's geschafft. Wenn ich die Daten erst in Arrays lade, diese per Schleife vergleiche und dann wieder in die Tabelle schreibe, geht es um ein Vielfaches schneller!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige