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

Einträge bei Mehrfachauswahl verhindern

Forumthread: Einträge bei Mehrfachauswahl verhindern

Einträge bei Mehrfachauswahl verhindern
18.10.2007 22:57:00
Peter
Guten Abend
Jemand vom Forum hat mir mal diesen Code geliefert. Damit wird verhindert, dass bei einer Mehrfachauswahl von Tabellen eine Änderung erfolgen kann. Ein solcher Schutz ist bei verschiedenen Dateien für mich hilfreich.
Nun möchte ich gerne, dass wenn eine Mehrfachauswahl vorliegt und eine Eingabe erfolgt auch noch eine msgbox erscheint, z.B. "Eintrag ignoriert, da mehrere Tabellen ausgewählt".
Wenn ich diesen Code unten vor ExitSub einfüge, kommt die Mitteilung jedoch soviele Male, wie Tabellen ausgewählt sind.
Wie kann der Code angepasst werden, dass die Meldung bei einer Eingabe nur einmal erscheint, auch wenn 20 Tabellen gleichzeitig ausgewählt sind?
Danke für jede Unterstützung.
Peter
Option Explicit
Dim bUndo As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Sh.Name  ActiveSheet.Name Then
With Application
.EnableEvents = False
If Not bUndo Then .Undo
.EnableEvents = True
End With
bUndo = True
Exit Sub
End If
bUndo = False
End Sub


Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
"Änderungen bei Mehrfachauswahl verboten !"
18.10.2007 23:28:00
NoNet
Hallo Peter,
so geht's :
Private Sub Workbook_SheetChange(ByVal Sh As ObjectByVal Target As Range)
On Error Resume Next
If Sh.Name <> ActiveSheet.Name Then
    With Application
        .EnableEvents = False
        If Not bUndo Then
            .Undo
            MsgBox "Änderungen bei Mehrfachauswahl verboten !"
        End If
        .EnableEvents = True
    End With
    bUndo = True
    Exit Sub
End If
bUndo = False
End Sub

Gruß, NoNet

Anzeige
AW: Einträge bei Mehrfachauswahl verhindern
18.10.2007 23:29:53
Matthias
Hallo Peter,
so:

Dim bUndo As Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Sh.Name  ActiveSheet.Name Then
With Application
.EnableEvents = False
If Not bUndo Then
.Undo
MsgBox "Eintrag ignoriert, da mehrere Tabellen ausgewählt"
End If
.EnableEvents = True
End With
bUndo = True
Exit Sub
End If
bUndo = False
End Sub


Gruß Matthias

Anzeige
AW: Einträge bei Mehrfachauswahl verhindern
19.10.2007 09:34:00
Peter
Hallo Matthias
Genau so habe ich es mir vorgestellt.
Vielen Dank und freundlicher Gruss, Peter

AW: ein Dank an NoNet...
19.10.2007 14:00:54
Matthias
...wäre aber auch angebracht.
Gruß Matthias

;-) Dachte ich mir zwar auch, aber ich kann....
19.10.2007 14:09:09
NoNet
Hallo Matthias,
ich kann damit leben, zumal wir ja die gleiche Lösung (nur unterschiedlichen MsgBox-Text) gepostet haben.
Die Hauptsache ist, das Problem ist gelöst :-)
Schönen Tag noch,
Gruß NoNet

Anzeige
AW: ;-) Dachte ich mir zwar auch, aber ich kann....
19.10.2007 15:22:37
Peter
Hallo NoNet
Sorry, dass ich mich bei dir nicht bedankt habe. Da ich heute morgen nur ganz kurz Zeit hatte, meine Mails zu sichten, habe ich nur dasjenige von Matthias gesehen und erst jetzt dasjenige von dir, weshalb der Dank nur an Matthias ging.
So bedanke ich mich jetzt auch noch bei dir - ich finde es genial, immer wieder wertvolle Hilfestellungen zu erhalten.
Gruss, Peter
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Einträge bei Mehrfachauswahl verhindern


Schritt-für-Schritt-Anleitung

Um Änderungen bei einer Mehrfachauswahl in Excel zu verhindern, kannst du den folgenden VBA-Code verwenden. Dieser Code zeigt auch eine Nachricht an, wenn eine Mehrfachauswahl getroffen wurde.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle im Projektfenster das entsprechende Workbook aus.
  3. Füge den folgenden Code in das Modul ein:
Dim bUndo As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    On Error Resume Next
    If Sh.Name <> ActiveSheet.Name Then
        With Application
            .EnableEvents = False
            If Not bUndo Then
                .Undo
                MsgBox "Änderungen bei Mehrfachauswahl verboten!"
            End If
            .EnableEvents = True
        End With
        bUndo = True
        Exit Sub
    End If
    bUndo = False
End Sub
  1. Schließe den VBA-Editor und teste den Code, indem du versuchst, in mehreren Tabellen auf einmal Änderungen vorzunehmen.

Häufige Fehler und Lösungen

  • Fehler: „Diese Aktion funktioniert nicht bei einer Mehrfachauswahl.“

    • Lösung: Stelle sicher, dass der VBA-Code korrekt eingefügt wurde und keine Syntaxfehler enthält.
  • Fehler: Die MsgBox erscheint mehrmals.

    • Lösung: Achte darauf, dass die Variable bUndo richtig verwaltet wird, um die Meldung nur einmal anzuzeigen.

Alternative Methoden

Wenn du den Excel-Datenschnitt für Berichte verwendest und die Mehrfachauswahl deaktivieren möchtest, kannst du dies über die Einstellungen des Datenschnitts tun:

  1. Klicke mit der rechten Maustaste auf den Datenschnitt.
  2. Wähle „Datenschnitteinstellungen“.
  3. Deaktiviere die Option „Mehrfachauswahl zulassen“.

So kannst du die excel datenschnitt mehrfachauswahl deaktivieren, ohne VBA zu verwenden.


Praktische Beispiele

Angenommen, du hast ein Excel-Dokument mit mehreren Tabellenblättern und möchtest verhindern, dass Änderungen gleichzeitig an mehreren Blättern vorgenommen werden. Der oben genannte VBA-Code sorgt dafür, dass bei einer Mehrfachauswahl eine Warnung angezeigt wird und die Änderungen ignoriert werden.


Tipps für Profis

  • Verwende die Funktion Application.EnableEvents, um unerwünschte Ausführungen von Codes zu verhindern, die durch andere Ereignisse ausgelöst werden.
  • Teste deinen VBA-Code in einer Kopie deiner Arbeitsmappe, um Datenverlust zu vermeiden.
  • Halte deine Excel-Version aktuell, um sicherzustellen, dass alle Funktionen und Sicherheitsupdates verfügbar sind.

FAQ: Häufige Fragen

1. Wie kann ich die Mehrfachauswahl in Excel aufheben? Du kannst die Mehrfachauswahl aufheben, indem du die „STRG“-Taste nicht gedrückt hältst, während du klickst, oder indem du die Auswahl im Datenschnitt änderst.

2. Was passiert, wenn ich die MsgBox ignoriere? Die eingegebenen Änderungen werden nicht übernommen, und die Daten bleiben unverändert, da der Code die Undo-Funktion verwendet.

3. Ist VBA in allen Excel-Versionen verfügbar? Ja, VBA ist in den meisten Excel-Versionen verfügbar, allerdings können bestimmte Funktionen je nach Version variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige