Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellensperre setzen beim Öffnen läuft nicht

Zellensperre setzen beim Öffnen läuft nicht
17.06.2009 14:06:53
Thorsten
Hallo miteinander,
ich habe ein Problem, welches wahrscheinlich nur durch einen kleinen Formfehler entsteht.
Das Makro soll anhand einer Rechtetabelle die Sperrung für vordefinierte Bereiche aufheben.
Außerdem soll die Sperrung für alle Zellen auf einem Blatt beim Schliessen der Datei wieder gesetzt werden, damit das Freischalten beim öffnen durch einen anderen User wieder funktioniert. Zumindest so wie mein Script jetzt aufgebaut ist.
Das komisch ist, dass das Makro funktioniert wenn ich es von Hand ausführe.
Der Code liess sich hier nicht anständig reinkopieren. Schaut bitte mal in die Datei.
Und hier ist sie:
https://www.herber.de/bbs/user/62512.xls
Danke schonmal im Voraus!
Gruss
Thorsten

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellensperre setzen beim Öffnen läuft nicht
17.06.2009 14:27:19
Heiko
hallo thorsten,
mein code, der allerdings noch nicht fertig ist:

Private Sub Workbook_Open()                         'ausführen wenn xls geöffnet wird
Dim user, rechte As String, i As Integer        'Variablen für Schleifen
Dim blatt As Worksheet
Set blatt = Worksheets("Zuständigkeiten")
'user = Environ("UserName")                      'Windows Username auslesen und "user"  _
zuordnen
user = "MMU"
With blatt
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row 'Zählwert der Schleife festlegen (bis  _
keine Werte mehr erscheinen)
If .Cells(i, 3).Value = user Then            'sofern der User mit der  _
Berechtigungsangabe übereinstimmt
rechte = Cells(i, 4)
With Worksheets("Liste")                    'soll im Sheet Liste die Sperrung für  _
den Bereich aufgehoben werden
.Range(rechte).Locked = False
End With
End If
Next i
End With
With Sheets("Liste")                            'Danach soll der Blattschutz aktiviert  _
werden
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
End With
End Sub


noch nicht fertig, weil vba bei ".Range(rechte).Locked = False" auf einen fehler läuft, da "rechte" ein string, kein range ist.
bei .protect solltest du noch eine passwort zum unlock angeben.
heiko

Anzeige
AW: Zellensperre setzen beim Öffnen läuft nicht
17.06.2009 14:32:55
Thorsten
Danke - direkt eine Frage:
Wieso verwendest Du "Worksheets" anstelle von "Sheets"? Wo ist der Unterschied?
Werds gleich mal einbauen.
AW: Zellensperre setzen beim Öffnen läuft nicht
17.06.2009 14:35:43
Heiko
weil bei "Sheets" der ausdruck "Cells(Rows.Count, 1).End(xlUp).Row" aus deinem alten Code den Wert 2 hat. deine letzte zeile ist aber 8, und die wird nur korrekt ermittelt, wenn du Worksheets("Zuständigkeiten") schreibst.
heiko
AW: Zellensperre setzen beim Öffnen läuft nicht
17.06.2009 14:37:53
Thorsten
Ich danke Dir vielmals!!
Habs umgebaut und es tut ...
Bis zum nächsten Mal! ;o)
Gruss
Thorsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige