ich m�chte die Intersect-Methode in dem Worksheet_SelectionChange - Ereignis
so einsetzen, dass ich f�r verschiedene einzelne Zellen ein bestimmtes
Ereignis (Sub-Routine) aufrufen kann.
Momentan gelingt mir das nur f�r eine Zelle. Die Excelhilfe liefert mir kein
Beispiel, wie es mit mehr als zwei Argumenten funktioniert.
Also momentan helfe ich mir so:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Zelle = Intersect(Target, Range("A2"))
If Not Zelle Is Nothing Then 'Doppelte Verneinung als Ist Wahr
weiterx
Exit Sub
Else
weitery
End If
Set Zelle = Intersect(Target, Range("C3"))
If Not Zelle Is Nothing Then 'Doppelte Verneinung als Ist Wahr
weiterx
Exit Sub
Else
weitery
End If
'evt. noch weitere Zellen in der Auswahl
End Sub
Hat jemand eine Idee wie es eleganter geht?
Gru�
Reinhard
Am Sun, 14 Feb 2010 15:35:32 +0100 schrieb Reinhard Sch�ll:
> ich m�chte die Intersect-Methode in dem Worksheet_SelectionChange - Ereignis
> so einsetzen, dass ich f�r verschiedene einzelne Zellen ein bestimmtes
> Ereignis (Sub-Routine) aufrufen kann.
> Momentan gelingt mir das nur f�r eine Zelle. Die Excelhilfe liefert mir kein
> Beispiel, wie es mit mehr als zwei Argumenten funktioniert.
> Also momentan helfe ich mir so:
probiere es mit Select Case:
Select Case Target.Address(0, 0)
Case "A2"
weiterx
Case "C3"
weitery
End Select
Mit freundlichen Gr�ssen
Claus Busch
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
wunderbar ... es geht noch k�rzer:
Select Case Target.Address(0, 0)
Case "A2", "C3", "D5"
weiterx
Case Else
weitery
End Select
Was ich jetzt noch br�uchte w�re, das Ereignis z.B. weiterx dann
auszuf�hren, wenn z.B. eine Zelle in einer Spalte ausgew�hlt wird.
Also z.B. die Zelle "F123" in "F:F". Leider funktioniert Case "F*" nicht
;-). Oder anders gefragt, wie stelle ich fest, dass "F123" eine Teilmenge
von "F:F" ist?
MfG
Reinhard
Am Sun, 14 Feb 2010 18:41:54 +0100 schrieb Reinhard Sch�ll:
> Was ich jetzt noch br�uchte w�re, das Ereignis z.B. weiterx dann
> auszuf�hren, wenn z.B. eine Zelle in einer Spalte ausgew�hlt wird.
> Also z.B. die Zelle "F123" in "F:F". Leider funktioniert Case "F*" nicht
> ;-). Oder anders gefragt, wie stelle ich fest, dass "F123" eine Teilmenge
> von "F:F" ist?
wenn es expizit F123 sein sollte, dann wieder �ber target.address. Wenn es
irgendeine Zelle in Spalte F sein soll, dann �ber
intersect(target,range("F:F"))
Am Sun, 14 Feb 2010 18:41:54 +0100 schrieb Reinhard Sch�ll:
> Was ich jetzt noch br�uchte w�re, das Ereignis z.B. weiterx dann
> auszuf�hren, wenn z.B. eine Zelle in einer Spalte ausgew�hlt wird.
> Also z.B. die Zelle "F123" in "F:F". Leider funktioniert Case "F*" nicht
> ;-). Oder anders gefragt, wie stelle ich fest, dass "F123" eine Teilmenge
> von "F:F" ist?
dann fasse doch alle Adressen zusammen:
If Not Intersect(Target, Range("A2,C3,D5,F:F")) _
Is Nothing Then
weiterx
Else
weitery
End If
ja, dann wieder mit der doppelten Verneinung usw.
Bin gerade auf einem anderen Weg erfolgreich geworden:
Set bigrange = Application.Union(Target, Range("F:F"))
If bigrange.Address(0, 0) = "F:F" Then weiterx else weitery
.... oder
Set bigrange = Application.Union(Target, Range("2:2"))
If bigrange.Address(0, 0) = "2:2" Then weiterx else weitery
.... f�r die Aktion der ausgew�hlten Zelle einer Zeile
MfG
Reinhard
"