Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Frage zu Worksheet_Change

Frage zu Worksheet_Change
Peter
Guten Tag
Bei nachstehendem Worksheet_Chance Ereignis erhalte ich eine Fehlermeldung "Typen unverträglich"
(auf Zeile If Target = Range("rID") Then)
wenn ich zwei oder mehrere kopierte Zellen in der Tabelle, in dem der Code hinterlegt ist, einfügen will (und das ausserhalb des Ranges "rID" (bezieht sich aktuell auf die Zelle C3).
In C3 ist ein Wert (und nicht eine Formel) eingetragen; wenn ich jetzt in C104 und C105 etwas einfüge, sollte dieser Ereignisprotokoll nichts machen.
Wo mache ich einen Überlegungsfehler?
Gruss, Peter
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("rID") Then
Me.Cells.AutoFilter field:=1
Me.Cells.AutoFilter field:=1, Criteria1:="="
Else
End If
Call  .....
Call  ....
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Frage zu Worksheet_Change
16.11.2009 11:21:13
JogyB
Hi.
Exakte Übereinstimmung der Bereiche:
If Target.Address = Range("rID").Address Then ...
Bereiche müssen sich überschneiden:
If Not Intersect(Target, Range("rID")) Is Nothing Then ...
Gruss, Jogy
AW: Frage zu Worksheet_Change
16.11.2009 11:21:50
IngGi
Hallo Peter,
mit

If Target = Range("rID") Then
prüfst du nicht, ob Target und Range("rID") dieselben Zellen sind, sondern ob der Inhalt der beiden Zellen gleich ist, das ist dir doch klar? Diese Prüfung geht schief, sobald entweder Target oder Range("rID") nicht nur aus einer, sondern aus mehreren Zellen besteht. In diesem Fall musst du die Zellen einzeln in einer Schleife prüfen.
Gruß Ingolf
Anzeige
AW: Frage zu Worksheet_Change
16.11.2009 11:56:33
Peter
Hallo Ingolf
Irgendwie habe ich die Funktion mit "Target" noch nicht begriffen.
Folgendes ist meine Zielvorstellung:
Wenn in Range("rID") eine Eingabe erfolgt, sollen die beiden Autofiltercodes
Me.Cells.AutoFilter field:=1
Me.Cells.AutoFilter field:=1, Criteria1:="="
durchlaufen werden.
Zurzeit ist Range("rID") die Zelle C3. Der Code sollte jedoch auch laufen, falls der benannte Bereich später einer anderen Zelle zugeordnet ist.
Wenn ich in der Tabelle irgend eine andere Änderung vornehme, solle nichts passieren.
Was muss ich ändern?
Gruss, Peter
AW: Frage zu Worksheet_Change
16.11.2009 12:19:36
fcs
Hallo Peter,
Target bezieht sich in Tabellenblättern immer auf eine Zelle bzw. einen Zellbereich
Deshalb muss eine Überprüfung von Target meistens eine Prüfung der Eigenschaften wie Adresse, Zeile, Spalte oder Überschneidung mit einem Bereich (Intersect) beinhalten. Die Prüfung des Target-Wertes erfolgt dann meist in einem 2. Schritt.
Deshalb muss du die If-Bedingung anders gestalten, um später den Namen rID einer beliebigen Zelle zuweisen zu können bzw. die Zelle auf dem Blatt zu verschieben.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("rID").Address Then
MsgBox "Zelle mit Name ""rID"" wurde geändert."
End If
End Sub

Anzeige
AW: Frage zu Worksheet_Change
16.11.2009 13:36:14
Peter
Hallo Franz
Vielen Dank für die Erläuterung!
So klappts.
Gruss, Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige