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

Skript mit Ereignis starten

Skript mit Ereignis starten
27.12.2002 12:27:37
Barbara Kanditsch
Wenn in die Zelle C3 etwas geschrieben wird, soll eine bestimmte Prozedur ablaufen.
Ich habe es probiert mit "if Target.Address = $C$3", aber das geht nicht, denn wenn ich was in C3 reinschreibe, springt der Cursor dann auf eine benachbarte Zelle, je nach aktueller Einstellung. Sicher, ich könnte den Ablauf auslösen durch "if Target.Address = $C$4". Aber das geht dann wieder nicht, wenn der User diese Option des Weitergehens zur nächsten Zeklle anders eingestellt hat. Und darauf habe ich keinen Einfluss.
Es muss eine ander Möglichkeit geben, das Skript laufen zu lassen, wenn ich in C3 was ändere, egal wohin der Cursor dann geht.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Skript mit Ereignis starten
27.12.2002 12:40:04
MRR
Hi Barbara,
verstehe ich nicht...

So funktioniert das bei mir aber ganz OK. Was stimmt da bei Dir nicht?
Matthias

Re: Skript mit Ereignis starten
27.12.2002 12:52:18
Barbara Kanditsch
Wann wird denn Deine Prozedur aufgerufen? Genau dann, wenn c3 die aktuelle Zelle ist.
Also, noch bevor ich was reinschreibe. Ich gehe zu C3, schreib was rein, und will VBA damit was ausführen lassen. Ich verlasse die Celle, der Cursor geht dann automatisch in die nächste Zelle. Damit wird aber keine Prozedur aufgerufen (siehen mein erster Beitrag)
Übrigens: Wie kann ich denn einen Zellinhalt in die Kopfzeile eines anderen Tabellenblatts, oder besser aller existierenden Tabellenblätter übertragen?
LG, Barbara
Anzeige
Re: Skript mit Ereignis starten
27.12.2002 12:57:59
MRR
Hi,
meine Proz. wird aufgerufen, NACHDEM ich eine Änderung in C3 (und nur dort) vorgenommen habe- nicht, wenn ich sie aktiviere (sprich: die Selection dorthin verlagere). Und sobald er die Übereinstimmung der Adresse der aktiven Zelle mit C3 vorgefunden hat, verzweigt er in die Sub-Proz., aus der er wieder brav zurück kommt, nachdem er dort fertig ist.

Zu Frage 2:

HTH, Matthias

Re: Skript mit Ereignis starten
27.12.2002 13:20:23
Barbara Kanditsch
Lieber Mathias, Du hast Recht mit Deinem Beispiel. Ichhabs ausprobiert.
Ich hab aber auch recht mit meinem Beispiel, denn da muss ich nach dem Eintrag wieder zurück gehen in die Zelle, um die Umbenennung des Blattes wirksam werden zu lassen.
Hier das Skript:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim s As String
If Target.AddressLocal = "$C$1" Then
s = Range("$C$1").Value
ActiveSheet.Name = s
End If
End Sub

Welchen Unterschied macht dabei Address zu AddressLocal?
Übrigens, hier geht es um die Zelle C1.
LG, Barbara.

Anzeige
Keine Zeit für
27.12.2002 13:36:08
MRR
zwei "t" ?
Mit ist ja noch nicht klar geworden, was Du überhaupt tust. Steht in C1 der Name, den das Blatt tragen soll? Und soll dieser ggf. nicht oder doch oder wie übernommen oder eben nicht werden?

Address liefert Dir in der Z1S1-Bezugsart die englische Form (RC), während Du mit Addresslocal die Konfrontation mit ZS erlebst (ht aber nur Auswirkungen, wenn Du das Argument ReferenceStyle benutzt).

Was macht das Kopfzeilen-Makro?

MaTThias

Re: Keine Zeit für
27.12.2002 15:26:04
Barbara
Lieber Matthias, verzeih das fehlende t.
Ja, es ist so, wie Du sagst. Ich schreib was in C1, und das soll sofort als Blattname übernommen werden. Tut es aber nicht, sondern erst, wenn ich dann wieder in C1 gehe.

Das Kopfzeilenmakro hab ich schon eingebaut und es funktioniert einwandfrei. Danke. Aber auch hier habe ich das gleiche Problem. In eine andere Zelle schreibe ich einen Namen, der dann in allen Kopfzeilen stehen soll. Auch dazu muss ich wieder in die Zelle zurückkehren, daß diese if Range-Bedingung erfüllt ist. Danach geht Dein Kopfzeilenmakro.
LG, Barbara

Anzeige
Re: Keine Zeit für
27.12.2002 15:34:22
Urs
Hallo Barbara
so habe ich das Problem gelöst:

Option Explicit
Dim bln As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim rng As Range
Set rng = Range("D2")
If Target.Address = rng.Address Then bln = True
If bln = True And Target.Address <> rng.Address Then

und dann Dein Code
end if
end if

Gruss
Urs

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige