Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

For each rngc - beschleunigen

Forumthread: 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

Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige