Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitsblätter nur für bestimmte Benutzer sichtbar

Forumthread: Arbeitsblätter nur für bestimmte Benutzer sichtbar

Arbeitsblätter nur für bestimmte Benutzer sichtbar
15.01.2003 01:36:55
michelman
Hallo liebe Leute im Excel-Forum,

ist es eigentlich möglich bestimmte Arbeitsblätter aus einer Excel-Mappe nur für bestimmte Benutzer(hier ist der Benutzer in einem NT/2000 Netzwerk gemeint)anzuzeigen?

Beispiel:

Der Benutzer mit der Systemanmeldung "ernst.einfach" soll in der Excel-Mappe "test.xls" nur die Arbeitsblätter "Tabelle1", "Tabelle4" und "Tabelle7" sehen dürfen(Verknüpfungen aus anderen nicht sichtbaren Tabellenblättern dieser Mappe müssen trotzdem funktionieren, sollen also nur ausgeblendet sein, aber von diesem Benutzer auch nicht sichtbar gemacht werden können).
Der Benutzer mit der Systemanmeldung "hans.wurst" soll hingegen nur die Arbeitsblätter "Tabelle2", "Tabelle3", "Tabelle5" und "Tabelle6" sehen können.

Geht so etwas ???

Wenn ja wie ???

Gruß michel

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Arbeitsblätter nur für bestimmte Benutzer sichtbar
15.01.2003 05:37:15
andre
hallo michael,
klar geht das. entweder du programmierst eine anmeldung in die mappe oder nimmst den username des angemeldeten users.
prinzipiell etwa so:
code in DieseArbeitsmappe
private sub workbook_open()

For Each blätter In Sheets()

if application.username="hans.wurst" then
if blätter.name="Tabelle2" then blätter.visible=true:goto weiter
'... für jedes blatt von hans
end if

'hier genauso für ernst
'...
blätter.Visible = False

weiter:
Next
end sub

gruss andre

Anzeige
Re: Arbeitsblätter nur für bestimmte Benutzer sichtbar
15.01.2003 09:27:36
Hajo_ZI
Hallo michel

mit der vorgeschlagenen Lösung von Andre mit application.username liest Du nur den Namen aus der in Excel eingeschrieben ist. Den kann ja jeder ändern. Falls Du den Anmeldenamen im Netzwerk haben willst.

x2 = Environ("USERNAME") ' unter Windows NT

oder andere Betriebsysteme
Dim BName As String
Declare Function GetUserName Lib "advapi32.dll" _
Alias "GetUserNameA" (ByVal lpBuffer As String, _
nSize As Long) As Long
Sub Benutzerfilter()
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
BName = Left(Buffer, BuffLen - 1)
If BName <> "Jürgen" Then Exit Sub
'--------------------------------------
' Andere Ausführungen, wenn Name stimmt
'--------------------------------------
End Sub
Von Jürgen Wenzel


Gruß Hajo

Anzeige
Danke, Danke, Danke !!!
16.01.2003 01:00:36
michelman
Vielen Dank andre und HaJo,

hat mit euren Tips bestens geklappt!

Gruß michel

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Arbeitsblätter nur für bestimmte Benutzer sichtbar machen


Schritt-für-Schritt-Anleitung

Um in Excel bestimmte Arbeitsblätter nur für bestimmte Benutzer sichtbar zu machen, kannst du die folgende Schritt-für-Schritt-Anleitung befolgen. Diese Anleitung setzt voraus, dass du mit VBA (Visual Basic for Applications) vertraut bist.

  1. Öffne die Excel-Datei, in der du die Arbeitsblätter einschränken möchtest.

  2. Gehe zu Entwicklertools und klicke auf Visual Basic.

  3. Im VBA-Editor öffne DieseArbeitsmappe.

  4. Füge den folgenden Code ein:

    Private Sub Workbook_Open()
       Dim BName As String
       BName = Environ("USERNAME") ' Holt den Benutzernamen des aktuellen Windows-Nutzers
    
       For Each Blatt In ThisWorkbook.Sheets
           Blatt.Visible = xlSheetHidden ' Alle Blätter zunächst ausblenden
       Next Blatt
    
       If BName = "ernst.einfach" Then
           ThisWorkbook.Sheets("Tabelle1").Visible = xlSheetVisible
           ThisWorkbook.Sheets("Tabelle4").Visible = xlSheetVisible
           ThisWorkbook.Sheets("Tabelle7").Visible = xlSheetVisible
       ElseIf BName = "hans.wurst" Then
           ThisWorkbook.Sheets("Tabelle2").Visible = xlSheetVisible
           ThisWorkbook.Sheets("Tabelle3").Visible = xlSheetVisible
           ThisWorkbook.Sheets("Tabelle5").Visible = xlSheetVisible
           ThisWorkbook.Sheets("Tabelle6").Visible = xlSheetVisible
       End If
    End Sub
  5. Speichere die Datei als Excel-Makro-Enabled Workbook (*.xlsm).

  6. Schließe den VBA-Editor und teste die Datei, indem du dich als die verschiedenen Benutzer anmeldest.


Häufige Fehler und Lösungen

  • Problem: Arbeitsblätter sind nicht versteckt.

    • Lösung: Stelle sicher, dass der Code korrekt in DieseArbeitsmappe eingefügt ist und die Excel-Datei als Makro-fähig gespeichert wurde.
  • Problem: Benutzername wird nicht korrekt erkannt.

    • Lösung: Überprüfe, ob der Benutzername in Windows korrekt ist und mit dem im Code angegebenen übereinstimmt.

Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du auch die Berechtigungen über die Freigabe-Funktion in Excel nutzen. Hier ist eine alternative Methode:

  1. Speichere die Excel-Datei in OneDrive oder SharePoint.
  2. Verwende die Funktion „Teilen“, um die Datei nur für bestimmte Personen freizugeben.
  3. Wähle die Option für „Bearbeitungszugriff“ und beschränke den Zugriff auf bestimmte Arbeitsblätter.

Diese Methode eignet sich besonders für die Zusammenarbeit in Teams und ermöglicht es dir, die Sichtbarkeit von Arbeitsblättern zu steuern.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Arbeitsblätter in Excel nur für bestimmte Benutzer freigeben kannst:

  • Beispiel 1: Du hast eine Excel-Datei mit Finanzdaten. Du möchtest, dass nur der Finanzmanager auf das Arbeitsblatt „Finanzen“ zugreifen kann. Verwende den oben angegebenen VBA-Code, um die Sichtbarkeit für andere Benutzer zu steuern.

  • Beispiel 2: In einer Projektmanagement-Datei möchtest du, dass nur bestimmte Teammitglieder die „Projektübersicht“ sehen können. Setze die Arbeitsblätter so, dass sie für alle anderen Benutzer unsichtbar sind.


Tipps für Profis

  • Verwende die Funktion Application.UserName, um Benutzernamen abzurufen, jedoch sei vorsichtig, da dies von den Benutzern geändert werden kann.
  • Wenn du Excel-Tabellenblätter nur für bestimmte Benutzer sichtbar machen möchtest, nutze zusätzliche Sicherheitsmaßnahmen, wie Passwörter für bestimmte Bereiche.
  • Denke daran, dass das Verstecken von Arbeitsblättern nicht als vollständiger Schutz betrachtet werden sollte, da erfahrene Benutzer die Blätter möglicherweise wieder sichtbar machen können.

FAQ: Häufige Fragen

1. Kann ich nur ein Tabellenblatt freigeben?
Ja, du kannst in Excel nur ein Tabellenblatt freigeben, indem du die Sichtbarkeit für andere Arbeitsblätter mit VBA steuerst.

2. Wie kann ich sicherstellen, dass andere Benutzer die versteckten Arbeitsblätter nicht sichtbar machen können?
Du kannst die Arbeitsblätter mit dem Befehl xlSheetVeryHidden anstelle von xlSheetHidden ausblenden, was bedeutet, dass sie nicht einmal über die Benutzeroberfläche sichtbar gemacht werden können.

3. Welche Excel-Versionen unterstützen diese Funktionen?
Diese Methoden sind in Excel 2010 und höher verfügbar, einschließlich Excel für Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige