Clever-Excel-Forum

Normale Version: Abfrage vor Datenänderung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich bin super neu in der EXCEL-Welt angekommen und beschäftige mich gerade damit einige Arbeitsprozesse mit Excel zu optimieren.

Aktuell sitze ich an der Erstellung einer Datenbank die von mehreren Mitarbeitern genutzt und auch gepflegt werden soll. Das hierbei natürlich einige Fehlerquellen entstehen können, bereitet mir ein bisschen Sorge. In meiner Vorstellung, könnte ich das Risiko durch zwei Funktionen minimieren.

Da ich aber keine Ahnung habe ob und geschweige denn wie das machbar ist, freue ich mich über euren Input.

Die Datei besteht aus 3 Tabellenblättern.

Nr. 1 enthält feststehende Daten, diese sind schreibgeschützt.
Nr. 2 enthält Datensätze die mehrer Mitarbeiter bearbeiten. Sie müssen Daten löschen, verändern und neue hinzufügen
Nr. 3 ist das ganze miteinader Verknüpft und enthält schnell erfassbare Infos aus den beiden anderen Tabellen

PROBLEM 1
Kann ich das Tabellenblatt 3 irgenwie schreibschützen, und trotzdem die Filteroption beibehalten? Hier soll nur verhindert werden, dass versehentlich irgendetwas gelöscht oder verändert wird. Die Daten müssen aber je nach Abteilung unterschiedlich gefiltert werden.


PROBLEM 2
Kann ich Excel dazu bringen, dass bei Änderungen im Tabellenblatt Nr.2 ein Fenster aufploppt mit der Abfrage "Bist du sicher, dass du diese Daten ändern willst?". Bei Bestätigung soll es dann kein Problem mehr sein, Daten zu löschen/ändern/hinzuzufügen.


Ich lerne gerade VBA/Makros in Eigenregie und stehe noch relativ am Anfang. Freue mich daher mega über Hilfe! :)

LG Eva <3
Hi Eva,

zu deinem ersten Problem: bevor du den Blattschutz setzt, musst du in den Optionen "Alle Benutzer dieses Arbeitsblattes dürfen.." bei "Autofilter verwenden" ein Häkchen setzen.

Dein zweites Problem dürfte nur mit einem Makro zu lösen sein - da müssen dir die VBA-Spezies helfen.
(02.07.2019, 14:39)Eva-Steinfrank schrieb: [ -> ]PROBLEM 2
Kann ich Excel dazu bringen, dass bei Änderungen im Tabellenblatt Nr.2 ein Fenster aufploppt mit der Abfrage "Bist du sicher, dass du diese Daten ändern willst?". Bei Bestätigung soll es dann kein Problem mehr sein, Daten zu löschen/ändern/hinzuzufügen.
Das wird sicher eine tolle User-Experience.
Hallo Eva,

willkommen bei Excel und willkommen im Forum.

Zum Einstieg hast du dir aber schon ganz schön etwas vorgenommen. Dein 2. Problem sehe ich grundsätzlich wie shift-del, aber für die als Einstiegshilfe:

Im VBA-Projekt gibt es zu jedem Tabellenblatt ein Code-Fenster: Doppelklick auf die gewünschte Tabelle im Projekt-Explorer (Strg-R). Im rechten Fenster hast du oben zwei Drop-Down Felder, links schaltest du um zwischen "(Allgenmein)" und "Worksheet".

Wählst du hier "Worksheet", kannst du im rechten Dropdown viele Ereignisse auswählen, die du dann per VBA-Code abrufen und darauf reagieren kannst. So z.B. "Change", was ausgelöst wird, wenn etwas an deiner Tabelle geändert wird. Bei diesem Ereignis könntest du also eine Abfrage einfügen, ob die Änderung gewünscht wird. Aber: probiere das mal aus, dann verstehst du, was shift-del meint Wink

Kleiner Tipp: Zum Ausprobieren arbeite ich sehr häufig mit dem Befehl "debug.print", mit dem du Ergebnisse in das Direktfenster ausgeben lassen kannst. Probiere eine solche Abfrage eines Ereignisses am besten vorher damit, bevor sich deine User beschweren, dass sie nicht mehr arbeiten können Wink

Viel Erfolg!
Hallöchen,

um mal auf das Tabellenblatt 2 zurückzukommen - ein Code dafür wäre dieser:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If MsgBox("Änderung Übernehmen", vbYesNo) = vbNo Then Application.Undo
Application.EnableEvents = True
End Sub

Die Änderungen werden bei "Ja" übernommen und bei "Nein" rückgängig gemacht.

Soll die Frage nur 1x kommen und dann mehrere Änderungen ohne erneute Frage möglich sein, müsste man anders oder etwas mehr programmieren. Man könnte z.B. so programmieren, dass die Frage nur beim Öffnen der Datei kommt oder wenn man auf das Tabellenblatt wechselt oder …


Wo der Code hinkommt, dazu hatte LuckyJoe ja schon was geschrieben.