Microsoft Excel

Herbers Excel/VBA-Archiv

Daten nach Speicherung sperren.

Betrifft: Daten nach Speicherung sperren. von: Karl
Geschrieben am: 12.11.2014 12:15:13

Hallo Leute,
gibt es im Excel eine Möglichkeit beim Schließen der Datei die bereits befüllten Zellen/Zeilen automatisch zu sperren um zu verhindern das diese ein anderer Benutzer überschreiben kann?
Änderungen sollen nur mehr für Ersteller oder einen definierten Personenkreis möglich sein.
Datei liegt auf einem Server und wird von mehreren Usern befüllt.

L.G
Karl


  

Betrifft: AW: Daten nach Speicherung sperren. von: yummi
Geschrieben am: 12.11.2014 12:23:39

Hallo Karl,

das wird automatisch nur über VBA funktionieren.
Du musst die nicht leeren Zellen sperren und das Blatt anschliessend schützen mit der Option gesperrte Zellen nicht auswählen.

Bei deinem angegebenen VBA level weiß ich aber nicht, ob dir eine vba lösung hilft

Gruß
yummi


  

Betrifft: AW: Daten nach Speicherung sperren. von: yummi
Geschrieben am: 12.11.2014 13:34:28

Hallo Karl,

vba Editor aufmachen, Rechtsklick auf Arbeitsmappe, einfügen Modul
in das Modul folgenden Code
Anstatt "Tabelle1" schreibst Du deinen Blattnamen rein
Anstatt "A1:F13" schreibst Du deinen Bereich den Du überwachen willst
Anstatt "DeinPasswort" kannst du dein eigenes Passwort vergeben.

Sub sperren()
Dim z As Range

For Each z In ThisWorkbook.Sheets("Tabelle1").Range("A1:F13")
    If Not IsEmpty(z) Then
        z.Locked = True
    Else
        z.Locked = False
    End If
Next

ThisWorkbook.Sheets("Tabelle1").Protect Password:="DeinPasswort", DrawingObjects:=True,  _
Contents:=True, Scenarios:=True _
    , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
    AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
    :=True, AllowInsertingHyperlinks:=True, AllowSorting:=True, _
    AllowFiltering:=True, AllowUsingPivotTables:=True
ThisWorkbook.Sheets("Tabelle1").EnableSelection = xlUnlockedCells

End Sub

dann auf diese Arbeitsmappe klicken
und folgenden code platzieren:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 sperren
End Sub
Gruß yummi


  

Betrifft: AW: Daten nach Speicherung sperren. von: Karl
Geschrieben am: 12.11.2014 15:00:29

Hallo yummi,

Danke für deine Hilfe! Habe es ausprobiert, zunächst hat es auch funktioniert allerdings nach ein paar Versuchen nicht mehr - Laufzeitfehler 1004 (siehe Beilagen).

Weißt du was ich falsch gemacht habe?
Siehe auch Beispiel-Exceldatei (Passwort: "123")

Über eine Rückmeldung würde ich mich sehr freuen!

Vielen Dank im Voraus!

Karl

https://www.herber.de/bbs/user/93712.xls




  

Betrifft: AW: Daten nach Speicherung sperren. von: yummi
Geschrieben am: 12.11.2014 15:12:34

Hallo Karl,

mein Fehler habe nicht berücksichtigt, dass du gesagt hast: Du willst die Datei öfter speichern. Beim nächsten Durchlauf versucht er eine geschützte Zelle zu sperrren und das schlägt fehl.

Füg mal vor der for each Schleife folgende Zeile ein

ActiveSheet.Unprotect Password:="123"
damit deaktivierst du den Blattschutz, bearbeitest deine Zellen und dann wird er ja wieder neu gesetzt.


Gruß
yummi


  

Betrifft: AW: Daten nach Speicherung sperren. von: Karl
Geschrieben am: 13.11.2014 05:44:59

Danke yummi, jetzt funktioniert das super hast mir sehr geholfen.
Schönen Tag
Karl