Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1328to1332
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

Eingabe rückgängig machen (auch Mehrfacheingabe)

Eingabe rückgängig machen (auch Mehrfacheingabe)
22.08.2013 16:45:27
Peter
Guten Tag
In einem Bereich in der Tabelle "Zahlen" gibt es den benannten Bereich "rrEingabe" (mehrere Zellen einer Spalte). Dort soll bei der Eingabe von negativen Werten die Eingabe rückgängig gemacht werden und eine Messagebox erscheinen.
Das klappt so weit mit untenstehendem Code. Wenn ich jedoch eine Zelle mit einer negativen Zahl kopiere, mehrere Zeilen im Bereich "rrEingabe" auswähle und einfüge, erhalte ich eine Fehlermeldung.
Wie muss der Code angepasst werden, dass eine solche Eingabe auch rückgängig gemacht wird?
Gruss, Peter
Option Explicit
Dim bUndo As Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Zahlen" Then GoTo SKIP_IT
If Intersect(Target, Range("rrEingabe")) Is Nothing Then Exit Sub
If Target.Value 

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

Betreff
Datum
Anwender
Anzeige
AW: Eingabe rückgängig machen (auch Mehrfacheingabe)
23.08.2013 05:02:02
Luschi
Hallo Peter,
so klappt es bei mir:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name  "Zahlen" Then GoTo SKIP_IT
If Intersect(Target, Range("rrEingabe")) Is Nothing Then Exit Sub
If Target.Cells(1, 1).Value 
Wozu Du die bUndo-Variable brauchst, verstehe ich nicht, denn außer dem Umschalten auf einen anderen Zustand passiert weiter nichts - keine Auswertung.
Gruß von Luschi
aus klein-Paris

AW: Eingabe rückgängig machen (auch Mehrfacheingabe)
24.08.2013 18:48:49
Peter
Hallo Luschi
Danke! den bUndo habe ich von irgendwo übernommen - du hast recht.
Mit
If Target.Cells(1, 1).Value < 0 Then
wird nur der die Eingabe in der ersten Zeile überprüft.
Da ich ja die erste Zahl positiv und eine beliebige andere negativ sein könnte, wenn ich copy - paste mache, habe ich meinen code wie folgt angepasst:
<pre>Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rRng As Range
If Sh.Name <> "Zahlen" Then GoTo SKIP_IT
If Intersect(Target, Range("rrEingabe")) Is Nothing Then Exit Sub
For Each rRng In Target
If rRng.Value < 0 Then
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
MsgBox "Eingabe: Anzahl muss als absolute Zahl erfasst werden !!", vbCritical
Exit Sub
Else
End If
Next
SKIP_IT:
Exit Sub
End Sub</pre>

Anzeige
AW: Eingabe rückgängig machen (auch Mehrfacheingabe)
27.08.2013 19:12:32
Stefan
Hallo Peter,
das Exit Sub vor dem End Sub total unnötig. Verzichte besser auf das Goto und ändere die Bedingung so, das Du nicht mit Then Exit Sub die Prozedur verlassen musst.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rRng As Range
If Sh.Name = "Zahlen" Then
If Not Intersect(Target, Range("rrEingabe")) Is Nothing Then
For Each rRng In Target
If rRng.Value 
Gruß Stefan

AW: Eingabe rückgängig machen (auch Mehrfacheingabe)
29.08.2013 08:25:38
Peter
Hallo Stefan
Deine Lösung ist viel inteligenter.
Vielen Dank und Gruss, Peter

53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige