Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellen nach ausfüllen dauerhaft schützen
#1
Liebe Excel-Gemeinde,

ich möchte eine Tabelle für unseren Sportverein erstellen. So etwas wie ein Kassenbuch. Ich möchte erreichen, dass die Zellen, in denen einmal ein Wert eingetragen wurde nicht mehr verändert werden können. Wenn man also bei einer "Buchung" versehentlich einen falschen Wert eingibt, soll man dies nicht wieder löschen können. Ich möchte fehlerhafte Buchungen nachvollziehen können.

Gibt solch eine Möglichkeit?

Viele Grüße
Thommy
Antworten Top
#2
Hallo Thommy,

ohne nähere Angaben Deinerseits vielleicht so?

Modul Modul1
Sub BereichSperrenUndTabelleSchützen() 

With ActiveSheet
    .Cells.Locked = False
    .Range("A1:D10").Locked = True
    .Protect
    .EnableSelection = xlUnlockedCells
End With

End Sub



VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 12 - mit VBAHTML 12.6.0


Der Bereich A1 bis D10 des aktiven Blattes wird geschützt, so das keine Eingaben vorgenommen werden können. Ausserhalb dieses Bereiches sind Eingaben möglich.

Gruß
Ich
Antworten Top
#3
Die Frage ist wast du genau absichern willst, es gibt 2 Möglichkeiten

1)Versehentliche Löschung/Änderung einer Zelle (oder Buchung)
2)Vorsätzlich Löschung/Änderung einer Zelle (oder Buchung)


Für 1) Sollte die Vorgestellte Lösung genügen
Für 2) Sollte auf eine Datenbank (z.B. SQL Server) umgestellt werden ggf. mit Benutzerkontensteuerung und wenn du es richtig übertreiben willst mit nem WORM Laufwerk.
Antworten Top
#4
(09.09.2016, 09:29)Elkermito schrieb: Die Frage ist wast du genau absichern willst, es gibt 2 Möglichkeiten

1)Versehentliche Löschung/Änderung einer Zelle (oder Buchung)
2)Vorsätzlich Löschung/Änderung einer Zelle (oder Buchung)


Für 1) Sollte die Vorgestellte Lösung genügen
Für 2) Sollte auf eine Datenbank (z.B. SQL Server) umgestellt werden ggf. mit Benutzerkontensteuerung und wenn du es richtig übertreiben willst mit nem WORM Laufwerk.

Schönen Dank erst einmal für eure schnellen Antworten!

Also ich möchte die Variante 2) vorsätzliche Löschung absichern.

Wenn ich das richtig verstehe, müßte ein Datenbankprogramm genutzt werden, denn Excel kann das auch durch Programmierung im VBA nicht.
Mit solch einem Datenbankprogramm ist unser kleiner Club sicherlich überfordert.....

Dennoch recht herzlichen Dank für eure Mühen!
Sonnige Grüße
Thomas
Antworten Top
#5
Hi,

Zitat:Wenn man also bei einer "Buchung" versehentlich einen falschen Wert eingibt, soll man dies nicht wieder löschen können. Ich möchte fehlerhafte Buchungen nachvollziehen können.

das ist für mich wiederum nicht nachvollziehbar. Falls bei einer Buchung ein Zahlendreher passiert und der Buchende dies gleich nach dem Speichern bemerkt, wieso soll dann der Fehler nicht korrigiert werden können?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#6
(09.09.2016, 10:36)bietho schrieb: ...

Wenn ich das richtig verstehe, müßte ein Datenbankprogramm genutzt werden, denn Excel kann das auch durch Programmierung im VBA nicht.

...

Hallo Thomas,

das hast Du nicht richtig verstanden. Excel kann das. Allerdings sind Deine Angaben etwas vage.
Man müsste wissen wie die "Buchung" ausgelöst wird und welche Zellen dann geschützt werden sollen.
Das von mir eingefügte Makro sollte nur als Beipiel dienen wie man einen Bereich schützen kann.
Wenn ich Dich recht verstehe müsste aber nach der "Buchung" ein Bereich geschützt werden.
Dieses gilt es zu realisieren. Also das richtige Timing und der korrekte Bereich :32:
Es wäre hilfreich wenn Du eine anonymisierte Beispieldatei bereit stellst.

Gruß
Ich
Antworten Top
#7
(09.09.2016, 10:47)IchBinIch schrieb: Hallo Thomas,

das hast Du nicht richtig verstanden. Excel kann das. Allerdings sind Deine Angaben etwas vage.
Man müsste wissen wie die "Buchung" ausgelöst wird und welche Zellen dann geschützt werden sollen.
Das von mir eingefügte Makro sollte nur als Beipiel dienen wie man einen Bereich schützen kann.
Wenn ich Dich recht verstehe müsste aber nach der "Buchung" ein Bereich geschützt werden.
Dieses gilt es zu realisieren. Also das richtige Timing und der korrekte Bereich :32:
Es wäre hilfreich wenn Du eine anonymisierte Beispieldatei bereit stellst.

Gruß
Ich
Na da fällt mir ein Stein vom Herzen!

Ich hänge mal die Datei an. Die gelb hinterlegten Bereiche sollen geschützt werden. Und zwar wenn einmal ein Wert eingegeben wurde (im Beispiel: der Wert 90,00€) und dieser falsch eingegeben wurde darf er nicht mehr überschrieben werden. Sondernn in der Folgezeile als Fehlbuchung korrgiert und danach neu in korrekter Höhe eingegeben werden. Na schau mal!

Viele Grüße
Thomas

Viele


Angehängte Dateien
.xlsx   TestKassenbuch_2016_09.xlsx (Größe: 11,38 KB / Downloads: 7)
Antworten Top
#8
Hallöchen,

die Sperrung kann aber auch recht lästig werden, wenn Du z.B. 13 eingibst, ENTER drückst und gleich darauf den Fehler merkst.

Für solche Anliegen kann man Ereignismakros verwenden, in Deinem Fall Worksheet_Change.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Target.Locked = True
End Sub
Damit das funktioniert, musst Du auch den Blattschutz aktivieren und bei alle Zellen, wo Eingaben erfolgen können, über die Zellformatierung "gesperrt" rausnehmen. Ggf. muss man die Wirkung des Makros noch auf bestimmte Bereiche einschränken.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
(09.09.2016, 11:20)schauan schrieb: Hallöchen,

die Sperrung kann aber auch recht lästig werden, wenn Du z.B. 13 eingibst, ENTER drückst und gleich darauf den Fehler merkst.

Für solche Anliegen kann man Ereignismakros verwenden, in Deinem Fall Worksheet_Change.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Target.Locked = True
End Sub
Damit das funktioniert, musst Du auch den Blattschutz aktivieren und bei alle Zellen, wo Eingaben erfolgen können, über die Zellformatierung "gesperrt" rausnehmen. Ggf. muss man die Wirkung des Makros noch auf bestimmte Bereiche einschränken.
Ich versuche alles.
Weshalb ich diese Variante der "unmöglichen" Korrektur benötige? Unser Gesamtverein hat einen neuen Kassenwart. Und der sagte, dass das Finanzamt nur Kassenbücher akzeptiert in denen eine nachträgliche Änderung unmöglich bzw. eindeutig nachvollziehbar ist. Ebenso sicher wird er sich an die Vorgaben des Finanzamtes halten! Entweder finden wir eine solche Lösung oder müssen wieder auf die handschriftliche Form zurückkehren.


Nun muss ich erst einmal zum Dienst. Werde aber morgen - wie oben gesagt - alle Vorschläge ausprobieren und mich dann bei euch melden!

Viele Grüße

Thomas
Antworten Top
#10
Hallo Thommy,

im Bereich A3 bis D3 kannst Du Deine Buchungen erfassen. Ein Klick auf den Button überträgt die Buchung in Deine Tabelle.
Ziel der "Operation" sollte es sein, das keine Buchungen mehr verändert werden können.
Schau mal ob das so für Dich passt.

Gruß
Ich


Angehängte Dateien
.xlsm   TestKassenbuch_2016_09_Ich.xlsm (Größe: 24,11 KB / Downloads: 8)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste