27.02.2017, 18:27
Hallo Atilla,
ruhig, ruhig, wir sind doch auf dem richtigen Weg. Die Zwischenfragen sollten nur eine genauere Beschreibung der Abläufe und Fallunterscheidung ergeben.
Hallo Julia,
ich habe mal den Code von Atilla angepasst. Das mit dem D1 war ein Fehler von mir, als Vergleichszelle kämen zum Beispiel die jeweiligen Nachbarzellen von D1 und F1 zum Einsatz. Im Prinzip gibt es 3 Fälle.
(1) Fehleingabe
Es werden jetzt nur noch Meldungen angezeigt, wenn eine Fehleingabe passiert. Durch die Datenüberprüfung wird der ursprüngliche Wert wieder eingetragen. Mehr passiert nicht, die Vergleichszelle bleibt unberührt.
(2) Auswahl oder manueller Eintrag eines korrekten Wertes
Wenn Du einen anderen als den zuvor gewählten Wert auswählst, gibt es eine Action. Bisher war das eine Meldung, die hab ich auskommentiert. Der Wert wird mit der vorherigen Auswahl - "gespeichert" in der Vergleichszelle - verglichen. Bei Unterschiedlichen Einträgen wird die Vergleichszelle aktualisiert und Dein Makro ausgeführt.
Du nimmst Deinen Makroaufruf dort rein, wo ich "'hier kommt die Action rein" geschrieben habe.
(3) Auswahl oder manueller Eintrag eines korrekten Wertes, der bereits zuvor gewählt wurde
Wenn Du den gleichen Eintrag nochmal wählst, passiert nix. Der Wert wird mit der vorherigen Auswahl - "gespeichert" in der Vergleichszelle - verglichen und wegen der Übereinstimmung der Makroaufruf und die Aktualisierung der Vergleichszelle übersprungen. Es wird auch keine Meldung ausgegeben.
ruhig, ruhig, wir sind doch auf dem richtigen Weg. Die Zwischenfragen sollten nur eine genauere Beschreibung der Abläufe und Fallunterscheidung ergeben.
Hallo Julia,
ich habe mal den Code von Atilla angepasst. Das mit dem D1 war ein Fehler von mir, als Vergleichszelle kämen zum Beispiel die jeweiligen Nachbarzellen von D1 und F1 zum Einsatz. Im Prinzip gibt es 3 Fälle.
(1) Fehleingabe
Es werden jetzt nur noch Meldungen angezeigt, wenn eine Fehleingabe passiert. Durch die Datenüberprüfung wird der ursprüngliche Wert wieder eingetragen. Mehr passiert nicht, die Vergleichszelle bleibt unberührt.
(2) Auswahl oder manueller Eintrag eines korrekten Wertes
Wenn Du einen anderen als den zuvor gewählten Wert auswählst, gibt es eine Action. Bisher war das eine Meldung, die hab ich auskommentiert. Der Wert wird mit der vorherigen Auswahl - "gespeichert" in der Vergleichszelle - verglichen. Bei Unterschiedlichen Einträgen wird die Vergleichszelle aktualisiert und Dein Makro ausgeführt.
Du nimmst Deinen Makroaufruf dort rein, wo ich "'hier kommt die Action rein" geschrieben habe.
(3) Auswahl oder manueller Eintrag eines korrekten Wertes, der bereits zuvor gewählt wurde
Wenn Du den gleichen Eintrag nochmal wählst, passiert nix. Der Wert wird mit der vorherigen Auswahl - "gespeichert" in der Vergleichszelle - verglichen und wegen der Übereinstimmung der Makroaufruf und die Aktualisierung der Vergleichszelle übersprungen. Es wird auch keine Meldung ausgegeben.
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target, Range("D1")) Is Nothing Then
Application.EnableEvents = False
If Target <> "" Then
If Not prüfung(Target.Text, Target) Then
MsgBox "falsche Eingabe"
Application.Undo
'Wert mit C1 vergleichen
ElseIf Target <> Cells(1, 3) Then
'MsgBox "Inhalt verändert von " & Target.Address(0, 0)
'korrekten Wert nach C1 ausgeben
Cells(1, 3).Value = Cells(1, 4).Value
'hier kommt die Action rein
End If
End If
End If
If Not Intersect(Target, Target, Range("F1")) Is Nothing Then
Application.EnableEvents = False
If Target <> "" Then
If Not prüfung(Target.Text, Target) Then
MsgBox "falsche Eingabe"
Application.Undo
'Wert mit e1 vergleichen
ElseIf Target <> Cells(1, 5) Then
'MsgBox "Inhalt verändert von " & Target.Address(0, 0)
'korrekten Wert nach E1 ausgeben
Cells(1, 5).Value = Cells(1, 6).Value
'hier kommt die Action rein
End If
End If
End If
Application.EnableEvents = True
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)