active.workbook als Objektvariable
30.03.2005 09:43:34
Harald
um bei eine bestimmten Datei den Blattschutz automatisch aufzuheben, hab ich Folgendes ADD-IN erstellt.
Geplante Funktionsweise:
Wenn Dateiname = BONUSSYSTEM_Jahr_auf_Transfer, dann soll für User1 und User2 jeder Blattschutz aufgehoben werden. (Das ganze natürlich als Before_Close zum setzen der Passwörter)
Das steht im Modul
Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
..und dieser als Workbook_open Ereignis und bringt in der zweiten Zeile die Fehlermeldung 91 "Objektvariable nicht festgelegt"
Private Sub Workbook_Open()
Dim m As String
m = ActiveWorkbook.Name 'hier kommt die Fehlermeldung
On Error GoTo ende
If m = "BONUSSYSTEM_Jahr_auf_Transfer.xls" Then
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
If Left(Buffer, BuffLen - 1) = "User1" Or Left(Buffer, BuffLen - 1) = "User2" Then
For i = 1 To Worksheets.Count
Sheets(i).Unprotect "Test"
Next i
End If
End If
ende:
End Sub
Anmerkung: Der Code läuft, wenn er im Modul steht und per F5 ausgelöst wird.
Per Workbook_open als Call aufgerufen, kommt ebenfalls die Fehlermeldung.
Bin mal wieder ratlos.
Danke schonmal
Harald