ich habe einen Mitarbeiterplan erstellt. Es haben nur Vorgesetzte Zugriff auf alle Daten und Änderungsrechte. Der einzelne Mitarbeiter sieht nur Daten die ihn betreffen.
Beim öffnen wir eine Benutzerabfrage gemacht und wenn ein berechtigter Vorgesetzter gefunden wurde, wird der Schreibschutz entfernt und alle Daten eingeblendet.
Wird ein Mitarbeiter gefunden, werden nur seine Zeilen eingeblendet und die Mappe wieder schreibgeschützt.
Soweit so gut. Nun wollte ich, dass bei einem Mitarbeiter die Datei erneut, Schreibgeschützt geöffnet wird. Damit er diese nicht blockiert fals ein Vorgesetzter was ändern will. Und irgendwas ändern darf ein Mitarbeiter sowieso nicht.
Der Code lautet wie folgt und funktioniert eigentlich auch:
If Berechtigt = False Then
If ActiveWorkbook.ReadOnly = False Then
Application.DisplayAlerts = False
Workbooks.Open (ThisWorkbook.Path & "\" & ThisWorkbook.Name), ReadOnly:=True
End If
End If
Das Problem ist das der VBA-Code beim erneuten öffnen anscheinden nicht erneut von Anfang an ausgeführt wird. Ich muss bevor die Datei erneut geöffnet wird, die Änderungen durch das Ein-/Ausblenden bestimmter Zeilen, zuvor speichern ( ThisWorkbook.Save). Habe nun rausgefunden wenn der Fall eintritt, dass Zeitgleich ein anderer Benutzer auf die Datei zugreift er kurzzeitig die Daten des anderen sieht (bis seine Infos eingeblendet werden). Weil ja die Infos des anderen zuvor eingeblendet gespeichert wurden. (Trotz Application.ScreenUpdating = False). Hat jemand eine Idee wie ich das Problem umgehen kann? Am besten das der VBA Code (Sub Workbook_Open()) einfach nochmal von vorne startet.
MfG
Johannes