Laufzeit eines Makros ist zu groß

Moin moinich habe um Matrixwerte zu kopieren ein Makro geschrieben, welches 2 For-Schleifen verwendet um Systematisch erst die erste Achse kopiert, dann die 2. and so on…-Dim Zeile As Long 'Zeilennummer
-Dim Spalte As Integer 'Spaltennummer

-For ze = 0 To 14 Step 1

  •  For sp = 0 To 14 Step 1
  •   Worksheets(„Rechenseite“).Cells(590 + ze, 14 + sp).Value =… Worksheets(„Darstellung“).Cells(24 - ze, 26 - sp).Value 'Formel einfügen
  •  Next
    -next

das macht er 4 mal.nur leider braucht er dafür t>30 Sekunden.Das sollte so nicht sein da ja höchstens 4 x 14² Kopieroptionen getätigt ich würde mcih freuen, würde jemand einen Fehler im Text finden.GrußAlex

das macht er 4 mal.nur leider braucht er dafür t>30
Sekunden.Das sollte so nicht sein da ja höchstens 4 x 14²
Kopieroptionen getätigt ich würde mcih freuen, würde jemand
einen Fehler im Text finden.GrußAlex

Hallo Alex,

klicke bitte auf deinen anderen Beitrag, rechts unten ist ein Button, damit kannste ihn selbst löschen.

Ich komm zwar auf 4 x 15² Vorgänge aber das ist ja unerheblich.
Wenn ich im nachfolgenden Code die Prozedur „test“ laufen lasse so wird mir 0,46 oder 0,34 sek angezeigt, je nachdem ob ich .Screenupdating benutze oder nicht.

Interessanterweise dauert es länger (0,46) wenn ich .screenupdating = False setzte *rätsel*

Welche Zeit wird bei dir angezeigt? Echt >30 sec?

Kann es sein daß da ein oder mehr Programme in deinem Windows (welche Version, genauso wie Excelversion?) massivst deine CPU in Anspruch nehmen?

Gruß
Reinhard

Option Explicit

Sub test()
Dim T As Single
T = Timer
Application.ScreenUpdating = False
Call Spiegelung\_Berechnen\_01
Call Spiegelung\_Berechnen\_01
Call Spiegelung\_Berechnen\_01
Call Spiegelung\_Berechnen\_01
Application.ScreenUpdating = True
MsgBox Timer - T
End Sub

Sub Spiegelung\_Berechnen\_01()
Dim Ze As Long 'Zeilennummer
Dim Sp As Long 'Spaltennummer
For Ze = 0 To 14 Step 1
 For Sp = 0 To 14 Step 1
 Worksheets("Tabelle1").Cells(590 + Ze, 14 + Sp).Value = Worksheets("Tabelle2").Cells(24 - Ze, 26 - Sp).Value 'Formel einfügen
 Next
Next
End Sub