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

For each rngc - beschleunigen

For each rngc - beschleunigen
05.01.2014 17:46:49
Dietmar
Hallo in die Runde,
wie kann ich folgende Function beschleunigen?
Es werden 100 Spalten auf 400 Zeilen durchgerechnet. Das dauert relativ lange.
Function Lagerbuchung(Buchungsbereich As Range)
Dim rngc As Range
For Each rngc In Buchungsbereich
With rngc
.Value = .Value + 0 'damit leere Zellen einen Zahlenwert haben
.Value = .Offset(, 2).Value - .Offset(, 3).Value + .Value
.Offset(, 2).Value = 0  'Eintragungen löschen
.Offset(, 3).Value = 0  'Eintragungen löschen
End With
Next
End Function

Meine Idee: Eine Prüfung reinsetzen, so dass nur Buchungsbereiche durchgerechnet werden, die auch Werte drinstehen haben.
Mit folgender If-Klammer hat sich in Richtung Beschleunigung leider nichts getan
Ff rngc.Offset(, 2).Value Jemand ein bessere Idee?
Vielen Dank!
Dietmar aus Aachen

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For each rngc - beschleunigen
05.01.2014 20:47:07
Uduuh
Hallo,
1. Functions dienen normalerweise dazu Werte zurückzugeben,nicht Aktionen durchzuführen.
2. Application.ScreenUpdating =False hilft immer.
3. Die Auslagerung und Berechnung in einem Array beschleunigt extrem.
Sub Lagerbuchung(Buchungsbereich As Range)
Dim Arr1, Arr2
Dim i As Long
Application.ScreenUpdating = False
Arr1 = Buchungsbereich
Arr2 = Buchungsbereich.Offset(, 2).Resize(, 2)
For i = 1 To UBound(Arr1)
Arr1(i, 1) = Arr1(i, 1) + Arr2(i, 1) - Arr2(i, 2)
Arr2(i, 1) = 0
Arr2(i, 2) = 0
Next
With Buchungsbereich
.Value = Arr1
.Offset(, 2).Resize(, 2) = Arr2
End With
End Sub

Gruß aus’m Pott
Udo

Anzeige
Vielen Dank ... ich teste
06.01.2014 01:28:34
Dietmar
Hallo Udo,
da muss ich aber erst mal ne Runde drüber grübeln und es austesten, denn den Code durchschaue ich noch nicht so richtig.
Ich bin gespannt wie flott er ist und melde mich dann.
Danke und eine gute Woche!
Dietmar

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige