Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zwei Mal If inersect Ranges nach Worksheet change

Betrifft: Zwei Mal If inersect Ranges nach Worksheet change von: Andreas Hanisch
Geschrieben am: 26.02.2008 11:22:41

Hallo Herber Fans,

ich tüftle an einem Problem mit Worksheet change.
Ich habe zwei Bereiche (Range_1 = A1:A20; Range_2 = B1:B20) auf einem Blatt. Wenn ich irgendwo Range_1 anspreche dann soll Aktion_1 ausgeführt werden, wenn ich Range_2 anspreche, soll Aktion_2 ausgeführt werden. Der Code soll immer bei dem Change Ereignis starten

Das ist mein bisheriger Code nach dem Trial and Error Verfahren:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("Bereich_1").Address Then         
MsgBox "TEST_1"

End If

If Target.Address = Range("Bereich_2").Address Then

MsgBox "TEST_2"

End If

End Sub



Wie kann ich dieses an sich banale Problem lösen? Ist Target. Address der richtige Ansatz, oder doch besser intersect? (If intersect Range_1 then Aktion_1 Else If Intersect...) Das hatte ich auch schon probiert, aber es kamen Debugger Meldungen, die ich nicht lösen konnte.

Dank und Gruß, Andreas

  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet cha von: Lessie
Geschrieben am: 26.02.2008 11:25:45

https://www.herber.de/forum/messages/955167.html


  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet change von: Renee
Geschrieben am: 26.02.2008 11:28:56

Hi Andreas,

Und was soll passieren, wenn beide Bereiche betroffen sind?
z.B. Zeile 2 Inhalte löschen.

GreetZ Renée


  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet change von: Andreas Hanisch
Geschrieben am: 26.02.2008 11:36:03

Hi Renée,

das sollte i.d.R. nicht vorkommen. Wenn Range_1 betroffen, dann soll eine Berechnung auf einem anderen Blatt angestoßen werden.
Wenn Range_2, dann Berechnung auf dem gleichen Blatt. Range_1 und Range_2 sind mit Gültigkeiten versehen die der User wählen kann. D.h. er muß die Eingabe in einer Zelle abschließen, ehe er zur nächsten kann. Aber OK, wenn er eine Markierung auf beide Ranges setzt und löscht, wäre das ja ein Ansprechen beider Ranges. Dann soll nichts passieren.

Gute Frage!

Danke und Gruß, Andreas


  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet cha von: Lessie
Geschrieben am: 26.02.2008 11:42:35

... bei mir funktioniert es:

https://www.herber.de/bbs/user/50189.xls

Gruss


  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet cha von: Lessie
Geschrieben am: 26.02.2008 11:43:38

ups falches Ziel :()


  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet change von: Renee
Geschrieben am: 26.02.2008 11:46:05

Hi Andreas,

Ungefähr so (z.B.):

Private Sub Worksheet_Change(ByVal Target As Range)
    If (Not (Intersect(Target, Range("A1:A20")) Is Nothing) And _
        Not (Intersect(Target, Range("B1:B20")) Is Nothing)) Or _
       Intersect(Target, Range("A1:B20")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Not (Intersect(Target, Range("A1:A20")) Is Nothing) Then
        MsgBox ("Etwas mit A1:A20")
    Else
        MsgBox ("Etwas mit B1:B20")
    End If
    Application.EnableEvents = True
End Sub



GreetZ Renée


  

Betrifft: AW: Zwei Mal If inersect Ranges nach Worksheet change von: Andreas Hanisch
Geschrieben am: 26.02.2008 11:52:45

Hi Renée,

you made my day! Der Code funktioniert sehr gut! Wenn ich mir deine Zeilen ansehe, weiß ich, daß ich nicht drauf gekommen wäre. Es gibt mehr zu beachten, als ich ahnte.
Danke Dir für Deinen Einsatz. Habe noch einen schönen Tag.

Gruß aus Berlin, Andreas


 

Beiträge aus den Excel-Beispielen zum Thema "Zwei Mal If inersect Ranges nach Worksheet change"