Durchlauf dauert zu lange - Optimierung?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Durchlauf dauert zu lange - Optimierung?
von: Dennis
Geschrieben am: 07.08.2015 10:51:34

Hallo,
ich habe folgenden Code:

If (Target.Column > 2 And Target.Column < 13 And Target.Row > 2 And Target.Row < 13) Then
Dim rng As Range
Dim rngC As Range
Dim IntC As Integer
Set rng = Range("C3:L12")
For Each rngC In rng
    If rngC = "X" Then
        IntC = IntC + 1
    End If
Next
If IntC = 30 Then
MsgBox "Text", vbOKOnly + vbInformation, "Info"
End If
End If
Die Funktion soll den Bereich nach dem Wert "X" absuchen. Ist 30x "X" erreicht, so soll eine Msgbox aufgehen.
Die Funktion ist in einem Changeevent eingebettet und lädt leider zu lange.
Gibt es eine Möglichkeit, die Funktion schneller durchlaufen zu lassen?
Danke, Dennis

Bild

Betrifft: AW: Durchlauf dauert zu lange - Optimierung?
von: Sepp
Geschrieben am: 07.08.2015 10:54:52
Hallo Dennis,
und was soll das ganze bewirken?
wieso nicht einfach

intC = Application.CountIf(Range("C3:L12"), "X")
Gruß Sepp


Bild

Betrifft: AW: Durchlauf dauert zu lange - Optimierung?
von: Dennis
Geschrieben am: 07.08.2015 11:22:30
Danke dir Sepp,
das kommt davon, wenn man sich Code-Schnipsel im Internet sucht und diese dann übernimmt..jetzt weiß ich es besser :)
Funktioniert super, dankeschön :)
Schönes Wochenende! :)
Gruß Dennis

Bild

Betrifft: AW: Durchlauf dauert zu lange - Optimierung?
von: Daniel
Geschrieben am: 07.08.2015 10:58:32
Hi
du kannst den Code in eine Zeile packen:

If (Target.Column > 2 And Target.Column < 13 And Target.Row > 2 And Target.Row < 13) Then
    if Worksheetfunction.CountIf(Range("C3:L12"), "X") Then Msgbox "Text", ,"Info"
end if 
Gruß Daniel

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Import .txt - Datei über Drag&Drop"