Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
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
Änderung in Zellen überwachen
06.03.2014 15:18:02
Joachim
Hallo,
mittels vlookup hole ich Datensätze aus einer Tabelle in eine andere. Das Durchscrollen der Datensätze erfolgt mit einen SpinButton. Auch die direkte Eingabe der Lfd-Nr ist möglich. Damit das Makro mit dem vlookup läuft, arbeite ich auf der Tabelle mit worksheet_calculate. Kleiner Trick: eine kleine Formel auf der Tabelle und schon läufts.
Jetzt hab ich Lesefelder, die aber überschrieben werden dürfen. Z.B D5, D8, D11 usw.
Ändert der User an diesen Feldern den Inhalt, soll ein Hinweis kommen, ob die neuen Daten gespeichert werden solln bzw. verworfen, wenn er weiterscrollen will.
Es geht also um die Änderung in bestimmten Zellen.
Mach ich das mit worksheet_change oder mit worksheet_selectionChange? Und wie?
Gruss
Joachim

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

Betreff
Datum
Anwender
Anzeige
AW: Änderung in Zellen überwachen
06.03.2014 15:58:38
EtoPHG
Hallo Joachim,
In das Tabellenblatt:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Row > 1 And Target.Count = 1 Then
If vbYes  MsgBox("Wollen Sie die Änderung in " & _
Target.Address(0, 0) & " speichern?", _
vbYesNo + vbExclamation, "Bestätigung") Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub

Gruess Hansueli

AW: Änderung in Zellen überwachen
07.03.2014 09:46:45
Joachim
Hallo,
kann ich das auf nur bestimmte Zellen einschränken? Also nur bei Änderungen in D5 oder D8 oder H13 oder N16 ...
Gruss
Joachim

Anzeige
Ja ...
07.03.2014 10:13:47
Matthias
Hallo
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D5,D8,H13,N16")) Is Nothing And Target.Count = 1 Then
If vbYes  MsgBox("Wollen Sie die Änderung in " & Target.Address(0, 0) & " speichern?",  _
vbYesNo + vbExclamation, "Bestätigung") Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End Sub
Gruß Matthias

AW: Änderung in Zellen überwachen
07.03.2014 10:18:22
Rudi
Hallo,
eine Möglichkeit:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Not Intersect(Target, Union(Range("D5"), Range("D8"), Range("H13"), Range("N8"))) Is  _
Nothing Then
If vbYes  MsgBox("Wollen Sie die Änderung in " & _
Target.Address(0, 0) & " speichern?", _
vbYesNo + vbExclamation, "Bestätigung") Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
End If
End If
End If
End Sub

Könnte evtl. einfacher gehen, wenn man wüsste, welche Zellen du überwachen willst.
Gruß
Rudi

Anzeige
AW: Änderung in Zellen überwachen
07.03.2014 10:26:16
Joachim
Hallo Matthias und Rudi,
vielen Dank für die Vorschläge, werde sie mal ausprobieren.
Gruss
Joachim
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige