Entsperren von Bearbeitungsbereichen in Excel mithilfe von VBA

531
Jeff

Ich verwende VBA, um meiner Kalkulationstabelle Informationen hinzuzufügen, wenn Daten in eine andere Spalte eingegeben werden. Um dies zu tun, entsperre und sperre ich das Blatt jedoch als Teil des vba-Skripts. Dies erfordert, dass der Benutzer sein Kennwort erneut eingeben muss, um die nächste Zeile zu bearbeiten. Gibt es eine Problemumgehung dafür?

0
Ich weiß nicht genau, wie Ihr Blatt ist, aber funktioniert es, wenn die Zellen, die der Benutzer eingeben soll, nicht gesperrt sind (Zellen -> Format -> Zellen formatieren -> Schutz)? Gibt der Benutzer das Kennwort ein, um das Blatt zu sperren oder zu entsperren? Sie können das Kennwort als Argument in der VBA-Funktion übergeben, sodass der Benutzer es nicht jedes Mal eingeben muss. Thales vor 5 Jahren 0
Ich gebe das Passwort als Argument in der VBA-Funktion, um das Blatt zu schützen / aufzuheben. Ich gehe jedoch auch auf "Überprüfen"> "Schutz"> "Bearbeitungsbereiche zulassen" und lasse einen Bearbeitungsbereich für einen bestimmten Benutzer zu. Der Grund, warum ich das mache, ist, ich möchte nur, dass bestimmte Benutzer bestimmte Zellen bearbeiten können. Das Problem ist, wenn die VBA-Funktion ausgeführt wird, das Kennwort zum Entsperren des Arbeitsblatts eingegeben wird. Dann wird das Kennwort erneut eingegeben, um das Arbeitsblatt zu sperren. Anschließend muss der Benutzer das Kennwort erneut eingeben, um den Bereich bearbeiten zu können, den er bearbeiten darf. Jeff vor 5 Jahren 0
@Jeff, warum bearbeiten Sie nicht das OP und fügen den VBA-Code ein, den Sie zum Sperren / Entsperren des Blattes verwenden. Und bearbeiten Sie besser das Post & Include, dass Ihre Idee darin besteht, bestimmten Benutzern die Bearbeitung bestimmter Datenbereiche zu ermöglichen !! Rajesh S vor 5 Jahren 0

2 Antworten auf die Frage

0
user2800

Ich recherchierte kurz nach dieser Frage und fand heraus, dass eine Option, auf die Thales anspielte, darin bestand, das Passwort als Argument in Ihre VBA zu übergeben.

'Protect worksheet with a password Sheets("Sheet1").Protect Password:="myPassword"  'Unprotect a worksheet with a password Sheets("Sheet1").Unprotect Password:="myPassword" 

Der Nachteil ist, dass Ihr Passwort für alle sichtbar ist, die Ihren Code öffnen können. Vielleicht möchten Sie ein zweites Passwort erstellen, um Ihren Makrocode zu schützen, wenn Sie diese Route ausführen. Siehe den Link unten.

https://stackoverflow.com/questions/11981410/unprotect-sheet-with-password-ohne-exposure-password-in-the-macro

BEARBEITEN: Basierend auf Ihrem Kommentar oben kann es uns helfen, Ihren Code zu sehen. Dann können wir herausfinden, wo es Sinn macht, mit dem Passwort umzugehen.

0
Rajesh S

Ich kann Ihnen zwei mögliche Methoden vorschlagen, mit denen bestimmte Benutzer den angegebenen Datenbereich bearbeiten können.

Methode 1 (VBA-Makro):

Private Sub Workbook_Open()  Dim winUser As String  winUser = Environ("username")  If winUser = "Admin" Then  Range("A1:I100").Select ActiveSheet.Protection.AllowEditRanges.Add Title:="AdminRange", Range:=Range( _ "A1:I100"), Password:="123" End If  If winUser = "User1" Then  Range("A200:I400").Select ActiveSheet.Protection.AllowEditRanges.Add Title:="User1Range", Range:=Range( _ "A200:I400"), Password:="231" End If End Sub 

Methode 2:

  1. Hit Bewertung Tab klicken Sie dann auf Benutzerberechtigungen zum Bearbeiten von Bereichen .
  2. Klicken Sie auf Neu - Schaltfläche und dann Neuer Bereich Dialogfeld angezeigt wird .
  3. Schreiben Sie Bereichsnamen, Zellbezug (Range) und Passwort (Passwort ist optional).
  4. Klicken Sie auf Berechtigungen und dann auf Hinzufügen, um Benutzer oder Gruppen auszuwählen
  5. Wenn Sie Name / Gruppe nicht finden können, klicken Sie auf die Schaltfläche Erweitert .
  6. Klicken Sie auf Jetzt suchen .
  7. Klicken Sie dann auf Benutzer oder Gruppe und beenden Sie die Auswahl mit der Schaltfläche OK .
  8. Nachdem der Benutzer- / Gruppenname hinzugefügt wurde, können Sie festlegen, ob das Kennwort erforderlich ist, um den Bereich zu bearbeiten.
  9. Schluss mit Ok .

Beachten Sie, passen Sie die Zellreferenzen an und ändern Sie den Namen des Benutzers im VBA-Code nach Bedarf.