Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Lange dauernder Code

Lange dauernder Code
19.12.2005 22:40:29
Lorenz
Hallo Spezialisten!
Mit meinem Code dauerts verdammt lange! (bis zu 3 Minuten)
Ist es igendwie möglich ihn zu beschleunigen?
Wenn ja , wie bitte?
Mein Code: (SumNDKonsole & SumKonsole) sind benannte Formeln.

Private Sub EinsBis31()
Dim iRow As Integer, iCol As Integer
iRow = 4
For iRow = iRow To 2691
With Cells(iRow, 4)
.Formula = "=SumNDKonsole"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
For iCol = 5 To 28
With Cells(iRow, iCol)
.Formula = "=SumKonsole"
.Value = .Value
If .Value = 0 Then .Value = ""
End With
Next
Next
End Sub

Danke u. Grüße
Lorenz

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
2687 Rechenvorgänge ............
19.12.2005 22:53:17
Sonnenpeter
Hi Lorenz,
2691-4 = 2687 Rechenvorgänge in 3 Minuten ist doch super schnell?
For iRow = iRow To 2691
Gruß Sonnenpeter
AW: 2687 Rechenvorgänge ............
19.12.2005 23:00:50
Lorenz
Hi Sonnenpeter!
Dachte mir daß der Code verpfuscht ist! Mir kam die Dauer der Rechenoperationen eben sehr lange vor. (bei einem PIV 3ghz?).
Danke für die Info.
Grüße
Lorenz
AW: Lange dauernder Code
19.12.2005 22:54:37
K.Rola
Hallo,
du kannst einem ganzen Zellbereich Formeln zuordnen, diese in Werte umwandeln und Nullen durch nichts ersetzen, dauert eine Sekunde.
Gruß K.Rola
AW: Lange dauernder Code
19.12.2005 23:12:35
Lorenz
Hi K.Rola!
Ich probierte es auch so:
Dim BereichNd
Set BereichNd = Range("D5:AB2691")
For Each Cells in BereichNd ....
next
Funktionierte aber auch nicht schneller!
Grüße Lorenz
Anzeige
AW: Lange dauernder Code
19.12.2005 23:13:26
Josef
Hallo Lorenz!
Probier mal.
Private Sub EinsBis31()

On Error GoTo ErrorExit
Application.ScreenUpdating = False

With Range(Cells(4, 4), Cells(2961, 4))
  .Formula = "=SumNDKonsole"
  .Value = .Value
  .Replace 0, ""
End With

With Range(Cells(4, 5), Cells(2961, 28))
  .Formula = "=SumKonsole"
  .Value = .Value
  .Replace 0, ""
End With

ErrorExit:
Application.ScreenUpdating = True
End Sub



'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Lange dauernder Code
19.12.2005 23:18:22
K.Rola
Hallo,
damit putzt du gnadenlos alle Nullen, besser wohl so:
.Replace What:=0, replacement:="", lookat:=xlWhole
Gruß K.Rola
dafür hat's aber....
19.12.2005 23:21:57
Josef
Hallo Meisterin!
...nur eine Sekunde gedauert ;-)))
Danke für die Korrektur!
Gruß Sepp
AW: dafür hat's aber....
19.12.2005 23:28:44
K.Rola
Hallo Sepp,
nichtmal das, eine gesamte Spalte(ohne Screenupdatin = False) nur 0,13 Sekunden und
das auf meinem lahmen Notebook(Pentium 2,4GHz, 512 MB DDR SDRAM).
Gruß K.Rola
Danke an Beide :-))
19.12.2005 23:38:25
Lorenz
Hi Josef & K.Rola!!
Funktioniert jetzt suuuuuuuuuuuuuuuuuper! nicht mal mehr 3 Sekunden mit FolgeCode.
Habe beides (mit .Replace What:=0, replacement:="", lookat:=xlWhole) genutzt und verwendet!. Hat leider etwas gedauert(habe gepfuscht: statt 2691
habe ich 2961 angegeben.. somit wichtige Bezugsdaten überschrieben) also war das Ergebnis #BEZUG!.
Nochmals vielen vielen Dank!
Güße
Lorenz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige