Discussion:
Sub Worksheet_Change - beziehen auf eine bestimmte Zelle
(zu alt für eine Antwort)
Andreas Kuhn
2004-06-03 07:00:14 UTC
Permalink
Hi in dem unten angehängten Code wird bisher nur überprüft ob eine Zelle
innerhalb der Spalte 2 geändert wird.
Wie kann ich dort z.B. die Zeile 32 noch mit einbeziehen, also das nur die
Zelle B32 abgefragt wird ?


'Private Sub Worksheet_Change(ByVal Target As Range)
'If Target.Column = 2 Then 'wenn in der Spalte B wasgeändert wird
' Application.EnableEvents = False 'verhindert daserneute Auslösen
des Change-Ereignisses
' btt
' Application.EnableEvents = True 'Ereignisauslösung wieder
einschlaten
' End If
'End Sub
'
--
Gruß Andreas Kuhn
WinXP SP1 ; xl2002 SP2
Thomas Ramel
2004-06-03 07:21:08 UTC
Permalink
Grüezi Andreas

Andreas Kuhn schrieb am 03.06.2004
Post by Andreas Kuhn
Hi in dem unten angehängten Code wird bisher nur überprüft ob eine Zelle
innerhalb der Spalte 2 geändert wird.
Wie kann ich dort z.B. die Zeile 32 noch mit einbeziehen, also das nur die
Zelle B32 abgefragt wird ?
Prüfe in diesem Fall ganz einfach die Adresse der Zelle:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$32" Then Exit Sub
....


oder Du prüfst auf eine Überschneidung mit einem vogegebenen Range; diese
Methode erfordert zwar eine Zeile Code mehr, ist dafür aber allgemein
gültig:

Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Application.Intersect(Target, Range("B32"))
If Target Is Nothing Then Exit Sub
...
--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

[Win XP Pro SP-1 / xl2000 SP-3]
Andreas Kuhn
2004-06-03 08:26:41 UTC
Permalink
Hallo Thomas, danke für die schnelle Antwort,
wo geb ich den die Subroutine mit an, welche ich ausführen will?
Post by Thomas Ramel
Grüezi Andreas
Andreas Kuhn schrieb am 03.06.2004
Post by Andreas Kuhn
Hi in dem unten angehängten Code wird bisher nur überprüft ob eine Zelle
innerhalb der Spalte 2 geändert wird.
Wie kann ich dort z.B. die Zeile 32 noch mit einbeziehen, also das nur die
Zelle B32 abgefragt wird ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$32" Then Exit Sub
....
oder Du prüfst auf eine Überschneidung mit einem vogegebenen Range; diese
Methode erfordert zwar eine Zeile Code mehr, ist dafür aber allgemein
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Application.Intersect(Target, Range("B32"))
If Target Is Nothing Then Exit Sub
...
--
Mit freundlichen Grüssen
Thomas Ramel
- MVP für Microsoft-Excel -
[Win XP Pro SP-1 / xl2000 SP-3]
Thomas Ramel
2004-06-03 09:45:55 UTC
Permalink
Grüezi Andreas

Andreas Kuhn schrieb am 03.06.2004
Post by Andreas Kuhn
Hallo Thomas, danke für die schnelle Antwort,
wo geb ich den die Subroutine mit an, welche ich ausführen will?
Genauso wie bisher, der Code wird vorzeitig verlassen, wenn die geänderte
Zelle *nicht* B32 ist.
Füge also anstelle der 3 Punkte deinen Codeaufruf und weitere Zeilen ein,
Post by Andreas Kuhn
Post by Andreas Kuhn
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Application.Intersect(Target, Range("B32"))
If Target Is Nothing Then Exit Sub
...
--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

[Win XP Pro SP-1 / xl2000 SP-3]
Loading...