VBA - For Schleife extrem langsam
23.09.2021 19:17:18
Manuel
ich durchsuche jetzt seit längerer Zeit Google und diverse Foren, bin aber noch nicht fündig geworden. Mit folgendem Code will ich meine Zeilen in der Tabelle mit Farben versehen. Das funktioniert soweit auch gut, bremst das Makro aber tierisch aus. Kleinere Tabellen sind damit kein Problem, bei Tabellen mit >2.000 Zeilen kann es aber schonmal dauern.
Habe jetzt überlegt die bedingte Formatierung zu nutzen, aber ich hätte an sich gerne fixe Farben, da sich die Werte nicht mehr ändern. Jetzt hoffe ich ihr könnt helfen.
Hier der Code in Kurzversion (es gibt 13 Farben):
For aktuelleZeileNLSim = ErsteZeileNLSimAL To letzteZeileNLSim
If wsNLSim.Cells(aktuelleZeileNLSim, SpalteNachlassgruppe).Value = "B1" Then
wsNLSim.Range(Cells(aktuelleZeileNLSim, ErsteSpalteNLSimPrAL), Cells(aktuelleZeileNLSim, LetzteSpalteNLSimPrAL)).Interior.Color = wsNLSim.Cells(40, 4).Interior.Color
wsNLSim.Range(Cells(aktuelleZeileNLSim, ErsteSpalteNLSimConAL), Cells(aktuelleZeileNLSim, LetzteSpalteNLSimConAL)).Interior.Color = wsNLSim.Cells(40, 4).Interior.Color
ElseIf wsNLSim.Cells(aktuelleZeileNLSim, SpalteNachlassgruppe).Value = "B2" Then
wsNLSim.Range(Cells(aktuelleZeileNLSim, ErsteSpalteNLSimPrAL), Cells(aktuelleZeileNLSim, LetzteSpalteNLSimPrAL)).Interior.Color = wsNLSim.Cells(41, 4).Interior.Color
wsNLSim.Range(Cells(aktuelleZeileNLSim, ErsteSpalteNLSimConAL), Cells(aktuelleZeileNLSim, LetzteSpalteNLSimConAL)).Interior.Color = wsNLSim.Cells(41, 4).Interior.Color
Else
wsNLSim.Range(Cells(aktuelleZeileNLSim, ErsteSpalteNLSimPrAL), Cells(aktuelleZeileNLSim, LetzteSpalteNLSimPrAL)).Interior.Color = wsNLSim.Cells(52, 4).Interior.Color
wsNLSim.Range(Cells(aktuelleZeileNLSim, ErsteSpalteNLSimConAL), Cells(aktuelleZeileNLSim, LetzteSpalteNLSimConAL)).Interior.Color = wsNLSim.Cells(52, 4).Interior.Color
End If
Next aktuelleZeileNLSim
Falls ihr mehr Infos oder Code braucht, dann gerne Bescheid sagen.Vielen Dank für Eure Hilfe vorab.
Liebe Grüße,
Manuel