VisualBasic Wennfehler Bedingung in VBA Code einbauen

uboot

Captain
Registriert
Juni 2001
Beiträge
3.181
Hallo,

ich habe im Netz einen VBA Code gefunden, der mir im aktiven Arbeitsblatt alle Zellen mit einem frei definierbaren Wert markiert.
Mein Problem ist nun, dass wenn es Zellen mit einem "'#NV" gibt, dass ich einen Laufzeitfehler 13 erhalte (Typen unverträglich), und zwar auf die Zeile 6.
Ich möchte nun gerne der Prüfung in Zeile 6 hinzufügen, dass Wennfehler, mache weiter mit der nächsten Zelle.

Code:
Sub AlleZellenMitWertenVonBisMarkieren(Wert1 As Single, Wert2 As Single)
Dim Zelle As Range
Dim lngZ As Long
Dim rngBereich As Range
For Each Zelle In ActiveSheet.UsedRange
If Zelle.Value >= Wert1 And Zelle.Value <= Wert2 Then
If lngZ = 0 Then
Set rngBereich = Zelle
lngZ = 1
Else
Set rngBereich = Union(rngBereich, Zelle)
End If
End If
Next Zelle
rngBereich.Select
End Sub
 
Hilft mir leider nicht. Habe es mit IF IsError (Zelle.Value >= Wert1) Then Next probiert, aber dann kommen immer Fehlermeldungen wie Next ohne IF. Bin leider unfähig so einen VBA Code zu schreiben. In Excel wäre es mir ein leichtes, aber in VBA bin ich leider zu blöd... :rolleyes:
 
VBA bin ich auch lange raus, ich meine aber, es gab da die Funktion
If IsNumeric(Zelle.Value) Then
....
End If
mit der du den Wert vorher prüfen könntest, ob er vorhanden und numerisch ist.
Erst dann solltest du den Wertevergleich machen.


Gruß...
 
Das klappt sogar. Yay. :D

Wie könnte ich jetzt noch einbauen, dass wenn kein Wert zwischen Wert1 und Wert2 in dem Sheet vorhanden ist, dass er dann einfach nichts macht?
 
Die Lösung ist:

Code:
Sub AlleZellenMitWertenVonBisMarkieren(Wert1 As Single, Wert2 As Single)
Dim Zelle As Range
Dim lngZ As Long
Dim rngBereich As Range
For Each Zelle In ActiveSheet.UsedRange
 If IsNumeric(Zelle.Value) Then
   If Zelle.Value >= Wert1 And Zelle.Value <= Wert2 Then
   If lngZ = 0 Then
   Set rngBereich = Zelle
   lngZ = 1
   Else
   Set rngBereich = Union(rngBereich, Zelle)
   End If
   End If
 End If
Next Zelle

If Not rngBereich Is Nothing Then rngBereich.Select

End Sub
 
Zurück
Oben