Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
468to472
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
468to472
468to472
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Change / Selection Change

Change / Selection Change
11.08.2004 15:49:16
eres
Hallo Excel-Profis,
nach langem rumprobieren (und mit Hilfe von Chris (Danke)) bin ich zu der Erkenntnis gelangt, dass die Veränderung eines Zellinhaltes (z.B. Feld A1 ist aktiv und enthält den Wert 10, nun wird die 10 durch eine 11 überschrieben und mit ENTER bestätigt, so wird:
1. ein Change-Ereignis ausgelöst (klar, da der Wert ja geändert wurde)
2. und zusätzlich auch ein ChangeSelection-Ereignis ausgelöst (obwohl die Adresse der aktiven Zelle nicht geändert wurde (Application.MoveAfterReturn steht auf False))
Gibt es in VBA die Möglichkeit, bei der obigen Aktion (Zelländerung von 10 in 11) das ChangeSelection-Ereignis zu unterdrücken ?
Vielen Dank und Gruss
eres

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Change / Selection Change
11.08.2004 16:11:49
chris
Chris, sorry, hatte ich noch nicht gesehen. Werde mich umgehend bei Thomas bedanken.
AW: Change / Selection Change
11.08.2004 16:21:07
ANdreas
Hallo Eres,
habe mir das ganze nicht durchgelesen, einfach mal etwas Code geschrieben, mit welchem man mit dem Problem sauber umgehen kann:

Private Function SetSelectionChange(Optional intParam%) As Boolean
Static blnSelectionChange As Boolean
Select Case intParam
Case 1, 2: blnSelectionChange = intParam - 1
End Select
SetSelectionChange = blnSelectionChange
End Function


Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address(0, 0)
Case "A1":
SetSelectionChange 2
MsgBox "SelectionChange Merker gesetzt"
End Select
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If SetSelectionChange Then
SetSelectionChange 1
Else
'Dein Code der bei "normaler" SelectionChange ausgeführt werden soll
MsgBox "Test: Code bei SelectionChange wird gewünscht durchlaufen"
End If
End Sub

Kurze Erklärung: Wird in Zelle A1 das Change-Ereignis ausgelöst, so wird parallel dazu ein Merker gesetzt. Daraufhin wird das SelectionChange Ereignis durchlaufen. In diesem wird der Merker ausgelesen und je nachdem, der Code durchlaufen oder auch nicht.
Hoffe das hilft weiter,
Andreas
Nibbles für Excel
Anzeige
AW: Change / Selection Change
12.08.2004 07:16:29
eres
Vielen Dank Andreas, vielen Dank für Deinen Ansatz. In diese Richtung hatte ich auch schon gedacht. Da muss dann tatsächlich eine Variable ran, um abzuprüfen ob ein Ereignis bereits durchlaufen ist.
Ist aus meiner Sicht zwar nicht besonders schön, aber sicherlich ein gut funktionierender Weg.
Nochmals vielen Dank.
eres

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige