Zelle in bestimmter Range enthalten ?
01.03.2006 17:27:10
torsten
- MEINE EXCELVERSION IST 2002 - SP2 -
für das Event Worksheet_Change möchte ich wissen, ob das Target in einer bestimmten (zu überwachenden) Range enthalten ist. Das Problem löse ich z.Zt. folgendermaßen:
' **********************************************************
' irgendein sheet
Sub Worksheet_Change(ByVal Target As Range)
if isContained(Target, Range("A1:B5")) then
' nunja, hier ist die zelle in der zu überwachenden Range enth.
end if
End Sub
' **********************************************************
' irgendein modul
Function isContained(cell as range, r as range) as boolean
r.Select
cell.Activate
If Selection.address = r.address Then
' MsgBox "die range enthält die celle"
isContained = True
Else
' MsgBox "die range enthält die celle nicht"
isContained = False
End If
End Function
' **********************************************************
Wie jeder versierte VBA-Programmierer schnell sehen kann, ist dies nicht wirklich die beste Methode. Gerade der Fall, wenn Target selbst ein Bereich von mehr als einer Zelle ist oder Target ein Bereich ist, der sowohl innerhalb, als auch ausserhalb des überwachten Bereichs ist. So gefällt mir das überhaupt nicht. Kann mir da jemand helfen. Ich habe schon alles möglichen Google-Versuche unternommen und die VBA-Hilfe mit "contain", "enthalten", "has", "is", etc. gefüttert. Bisher konnte ich nichts sinnvolles finden.
Gruß