Einfaches Makro schneller machen
09.05.2017 16:34:46
Gerd
ich möchte gerne in zwei Tabellen, deren Inhalt sich täglich ändert, bestimmte Werte suchen und bei den entsprechenden Zellen den Hintergrund grau färben + den jeweiligen Wert in die erste Spalte der Tabellen schreiben.
Ich verwende dazu folgenden Ansatz, der auch wie geplant funktioniert.
Leider braucht das Makro dafür über eine Minute, was mir für eine solche Aktion sehr lange vorkommt (zudem ist es nur Teil eines größeren Makros).
Beide Tabellen sind nicht groß und enthalten nur ca. 500 bzw. 100 Werte.
Kann mir jemand sagen, wie man hier Zeit sparen oder den Code effektiver schreiben kann ?
Mein Code:
Sub PrepareRankRecords(varMode As String)
Call RankRecords(varMode, 10000)
Call RankRecords(varMode, 5000)
Call RankRecords(varMode, 2000)
Call RankRecords(varMode, 1500)
Call RankRecords(varMode, 1000)
Call RankRecords(varMode, 500)
End Sub
Sub RankRecords(varMode As String, varRank As Integer)
Dim cell As Range, varRange As Range
If varMode = "DSP" Then
' table AE:AJ
Application.StatusBar = "90 % - Ranking table AE:AJ"
DoEvents
Set varRange = Range("$AI$3", Cells(Rows.Count, "AI").End(xlUp)).Cells
Else
' table X:AC
Application.StatusBar = "60 % - Ranking table X:AC"
DoEvents
Set varRange = Range("$AB$3", Cells(Rows.Count, "AB").End(xlUp)).Cells
End If
With Worksheets(4)
For Each cell In varRange
If cell.Offset(0, -3).Value "" Then
If cell.Value
Vielen Dank im Voraus für Eure Hilfe. VG,
Gerd