Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1096to1100
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
Inhaltsverzeichnis

Zellprüfung vor- und rückwärts

Zellprüfung vor- und rückwärts
Gerd
Hallo und guten Tag!
Ich bitte euch, mir bei folgendem Problem zu helfen:
In einem Tabellenblatt sind in den Spalten E und F Werte einzutragen. Bei der Eingabe soll nun verhindert werden, dass der Wert in Spalte E größer ist als der in Spalte F. Es soll auch verhindert werden, dass, wenn der "Eingeber" zuerst einen Wert in Spalte F eingibt und dann zurück in Spalte E springt, dort einen größeren Wert eingeben kann.
Ich habe bereits mit SelectionChange- un Change-Ereignis experimentiert. Jedoch bekomme ich die vor- und zurück-Prüfung einfach nicht hin.
Also: Im Ergebnis darf es nicht möglich sein, in die Spalte E einen größereren Wert einzugeben, als in Spalte F.
Habt ihr eine Idee?
Vielen Dank
Gerd
AW: Zellprüfung vor- und rückwärts
18.08.2009 14:51:39
Rudi
Hallo,
Daten-Gültigkeit
Benutzerdefiniert
Formel: =$E2<$F2
Gruß
Rudi
AW: Zellprüfung vor- und rückwärts
18.08.2009 14:57:44
JogyB
Hi.
Vorsicht: Der Bezug ist falsch, wenn Du die gesamte Spalte markierst. Du mußt in der Formel die erste markierte Zeile angeben.
Gruss, Jogy
AW: Zellprüfung vor- und rückwärts
18.08.2009 14:54:26
JogyB
Hi.
Spalte E markieren. Dann Daten - Gültigkeit - Benutzerdefiniert.
Formel ist: =(E1<=F1)
Dann dasselbe (exakt dasselbe!) für Spalte F.
Gruss, Jogy
Oder einfacher...
18.08.2009 14:59:29
JogyB
Zeile E und F markieren, Daten - Gültigkeit - Benutzerdefiniert
Formel ist: =($E1<=$F1)
An absolute Spaltenbezüge sollte ich bei sowas schon denken...
Gruss, Jogy
Anzeige
Wert in Spalte E kleiner als Wert in Spalte F
18.08.2009 14:56:22
NoNet
Hallo Gerd,
hier ein Lösungsvorschlag :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [E:F]) Is Nothing Then
If Target.Column = 5 Then 'In Spalte E wurde etwas eingegeben
If Target.Value > Target.Offset(, 1) Then
Application.Undo
Target.Select
MsgBox "Wert in Spalte E muss kleiner als Wert in Spalte F sein !"
End If
ElseIf Target.Column = 6 Then
If Target.Value 
Es wird allerdings nicht geprüft, ob mehrere Zellen gleichzeitig (per Strg+ENTER) eingegeben wurden !
Gruß, NoNet
AW: Wert in Spalte E kleiner als Wert in Spalte F
18.08.2009 15:00:34
JogyB
Hi.
Mach doch für mehrere Zellen einfach ein For Each ... In Target drumrum.
Gruss, Jogy
Anzeige
Mir schon klar, aber vllcht. genügt das _oT
18.08.2009 15:06:25
NoNet
_oT = "ohne Text"
AW: Zellprüfung vor- und rückwärts
18.08.2009 15:00:16
Gerd
Hallo!
Vielen Dank an Rudi, JogyB und NoNet!
Alle drei Lösungen sind perfekt. Peinlich ist nur, dass ich nicht selbst auf die gleichlautende Gültigkeitsregel in beiden Spalten gekommen bin.
Ich werde mich wohl für die VBA-Lösung entscheiden, alldieweil ich unterbinden muss, dass die Benutzer die Gültigkeitsregel einfach ausschalten.
Noch einmal vielen Dank. Ihr seid super(schnell).
Gerd
AW: Zellprüfung vor- und rückwärts
18.08.2009 15:06:31
JogyB
Hi.
Wie schon in der Antwort zu NoNet geschrieben, da muss noch abgefangen werden, wenn Target aus mehreren Zellen besteht.
Bekommst Du das hin?
Ansonsten kannst Du die Gültigkeit verwenden, einen Blattschutz setzen und bei dem alles erlauben. An der Gültigkeit darf trotzdem nichts geändert werden.
Gruss, Jogy
Anzeige
AW: Zellprüfung vor- und rückwärts
18.08.2009 15:15:08
Gerd
Hallo Jogy!
Habe gerade folgende Änderung probiert:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
For Each rngZelle In [e3:f123]
If Not Intersect(Target, [E:F]) Is Nothing Then
If Target.Column = 5 And Target.Offset(, 1).Value  "" Then 'In Spalte E wurde etwas  _
eingegeben
If Target.Value > Target.Offset(, 1) Then
Application.Undo
Target.Select
MsgBox "Wert in Spalte E muss kleiner als Wert in Spalte F sein !"
End If
ElseIf Target.Column = 6 And Target.Offset(, -1).Value  "" Then
If Target.Value 
Leider komme ich irgendwie in 'ne Endlosschleife und muss mit Strg+Untbr in den Debug-Modus. Hast Du ad-hoc eine Idee?
Gruß
Gerd
Anzeige
AW: Zellprüfung vor- und rückwärts
18.08.2009 15:27:52
Rudi
Hallo,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
On Error GoTo errEXIT
Application.EnableEvents = False
For Each rngZelle In [e3:f123]
If Not Intersect(Target, [E:F]) Is Nothing Then
If Target.Column = 5 And Target.Offset(, 1).Value  "" Then 'In Spalte E wurde etwas  _
_
eingegeben
If Target.Value > Target.Offset(, 1) Then
Application.Undo
Target.Select
MsgBox "Wert in Spalte E muss kleiner als Wert in Spalte F sein !"
End If
ElseIf Target.Column = 6 And Target.Offset(, -1).Value  "" Then
If Target.Value 

Gruß
Rudi
Wer sagt denn, dass die User die Mappe nicht mit deaktivierten Makros starten?
Anzeige
AW: Zellprüfung vor- und rückwärts
18.08.2009 15:39:45
Gerd
Hallo Rudi!
Verschieden Menüs habe ich per VBA beim Aufruf der Datei Excel-weit deaktiviert. Dazu gehören die Kontextmenüs von Zelle, Spalte, Zeile und Tabellenblatt, wie auch Menüeinträge wie Makros und weitere.
Es ist 'ne ziemliche Gängelei der Anwender. Sie wollen es aber nicht anders, weil sie immer wieder versuchen müssen, den vorbereiteten Pfad zu verlassen bzw. zu ändern. ;-))
Vielen Dank noch einmal! Ich bin dann erst einmal weg...
Gruß
Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige