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

Worksheet_SelectionChange(ByVal Target As Range)

Worksheet_SelectionChange(ByVal Target As Range)
16.02.2005 10:33:04
Olaf
Hallo,
ich benötige nach einer Änderung einer Zelle die Zeile, die geändert wurde.
Target.Row gibt mir ja nur die Zeile zurück, die nach der Änderung selektiert ist.
Hintergrund: Wenn in Spalte A egal in welcher Zeile ein Datum eingetragen wird, soll ein Eintrag rechts daneben erscheinen. Mit Formel geht das nicht, da auch manchmal Zeilen eingefügt werden.
Target.Row-1 geht auch nicht, da ja nicht jeder nach einer Änderung Enter drückt.
Gibt es eigentlich eine Möglichkeit, eine Sub zu starten, wenn nur in einer bestimmten Spalte eine Änderung erfolgt?
Vielen Dank schonmal!
Olaf

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_SelectionChange(ByVal Target As Range)
Galenzo
machst du z.B. so:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 1 And IsDate(Target) Then Target(1, 2) = "ein Eintrag"
End Sub

Hintergrund: Worksheet_Change wir bei Änderungen im Blatt ausgelöst und abgearbeitet.
Da nur auf Änderungen/Eintragungen in Spalte A reagiert werden soll, ist eine entsprechende Abfrage eingebaut: (If Target.Column = 1 ?) Diese ist auch gleich mal zusammengefaßt mit der 2. Bedingung, nämlich ob der Eintrag ein Datum ist. Dann wird rechts daneben was eingetragen - kannst du entsprechend anpassen.
Anzeige
AW: Worksheet_SelectionChange(ByVal Target As Range)
16.02.2005 11:08:19
Olaf
Danke, das ist aber erst die eine Hälfte.
Target ist ja immer die neue Zelle!!
Wenn ich also in A1 was ändere, ist nach dem Enter Target = A2!
Ich möchte aber Target = A1 haben und zwar auch wenn kein Enter erfolt, sonder Tab oder mit der Maus irgendwohin gesprungen wird. Also immer die zuletzt geänderte Zelle soll der Target sein.
Ansonsten funzt es ja.
Gruss
Olaf
AW: Worksheet_SelectionChange(ByVal Target As Range)
Galenzo
hää?
Target ist DIE Zelle (Bereich), der sich ändert. Nix neue Zelle.
Der Cursor steht nur in der nächsten Zelle, weil die manuelle Eingabe mit ENTER beendet wurde unt unter Extras/Optionen/Bearbeiten/nach unten ausgewählt ist.
Willst du nach der Eintragung wieder diese Zelle (also in der gerade was eingetragen wurde) auswählen?
Ddann schreibe das als letzte Anweisung in die Prozedur mit rein: Target.Select
ich hoffe das tut's - ansonsten müßtest du nochmal präziser beschreiben, WAS passieren soll, was selektiert werden soll usw.
Anzeige
AW: Ne, geht doch nicht!?
16.02.2005 15:37:53
Olaf
Hi,
geht aber leider nicht so.
Wenn ich in A1 ein Datum eingebe und Enter drücke, passiert erstmal garnichts.
Erst wenn ich wieder auf A1 gehe, arbeitet Excel die Sub ab.
Ich möchte aber beim Verlassen der geänderten Zelle die Einträge reinhaben.
Gruss
Olaf
AW: Geht doch!!
Galenzo
mußtu richtiges Ereignis nehmen!
Private Sub Worksheet_Change(ByVal Target As Range)
NICHT SelectionChange!!!!!
Oh Shit! ;-)))
16.02.2005 16:45:46
Olaf
Hi,
danke!!!
Genau das war der Fehler.
Gruss
Olaf

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige