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

Worksheet_Change

Worksheet_Change
08.01.2005 11:18:49
Thomas
Hallo weltbestes Forum
Ich arbeite in einer für den Anwender programmierten Tabelle mit der Worksheet_Change-Methode. Dabei überprüfe ich die Eingabe in eine bestimmte Zelle.
Wenn die Eingabe mit der Entertaste abgeschlossen wird, funktioniert das sehr gut. Ich ermittle die Eingabe in die Zelle mit ActiveCell.Value.
Wenn der Anwender die Eingabe mit einer Pfeiltaste abschließt, läuft meine Überprüfung ins Leere.
Hat vieleicht jemand einen cleveren Work-Around parat oder gibt es eine Funktion, die die Eingabe mit den Pfeiltasten unterbindet.
Gruß Thomas

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

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change
08.01.2005 11:34:28
Josef
Hallo Thomas!
Wenn du das Chang-Eriegnis verwendest ist es doch egal wie man die
Zelle verlässt!


      
Option Explicit

Private
 Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
MsgBox "A1 wurde geändert!"
End If
End Sub 
Anzeige
AW: Worksheet_Change
08.01.2005 17:52:32
Thomas
Hallo Sepp
Der Code funktioniert nur wenn das $-Zeichen vor A uns !1 steht. Wenn Du eine Spalte überwachst ("$A:$A") oder einen Range ("$A$1:$A$100") wird der Code nicht aktiv ?!!
Gruß Thomas
AW: Worksheet_Change
08.01.2005 18:19:30
Josef
Hallo Thomas!
Du sagtest ja "eine Zelle überwachen" !
Für ganze Spalten oder für Bereiche nimmt man .Column oder Intersect !


      
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Überwachung einer ganzen Spalte
If Target.Column = 1 Then 'Spalte "A"
MsgBox "Zelle " & Target.Address(0, 0) & " wurde geändert!"
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
'Überwachung eines Bereiches "B15:C50"
If Not Intersect(Target, Range("B15:C50")) Is Nothing Then
MsgBox "Zelle " & Target.Address(0, 0) & " wurde geändert!"
End If
End Sub 
Wobei du in einer mappe natürlich nur eine "Change" Ereignisprozetur haben darfst!
Gruß Sepp
Anzeige
AW: Worksheet_Change
08.01.2005 20:01:34
Thomas
vielen Dank für den Tipp Sepp
ich verwende allerdings mehrere Change-Ereignisprozeduren, in dem ich
zum Beispiel programmiere
If Not Intersect(Target, Range("B15:C50")) Is Nothing Then goto Weiter1
...
Weiter1:
If not Target.Column = 1 Then exit Sub
Gruß Thomas
AW: Worksheet_Change
Udo
Programmierung mit Goto ist nicht nötig und zudem schlechter Stil.
Udo
AW: Worksheet_Change
09.01.2005 10:47:22
Thomas
Hallo Udo
wie willst Du dann mehrere Bereiche überwachen? Und wo ist der Unterschied zu einer Prozedur mit if und elseif.
Gruß Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige