Excel: Einmal-Tabelle möglich?

Radde

Commodore
Registriert
Apr. 2008
Beiträge
4.218
Hallo zusammen,

ich habe eine Tabelle. Mein Wunsch wäre es, dass zwar jeder mit Zugriff auf die Datei die leeren Zellen füllen darf, jedoch soll die befüllte Zelle dann anschließend gesperrt werden. Quasi funktioniert das Tabellenblatt dann wie eine "Einmal-Tabelle".

Das die Sperrung soll natürlich mit einem Passwort wieder aufgehoben werden können.

Es geht dabei nicht ein Hochsicherheitsthema, sondern darum, dass es in der Tabelle in der Vergangenheit zu oft zu fehlerhaften Eingaben und/oder Löschungen kam. Das Passwort darf am Ende gerne "1234" lauten, wenn es nur dazu führt, dass man Änderungen mit Sinn und Verstand durchführt.

Gibt es in Excel diese Möglichkeit?
Oder kennt ihr eine andere Möglichkeit für mein Problem?

Vielen Dank schon mal!
 
Ein Umsetzung sehe ich nur mithilfe von Makros.

Alternative:
Gegen Menschen kann man ansonsten nicht viel machen ...
 
Grundsätzlich wären Makros möglich. Leider kann ich VBA zwar mehr oder weniger lesen und auch anpassen, aber nicht wirklich von Grund auf selbst produzieren...
 
Quick & Dirty, da ich eine ähnliche Abfrage gerade bei einem Projekt offen habe...

Das Ganze muss in den Makrobereich des entsprechenden Tabellenblattes, um die Worksheet_Change Events auszulösen (sobald jemand eine Zelle anklickt und wieder verlässt).

Zusätzlich: Blattschutz mit beliebigem Passwort anlegen und alle Zellen mit Eigenschaft "gesperrt" = falsch formatieren. <- lässt sich theoretisch auch per Makro erledigen.

Code:
Option Explicit

Public Sub Worksheet_Change(ByVal target As Excel.Range)
Dim intRow As long
Dim intCol As long
Dim wsThis As Worksheet
Set wsThis = ThisWorkbook.Worksheets("XXXXXXXXXX") 'Worksheetname oder Nummer eingeben

On Error GoTo errorhandling

    lngCol = target.Column   'Speichert den Index der geänderten Zeile & Spalte
    lngRow = target.Row
  
With wsThis
  
    'Definition der bearbeitbaren Spalten
    If Not Application.Intersect(target, Range("A:Z")) Is Nothing Then
          
            If Not .Cells(lngRow, lngCol).value = "" Then   'Wenn Zelle nicht leer (Schutz vor versehentlichem Reinklicken)
                .Cells(lngRow, lngCol).Locked = True        'Sperre Zelle
            End If
                    
    End If

End With

  
    Exit Sub
errorhandling:
    MsgBox "Ups, da ist etwas schief gelaufen_ WS-Change"

End Sub
 
Zuletzt bearbeitet: (von INT auf LNG umgebaut)
Radde schrieb:
jedoch soll die befüllte Zelle dann anschließend gesperrt werden.
Radde schrieb:
"Einmal-Tabelle".
Radde schrieb:
Das die Sperrung soll natürlich mit einem Passwort wieder aufgehoben werden können.
Ich steige da nicht ganz durch -rein von der praktische Seite her.
Eine Eingabe in eine Zelle - und dann wird und bleibt sie gesperrt; keine Korrektur möglich? Jeder Vertipper wird zum Horrortrip.
Die Formulierung Tabelle ist verfänglich (ja, ich habe irgendwie aufgefangen, dass Dinge wie Pivot eine Tabelle innerhalb eines Tabellenblattes darstellt). Nehme ich das ganze Blatt (Tabellenblatt eben) kann der Blattschutz - den gibt es ja auch neben der Zellensperre - greifen wenn ich das Blatt verlasse. Wiederum, Rückkehr zur Korrektur geht nicht.

Wäre das am Arbeitsplatz vertretbar?

CN8
 
Ich finde diese Idee "Einmal-Eingabe" nicht gut. Korrekturen müssen möglich sein. Wer soll denn die Korrekturen durchführen, wenn es einen Tippfehler gegeben hat?

Eine Möglichkeit (es kommt auf die Daten an) wäre z.B. ein Drop-Down für eine bestimmte Spalte mit einer begrenzten Auswahlliste vorzugeben. Wenn es ein Datumsfeld ist kann ggf. ein Plausibilitätstest ausgeführt werden (Macro beim OnChange Event des Worksheets). Das gleiche könnte man für andere Felder versuchen.

Du solltest herausfinden bei welchen Spalten-Eingaben es am meisten Probleme gibt. Un dich darauf am Anfang konzentrieren. Aber ohne VBA wird das wohl kaum möglich sein.

Eventuell kann auch in Excel ein Formular für die Eingabe erstellt werden? Hier lassen sich die Eingaben überwachen. Die Werte werden dann in einem Arbeitsblatt gespeichert.
Das ist aber relativ aufwendig u. erfordert fortgeschrittene VBA Kenntnisse.

Vielleicht ist Excel auch nicht das richtige Tool?
 
Zuletzt bearbeitet:
Zurück
Oben