Worksheet_Change



Excel-Version: 2000
nach unten

Betrifft: Worksheet_Change
von: Wilhelm R.
Geschrieben am: 06.05.2002 - 14:37:45

Hallo
habe gleiche Frage heute schon mal geschickt, ist aber irgendwo verlorengegangen.
Also ich bringe ein Makro per
Private Sub Worksheet_Change(ByVal Target As Range)
beschränkt auf einen bestimmten zellbereich zum laufen.
Das klappt soweit.
Jetzt müsste ich ein 2. Makro unter den gleichen Vorraussetzngen aber für einen anderen Zellbereich (im selben Tabellenblatt)zum laufen kriegen.
Aber das schöne "Worksheet_Change ist ja bereits besetzt.
Gibt es trotzdem eine Möglichkeit?
Einfach anhängen ging in die Hose.
Selection_Change klappt nicht.
Ratlos
Wilhelm

nach oben   nach unten

Re: Worksheet_Change
von: mathias r.
Geschrieben am: 06.05.2002 - 14:50:43


If Target.Address = "A1" Then
  'mach was
ElseIf Target.Adress = "B9" Then
  'mach was anderes
ElseIf Target.Adress = "C99" Then
  'mach noch was anderes
End If

Ggf kannst du auch gebrauchen:
Target.Row
Target.Column

nach oben   nach unten

Re: Worksheet_Change
von: Hans W. Herber
Geschrieben am: 06.05.2002 - 14:53:10

Hallo Wilhelm,

Du muß verzweigen. Siehe Beispielarbeitsmappe unter:
https://www.herber.de/bbs/texte/9change.xls

hans

nach oben   nach unten

Re: Worksheet_Change
von: Wilhelm R.
Geschrieben am: 06.05.2002 - 15:19:46

Hallo Hans,
ist nicht ganz so einfach.
erstes Makro:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Application.ScreenUpdating = False
Dim c As Range
Dim erg As Byte
'Schliesst Makrostart bei Eingabe in Spalte 2 sowie ungleich 170 aus.
If Cells(Target.Row, 2).Value <> 170 Then Exit Sub
''Schließt Makrostart über Spalte 3 und Zeile 52 aus
If Target.Column <> "3" Or Target.Row > 52 Then Exit Sub
''Überprüft ob Wert in Zelle in Spalte E den Ausnahmedurchmessern entspricht
If IsNumeric(Cells(Target.Row, 5).Value) Then
If Cells(Target.Row, 5).Value = 219.1 Or Cells(Target.Row, 5).Value = 273# _
Or Cells(Target.Row, 5).Value = 323.9 Or Cells(Target.Row, 5).Value = 406.4 _
Then Application.Run "IsoDicke"
End If
End Sub

2. makro
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Range("A17:D52")
If Intersect(Target, Bereich) Is Nothing Then Exit Sub
With Cells(Target.Row, Target.Column)
If .Value = "" Then
Call Nochn.Makro
Application.CutCopyMode = False
End If
End With
End Sub
Wobei dieses 2. Teil laufen soll, wenn die Eingabezellen A17:D52 gelöscht (Entf) werden. Wobei der markierte und zu löschende Bereich auch nur ein Teilbereich sein kann.
Ich sehe nicht wie ich das verzweigen kann.
Wilhelm

nach oben   nach unten

Re: Worksheet_Change
von: Hans W. Herber
Geschrieben am: 06.05.2002 - 15:37:15

Hallo Wilhelm,

aus Deiner Anfrage konnte nicht entnommen werden, dass sich die Bereiche überschneiden.
Im konkreten Fall würde ich abfragen, ob die einzelnen Zellen von Target leer sind. Wenn dies der Fall ist, wurde die Löschtaste gedrückt, andernfalls wurde ein Wert eingegeben.

Siehe Beispielarbeitsmappe unter:
https://www.herber.de/bbs/texte/9change1.xls

hans

nach oben   nach unten

Re: Worksheet_Change
von: Wilhelm R.
Geschrieben am: 06.05.2002 - 16:31:22

Hallo Hans,
vielen Dank für Deine Mühe, aber der Schlauch auf dem ich im Moment stehe ist gigantisch. Ich kriege das nicht auf die Reihe.
Wilhelm

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zeilen markieren"