Hallo in die Runde. Ich bitte mal wieder um eure Hilfe. Ich habe einen Code in den Foren gefunden, der mir für einen bestimmten Bearbeiter eine Tabelle mit Passwort öffnen und schließen soll. Wenn ich nun den Code mit F8 durchgehe, bleibt er bei der Zeile "ws.Name" = "Tabelle1". Laufzeitfehler 1004, Anwendungs- oder Objekt-definierter Fehler. Ist nicht mit ws.name die Tabelle angesprochen? Ein zweites wäre noch die Auswahl in Spalte "E" in >= 10 und <= 20 in die richtige Funktion zu bringen. Für mich ebenfalls nicht erklärlich ist: Wenn ich aktiv war, wird eine neue Tabelle geöffnet. Hätte hierfür jemand eine Erklärung. Gruß Josef
Visual Basic:
Sub createTable()
Dim ws As Worksheet
Dim user As String
' Definieren des Benutzernamens
user = "user1"
' Erstellen eines neuen Arbeitsblatts
Set ws = ThisWorkbook.Worksheets.Add
' Festlegen des Blattnamens
ws.Name = "Tabelle1"
' Aktivieren des Arbeitsblatts
ws.Activate
' Freigeben der Spalten E und F für den Benutzer
ws.Protect Password:="user1", UserInterfaceOnly:=True
ws.EnableSelection = xlUnlockedCells
ws.Range("E:F").Locked = True
ws.Range("E:F").Cells.Interior.ColorIndex = 15 ' gray color
' Bedingte Formatierung der Zellen in Spalte S
ws.Range("E:E").FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="10"
ws.Range("E:E").FormatConditions(ws.Range("E:E").FormatConditions.Count).Interior.ColorIndex = 15
ws.Range("E:E").FormatConditions.Add Type:=xlCellValue, Operator:=xlGreaterEqual, Formula1:="20"
ws.Range("E:E").FormatConditions(ws.Range("E:E").FormatConditions.Count).Interior.ColorIndex = 15
ws.Range("E:E").FormatConditions(ws.Range("E:E").FormatConditions.Count).Font.Bold = True
' Schreiben des Benutzernamens in Zelle A1
ws.Range("A1").Value = "Benutzer: user1 " & user
End Sub