Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1776to1780
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Benutzer definierter Zugriff vorgebe

VBA Benutzer definierter Zugriff vorgebe
22.08.2020 09:19:32
SüßerApfel
Guten morgen zusammen,
ich habe vor zwei Tagen schon mal meine Frage gestellt und wurde darauf hingewiesen die Frage prezisiert zu stellen. Ich möchte das nur bestimmte Nutzer die Excel Datei öffnen dürfen. Wenn ein Benutzer mit rechten die Datei öffnet darf dieser nur ein bestimmtes Tabellenblatt sehen. Bei dem Tabellenblatt gibt es eine Tabelle und ein Pivotchart diagramm. In der Tabelle stehen in einer Spalte alle Usernamen. Im Pivotchart stehen auch die Usernamen in einem Datenschnitt. Wenn der Benutzer die Datei öffnet sollen also nur die Daten des einen Benutzers in der Tabelle und im Pivot Chart angezeigt werden. Alle anderen User Informationen sollen nicht auswählbar sein außer für einen User dem definierten Admin der darf alles sehen.
Ich habe schon mal eine Beispielmappe erstellt und versucht das Problem in VBA zu lösen. Bis jetzt schaffe ich es nur die Tabelle nach dem Namen zu Filtern nicht aber den Datenschnitt. Und ich weiß leider nicht wie ich den Filter und Datenschnitt nach dem vorfiltern für den Benutzer sperren kann. Es wäre super wenn mir hier jemand helfen könnte
https://www.herber.de/bbs/user/139772.xlsm

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Benutzer definierter Zugriff vorgebe
22.08.2020 10:08:09
SüßerApfel
Ich glaube das ich es jetzt fast habe, aber mir fehlt noch eine gegenteilige funktion von .ClearManualFilter für den Slicer. Gibt es einen Befehl womit im Slicer nichts ausgewählt ist? Mit dem Befehl .ClearManualFilter kann ich die komplette Auswahl rückgängig machen, aber damit ist ja dann alles ausgewählt ich möchte das gar nichts ausgewählt ist.
Dann suche ich noch einen Befehl mit dem ich die Auswahl des Slicers für Benutzer sperren kann. Wenn es so einen locked Befehl nicht gibt dann vielleicht einen mit dem ich den Slicer ausblenden kann?
AW: VBA Benutzer definierter Zugriff vorgebe
22.08.2020 10:17:43
Herbert_Grom
Hallo,
Also ich würde das wie folgt machen:
1. in einem 2. Sheet eine Auswahl mittels Formel erstellen
2. in Auto_open den Usernamen auslesen und die Pos des Namens in der UserListe bestimmen und in die Zelle (im Beispiel Tabelle1!I1) einsetzen.
Dann steht in der Tabelle 1 nur der gewünschte Name und dort kannst du dann dein Diagramm bauen.
https://www.herber.de/bbs/user/139773.xlsm
Falls du noch Hilfe brauchst, melde Dich.
Servus
Anzeige
Gelöst =D
22.08.2020 12:14:58
SüßerApfel
Danke für deine Hilfe Herbert an so was habe ich gar nicht gedacht. Das könnte bestimmt auch funktionieren man müsste dann nur noch die Auswahl der anderen User sperren.
Ich habe es jetzt alles mit einem Makro gelöst und es scheint auch zu funktionieren:
Option Explicit
Public UserRechte As String
Private Sub Workbook_open()
UserRechte = Application.UserName
Select Case UserRechte
Case "Tanja", "Tom", "Simon"
With Sheets("Uebersicht")
.AutoFilterMode = False
.Range("B2:H2").AutoFilter
.Range("B2:H2").AutoFilter Field:=1, Criteria1:=UserRechte, VisibleDropDown:= _
False
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_aa")
.SlicerItems("Tanja").Selected = False
.SlicerItems("Tom").Selected = False
.SlicerItems("Simon").Selected = False
.SlicerItems(UserRechte).Selected = True
.Slicers(1).Width = 0
End With
Case "Admin"
With Sheets("Uebersicht")
If .FilterMode Then
.ShowAllData
.Range("B2:H2").AutoFilter Field:=1, VisibleDropDown:=True
End If
End With
With ActiveWorkbook.SlicerCaches("Datenschnitt_aa")
.ClearManualFilter
.Slicers(1).Width = 150
End With
Case Else
Workbooks(ActiveWorkbook.Name).Close SaveChanges:=False
End Select
Application.Goto Reference:=Sheets("Uebersicht").Range("A1")
End Sub
Grüße
SüßerApfel
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige