Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
536to540
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
536to540
536to540
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Worksheet_Change mit Name als Bezug

Worksheet_Change mit Name als Bezug
29.12.2004 18:59:33
Frank
Guten Abend,
ich habe unter "Level" vorsichtshalber "VBA nein" eingetragen, ein paar Grundkenntnisse habe ich aber schon, "VBA gut" wäre aber stark übertrieben.
Mein Problem ist: ich möchte bei einer Änderung eines Zellinhaltes eine SUB ausführen lassen. Eigentlich kein Problem. Wenn sich der Inhalt in Zelle "B5" ändert, bitte SUB ausführen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then TueWas
End Sub

Das funktioniert ja auch so weit. Nun steht aber das Outfit der Tabelle noch nicht fest, und es kann sein, dass sich die relevante Zelle, hier "B5", evtl. verschiebt und dann vielleicht "C7" ist. Ich habe deshalb "B5" einen Namen gegeben: "Start". Nun kann sich die Tabelle durch Einfügen/Löschen von Zeilen/Spalten ändern, "Start" bleibt "Start". Ich schaffe es aber nicht, in
If Target.Address =
irgendwie nun den Namen "Start" zu verwenden. Egal was ich mache, das Ganze endet immer bei "End Sub ", "TueWas" wird nicht aufgerufen. Vermutlich ist das PillePalle, aber ich ich komme einfach nicht darauf. Kann mir da jemand weiterhelfen?
Vielen Dank schon mal !
Grüße aus Hamburg von
Frank

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change mit Name als Bezug
29.12.2004 19:15:27
Christoph
Hallo Frank
so zB.
Gruß
Christoph

Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> Range("Start") Then Exit Sub
Call TuWas
End Sub

AW: Worksheet_Change mit Name als Bezug
Frank
Hallo Christoph,
zunächst einmal vielen Dank für die schnelle Antwort. Das funktioniert, zieht aber ein anderes Problem nach sích. Wenn nur mit "Target" statt "Target.Address" gearbeitet wird, bekommt man eine Fehlermeldung, wenn im Arbeitsblatt ein Bereich z.B. markiert und dann gelöscht wird: Laufzeitfehler 13: Typen unverträglich. Der Fehler tritt dann in der Zeile "If Target...." auf. Eine einzelne Zelle löschen oder neu beschreiben kann man sehr wohl, ohne diese Fehlermeldung. Aber sobald ein Bereich bearbeitet wird, kommt eben dieser Fehler. Der tritt nicht auf, wenn mit "Target.Address" gearbeitet wird. Nur funktioniert dann die Verwendung des Namens als Zellbezug nicht mehr.
Ist wohl doch etwas komplexer als gedacht. Hast Du evtl. noch eine Idee?
Viele Grüße
Frank
Anzeige
AW: Worksheet_Change mit Name als Bezug
29.12.2004 19:40:53
Christoph
Hallo Frank,
so ganz kann ich dein Problem nicht nachvollziehen.
ich geh mal davon aus, dass der Name "Start" sich nur auf eine Zelle bezieht und keine verbundene Zelle ist.
Aber wenn du schreibst, dass das Prob mit "Target.Address" nicht auftritt, dann probier doch mal das Folgende: (für nähere Analyse müsste ich deine Tabelle kennen)
Gruß
Christoph

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> Range("Start").Address Then Exit Sub
Call TuWas
End Sub

AW: Worksheet_Change mit Name als Bezug
Frank
Hallo Christoph,
jaja, es war ein blödsinniger Fehler meinerseits. Ich hatte geschrieben:
If Target.Address = Range("Start") then...
und richtig wäre:
If Target.Address = Range("Start").Address then...
Ich hatte also die zweite "Address"-Anweisung nicht berücksichtigt.
Irgendwie ist mir das jetzt doch etwas peinlich, hätte ich eigentlich wissen müssen. Immerhin hast Du mich da auf den richtigen Weg gebracht. Viiiiiielen Dank nochmal !
MfG
Frank
Anzeige
gern geschehn (o.T.)
29.12.2004 20:19:41
Christoph

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige