Code sehr langsam, warum?
Dietmar
ich habe einen Code für die Ein- oder Ausblendung von Zeilen zusammengestellt, der auch funktioniert, aber ungewöhnlich langsam ist. Ziel ist die spezifische Darstellung von Zeilen, die eine ganz bestimmte Art von Artikeln aufführen. Damit man zielgerichtet das sieht, was man sehen will, habe ich diese Comboboxauswahl geschaffen
Folgende Schritte habe ich vorgenommen:
- zuerst werden alle Zeilen zwischen 4 und 397 eingebendet
- anschließend erfolgt eine Prüfung, welcher Wert in Zeile 559 Spalte 191 steht. Diese Prüfung hat etwas mit einer Berechtigung zu tun, die ich darüber steuere (es gibt die Berechtigungen 1, 2 und 3). Der Wert ist ein Bezug aus einem anderen Tabellenblatt
- je nach Auswahl der Combobox werden dann die Einträge in Spalte 3 überprüft. Dort stehen Angaben, die Produktarten aus Spalte A bezeichnen
Ohne, dass ich den Code im einzelnen erläutere: Erkennt jemand einen groben Schnitzer?
Vielen Dank vorab!
Dietmar aus Aachen
Private Sub Combobox2_Change()
Application.ScreenUpdating = False
Rows("4:397").EntireRow.Hidden = False
Select Case Combobox2.Value
Dim i As Integer
Case "Normales_Treffen"
For i = 4 To 397
If Cells(i, 3).Value "normal" And Cells(i, 3).Value "PV" And Cells(i, 3).Value "Brosch" _
Then
Rows(i).Hidden = True
End If
Next i
'Application.ScreenUpdating = True
'Range("A1").Select
'Exit Sub
Case "AtWork_Treffen"
For i = 4 To 397
If Cells(559, 191).Value 3 Then
Rows("4:397").EntireRow.Hidden = True
MsgBox "Die Ansicht von AtWork-Treffen ist nicht freigegeben. Sie benötigen dazu die _
Premium-Version von MLC2010"
Exit Sub
Else
If Cells(i, 3).Value "AtWork" And Cells(i, 3).Value "PV" And Cells(i, 3).Value " _
Brosch" Then
Rows(i).Hidden = True
End If
End If
Next i
Case "O2O_Treffen"
For i = 4 To 397
If Cells(559, 191).Value 3 Then
Rows("4:397").EntireRow.Hidden = True
MsgBox "Die Ansicht von O2O-Einzelbetreuungen ist nicht freigegeben. Sie benötigen dazu die _
Premium-Version von MLC2010."
Exit Sub
Else
If Cells(i, 3).Value "O2O" And Cells(i, 3).Value "PV" And Cells(i, 3).Value " _
Brosch" Then
Rows(i).Hidden = True
End If
End If
Next i
Case "unbelegt"
For i = 4 To 397
If Cells(i, 3).Value "unbelegt" And Cells(i, 3).Value "PV" And Cells(i, 3).Value " _
Brosch" Then
Rows(i).Hidden = True
End If
Next i
Case "Produkte"
For i = 4 To 397
If Cells(i, 3).Value "PV" Then
Rows(i).Hidden = True
End If
Next i
Case "Broschüren"
For i = 4 To 397
If Cells(i, 3).Value "Brosch" Then
Rows(i).Hidden = True
End If
Next i
Case "Produkte_Broschüren"
For i = 4 To 397
If Cells(i, 3).Value "PV" And Cells(i, 3).Value "Brosch" Then
Rows(i).Hidden = True
End If
Next i
Case "Alle Daten incl. Leerzeilen"
For i = 4 To 397
If Cells(559, 191).Value 3 Then
Rows("4:397").EntireRow.Hidden = True
MsgBox "Die Ansicht von Aller Zeilen ist nicht freigegeben. Sie benötigen dazu die Premium- _
Version von MLC2010"
Exit Sub
Else
If Cells(i, 3).Value "" And Cells(i, 3).Value = "" Then
Rows(i).Hidden = True
End If
End If
Next i
End Select
Application.ScreenUpdating = True
End Sub