Registriert seit: 07.01.2016
Version(en): 2010
Hallo,
ich müsste ein Feld sperren, sodass keine Nutzer die Formel aus Versehen verändern/löschen.
Ich nutze aber in dem Worksheet auch Makros. Damit sind einige Methoden unbrauchbar und ich finde auch Online nichts passendes.
Optional ware es noch super, wenn meine eigens geschriebene Nachricht erscheint, wenn ein Nutzer den Versuch unternimmt, die Zelle zu ändern/löschen.
Kann mir da jemand ein Tipp geben?
Danke!
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
Zitat:Damit sind einige Methoden unbrauchbar
Dann nenne mal die Methoden, die Du bisher ausprobiert hast. Makros sind auf jeden Fall kein Hinderungsgrund. Außerdem kann man, wenn sowieso Makros eingesetzt werden, die Formeln mit Makros in die Tabellen schreiben lassen, dann ist es recht unproblematisch, wenn jemand diese überschreibt.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 07.01.2016
Version(en): 2010
(07.01.2016, 14:25)BoskoBiati schrieb: Hallo,
Dann nenne mal die Methoden, die Du bisher ausprobiert hast. Makros sind auf jeden Fall kein Hinderungsgrund. Außerdem kann man, wenn sowieso Makros eingesetzt werden, die Formeln mit Makros in die Tabellen schreiben lassen, dann ist es recht unproblematisch, wenn jemand diese überschreibt.
Hallo BoskoBiati,
ich habe z.B. das versucht:
1:
Sub sumit()
Dim mainworkBook As Workbook
Set mainworkBook = ActiveWorkbook
mainworkBook.Sheets("Quick Score").Range("E35").Value = "Locked"
mainworkBook.Sheets("Quick Score").Range("E35").Locked = True
ActiveSheet.Protect Password:="xx"
End Sub
wie hier beschrieben:
http://excel-macro.tutorialhorizon.com/e...fic-cells/und unter anderem auch die Methode
2:Worksheets("Quick Score").Range("E35").Locked = False
Worksheets("Quick Score").Protect(UserInterfaceOnly:=True)und auch...
3:
-unlock all cells
-lock individual cells
-Protect Sheet
hättest du ein tipp, wie ich machen könnte?
Registriert seit: 13.04.2014
Version(en): 365
Hallo,
verstanden hast Du das wohl nicht so ganz.
Alle Schutzmechanismen greifen ja nur, wenn ein Passwort verwendet wir, was aber auch nichts Sicheres ist. Das geht schon mit der Zellformatierung und Blattschutz.
Natürlich müssen alle Makros zum Ausführen von Änderungen in Zellen den Schutz am Anfang abschalten und am Ende wieder einschalten.
Wenn Die Zellen verteilt sind, dann musst Du wohl jede einzeln sperren, wobei Range("E35").locked=true sperrt, dazu muß aber auch das Blatt mit Sheets("blabla").protect Password:_"XX"
geschützt werden.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 07.01.2016
Version(en): 2010
07.01.2016, 17:23
(Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2016, 11:59 von Zwergel.
Bearbeitungsgrund: unnützes Zitat entfernt
)
Danke:) Habe diese Woche erst mit VBA angefangen.
Muss es dann so aussehen:
Worksheets("Quick Score").Range("E35").Locked = True
ActiveSheet.Protect Password:="bla"
?
Wo genau muss ich das hinzufügen?
Bei This Workbook oder bei dem worksheet("Quick Score")?
Registriert seit: 13.04.2014
Version(en): 365
07.01.2016, 17:31
(Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2016, 17:34 von Kuwer.
Bearbeitungsgrund: Code berichtigt ;-)
)
Hallo,
z.B. so:
Code:
Dim wks as workbook
set wks=sheets("Quick Score")
with wks
.Range("E35").locked = true
' weitere Zellen einfügen, falls notwendig, oder auch ganze Bereiche.
.protect Password:="bla"
end with
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 07.01.2016
Version(en): 2010
07.01.2016, 19:01
(Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2016, 11:59 von Zwergel.
Bearbeitungsgrund: unnützes Zitat entfernt
)
Funktioniert bei mir leider nicht :(
Trotzdem Danke
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(07.01.2016, 19:01)geniapli schrieb: Funktioniert bei mir leider nicht :(
was bedeutet das?
Wo hast Du das Makro-Fragment eingefügt?
Wie wird es aufgerufen?
Was passiert?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
ich habe den Beispielcode mal etwas kommentiert. Wenn Du den code laufen lässt, funktioniert er nur 1x. Die Zelle ist ja dann geschützt und Du kannst nicht erneut etwas eintragen. Dazu müsstest Du im Makro erst den Schutz aufheben. Und nicht zu vergessen - Deine Datei muss auch das Blatt Quick Score enthalten.
Code:
Sub sumit()
'Variablendeklarationen
Dim mainworkBook As Workbook
'Exceldatei dem Objekt zuweisen
Set mainworkBook = ActiveWorkbook
'Im Blatt Quick Score, Zelle E35, Daten eintragen
mainworkBook.Sheets("Quick Score").Range("E35").Value = "Locked"
'Schutz fuer Zelle E35 setzen
mainworkBook.Sheets("Quick Score").Range("E35").Locked = True
'Blatt schuetzen
ActiveSheet.Protect Password:="xx"
End Sub
So, beim 2. Mal ist das Blatt geschützt. Es fehlt also
ActiveSheet.UnProtect Password:="xx"
Wie das genau funktioniert, kannst Du auch mit dem Makrorekorder aufzeichnen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)