VBA Code zulangsam
09.04.2020 11:50:28
Sven
Ich habe folgenden VBA Code der aber sehr langsam ist.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle As Range
Dim a As Variant
Dim b As Variant
For Each Zelle In ActiveSheet.Range("Stunden")
a = Zelle.Offset(0, 1).Value
b = Zelle.Offset(0, 2).Value
'If a = "" Or IsNumeric(a) = False and b = "" Or IsNumeric(b) = False Then
If a = "" Or b = "" Then
Zelle.Value = ""
Else
If Zelle.Value = "" Then Zelle.Formula = "=(RC[2]-RC[1])*24"
End If
Next Zelle
End Sub
Es soll eine Formel in die Zelle geschrieben werden wenn die beiden Zellen Rechts daneben nicht leer sind.
Beispiel: auf dem "Januar" Tabellenblatt W4 = (Y4-X4)*24
So das wenn ich dort Stunden eingaben mache mir in der Ziel Zelle das Ergebnis angezeigt wird. Ich aber auch eine manuelle Eingabe machen kann. Ohne das mir die Formel durch die Eingabe verloren geht.
"Stunden" ist eine Range von W4:W26 also eine Range von 23 Zellen.
Diese Range soll aber auch ca 1000 Zellen wachsen.
Jetzt habe ich folgendes Problem das die Schleife bei den 23 Zeilen schon ziemlich langsam ist.
Ich denke das eventuell hier das Problem liegt da bei jedem klick der Code duurchlaufen wird.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Kann mir da vielleicht jemand einen Tip geben das ich den Code nutzten kann.
mfg
Sven
https://www.herber.de/bbs/user/136560.xlsm