Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Blattschutz aufheben bei bestimmten User
#1
Hallo,
ich habe folgendes vor.

Diese Excel Datei wird von allem Mitarbeiter benutzt.
Alle Mitarbeiter dürfen „Lesen“ und den Inhalt je nach Bedarf „Filtern“, aber nichts verändern.

Nun möchte ich, wenn MA1 bis MA5  (SystemBenutzer lauten wie folgt „A7178594“ „A8178594“ „A1175794“ „A4118524“ „Admin“) die Excel Datei öffnen, soll der Blattschutz bei allen Tabellen aufgehoben werden.
=> Damit diese MA die Datei bearbeiten können.

Im Netz habe ich folgenden Code gefunden.
Mit nur einem MA Funktioniert es.

Doch wie ändere ich es so um, dass diese oben genannten MA berücksichtigt werden.

Code:
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Code:
Sub UserName()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
  If Left(Buffer, BuffLen - 1) = "A7178594" Then   ' MA-1
      Call Blattschutz_alle_Tabellen_aufheben
  End If
End Sub
Danke
Antworten Top
#2
Hallo FaDos,
nach Anpassen des Arrays Namen sollte es gehen:
Sub UserName()
Dim Buffer As String * 100
Dim BuffLen As Long
Dim Namen, nam
  Namen = Array("a", "b") 'Namen der berechtigten Nutzer
  GetUserName Buffer, BuffLen
  For Each nam In Namen
    If Left(Buffer, BuffLen - 1) = nam Then
      Call Blattschutz_alle_Tabellen_aufheben
    End If
  Next nam
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0

Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#3
Hallo,
bei mir Funktioniert es leider nicht.


Wir benutzen Excel 2007

Danke
Antworten Top
#4
Hallo FaDos,
und Du hast bei Namen = Array("a", "b")

auch statt a bzw. b Deine Systemnamen A717... eingesetzt? Was heißt: es funktioniert nicht?
Gruß der AlteDresdner
Edit: und die von mir vergessene zeile Bufflen=100 wieder eingesetzt?
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste