Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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 

Anzeige

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

Anzeige
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

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Eingabe rückgängig machen in Excel: So funktioniert's


Schritt-für-Schritt-Anleitung

Um eine Eingabe rückgängig zu machen, insbesondere wenn du negative Werte in einem benannten Bereich wie "rrEingabe" in der Tabelle "Zahlen" eingibst, kannst du folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge den folgenden Code in das entsprechende Arbeitsblatt ein:
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 < 0 Then
                    With Application
                        .EnableEvents = False
                        .Undo
                        .EnableEvents = True
                    End With
                    MsgBox "Eingabe: Anzahl muss als absolute Zahl erfasst werden !!", vbCritical
                    Exit Sub
                End If
            Next rRng
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.

Mit diesem Code wird eine Messagebox angezeigt, wenn du versuchst, negative Werte einzugeben, und die Eingabe wird rückgängig gemacht.


Häufige Fehler und Lösungen

  • Fehler: "Excel rückgängig machen funktioniert nicht"

    • Stelle sicher, dass du den Code korrekt eingegeben hast und dass das Arbeitsblatt "Zahlen" aktiv ist.
  • Fehler: "Excel Rückgängig nicht möglich"

    • Überprüfe, ob die Ereignisse aktiviert sind (.EnableEvents = True). Wenn die Ereignisse deaktiviert sind, kann die Rückgängig-Funktion nicht ausgeführt werden.
  • Fehler bei Mehrfacheingabe

    • Wenn du mehrere Zellen auswählst und negative Werte einfügst, stelle sicher, dass der Code alle Zellen im Target-Bereich durchläuft, wie im Beispiel oben gezeigt.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du die eingebaute Rückgängig-Funktion von Excel nutzen:

  1. Drücke STRG + Z, um die letzte Aktion rückgängig zu machen.
  2. Gehe auf die Schnellzugriffsleiste und klicke auf das Rückgängig-Symbol.

Beachte, dass diese Methode nur die letzte Änderung rückgängig macht und nicht für mehrfache Eingaben geeignet ist.


Praktische Beispiele

  1. Eingabe von negativen Zahlen Wenn du im Bereich "rrEingabe" eine negative Zahl eingibst, erscheint eine Messagebox, die dich darauf hinweist, dass nur positive Zahlen eingegeben werden sollten.

  2. Kopieren und Einfügen Wenn du mehrere Zellen mit einer negativen Zahl kopierst und in den benannten Bereich einfügst, wird die gesamte Eingabe rückgängig gemacht, und du erhältst den Hinweis.


Tipps für Profis

  • Verwendung von benannten Bereichen: Stelle sicher, dass du die benannten Bereiche korrekt definiert hast, um die Eingabe zu steuern.
  • Debugging: Nutze die Debugging-Funktionen im VBA-Editor, um Fehler zu identifizieren, wenn excel rückgängig machen nicht möglich ist.
  • Sichern von Daten: Erstelle regelmäßig Sicherungskopien deiner Excel-Dateien, um Datenverlust zu vermeiden, insbesondere wenn du VBA-Code verwendest.

FAQ: Häufige Fragen

1. Wie kann ich die Rückgängig-Funktion auf andere Zellen anwenden? Du kannst den Bereich in der Intersect-Funktion anpassen, um andere Zellen einzuschließen.

2. Warum funktioniert meine Rückgängig-Funktion nicht? Überprüfe, ob der Code korrekt implementiert ist und ob die Ereignisse aktiviert sind. Wenn excel rückgängig machen nicht funktioniert, könnte es an einer falschen Einstellung liegen.

3. Ist es möglich, die Rückgängig-Funktion für andere Aktionen zu verwenden? Ja, du kannst den Code anpassen, um auch andere Bedingungen für die Rückgängig-Funktion zu definieren, z.B. für das Ausblenden von Zellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige