Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblätter Userabhängig ausblenden

Forumthread: Tabellenblätter Userabhängig ausblenden

Tabellenblätter Userabhängig ausblenden
26.07.2015 15:54:32
Helmut

Hallo liebes Forum
Sitze schon wieder mal einige Stunden vorm PC und komm nicht weiter.
Ich möchte das wenn der "Huber" und der "Maier" die Excel Tabelle öffnen, nur Tabellenblatt1,2 +3 sehen.(Insgesamt hat die Mappe sagen wir mal 10 TB). Hingegen wenn jemand anderer die Mappe öffnet, sollen alle 10 TB sichtbar sein. Ist dies mit einen Makro möglich? Ich sage jetzt schon mal herzlichen Dank für eure Mithilfe.
LG Helmut

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter Userabhängig ausblenden
26.07.2015 16:42:56
Daniel
Hi
du hast zwei möglichkeiten zu ermitteln, wer gerade am Rechner sitzt:
mit Environ("Username") bekommst du die UserID, mit der sicher Anwender in Windows angemeldet hat.
mit Application.Username bekommst du die Bezeichung, die der Anwender selbst in den Optionen als Benutzername eingegeben hat.
je nachdem welche Daten dir vorliegen, kannst du dann im Workbook-Open-Event folgenden Code hinterlegen:
Select Case Application.Username
Case "Huber", "Maier"
Tabelle1.Visible = xlsheetvisible
Tabelle2.Visible = xlsheetveryhidden
Tabelle3.Visible = xlsheetvisible
usw für alle Tabellenblätter
Case Else
Tabelle1.visible = xlsheetvisible
Tabelle2.visible = xlsheetvisible
usw für alle Tabellenblätter
End Select
allerdings greift das nur, wenn die Makros aktiviert sind.
bei deaktivierten Makros können auch Huber und Maier alles sehen.
wenn du das sicher stellen willst, wirds etwas komplizierter, du musst:
- im BeforeSave-Event alle Blätter ausblenden bis auf ein für alle zugängliches Deckblatt
- im AfterSave-Event wieder die Blätter einblenden, entsprechend des Userser, damit dieser nach dem Speichern wieder normal arbeiten kann
- im WorkbookOpen-Event dann wie gezeigt die Blätter einblenden.
wenn dann jemand die Datei ohne Makros öffnet, bekommt er nur das eine Deckblatt zu sehen.
Gruss Daniel

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
26.07.2015 20:47:09
Helmut
Hallo Daniel
Danke für deine rasche Hilfe, doch leider bekomme ich eine Fehlermeldung: Fehler beim Komplieren: Sub,Function oder Proberty erwartet!
Natürlich haben meine Tabellenblätter Namen und nicht TB 1 usw. Diese Namen habe ich natürlich auch im Code angepasst, auch den User, aber......Fehlermeldung.
Noch was: Wieso ist einmal Tabelle1.Visible = xlsheetvisible und dann Tabelle2.Visible = xlsheetveryhidden ??????
Hajo ich weis das in Excel nicht sicher ist, aber die Leute die bei mir damit arbeiten, wissen nicht sehr viel über Excel und geben auch nur Daten ein. Trotzdem danke.
LG Helmut

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
26.07.2015 22:00:55
Daniel
Hi
ich kann weder hellsehen, noch mich auf deinem Rechner einhacken, dh du musst mir schon deinen Code zeigen, damit ich dir sagen kann, was du falsch gemacht hast.
zu deiner zweiten Frage:
ein Excelblatt kann bezüglich seiner sichtbarkeit 3 Zustände annehmen:
a) für den Andwender sichbar
b) ausgeblendet, aber der Anwendern bekommt das Blatt in der entsprechenden Menüfunkton angezeigt und kan es bei bedarf selber wieder einblenden
c) komplett ausgeblendet, dh auch in dieser Menüfunktion wird das Blatt nicht angezeigt und es kann nur über VBA wieder sichtbar gemacht werden.
a) ist xlsheetVisible
b) ist xlsheethidden
c) ist xlsheetveryhidden
du musst halb bleim Dateistart die Blätter xlsheetvisible setzen, die der Anwender sehen darf und die er nicht sehen darf auf xlsheetveryhidden.
Gruss Daniel

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
26.07.2015 22:16:55
Helmut
Guten Abend Daniel
Sorry hatte den Code zum einfügen vergessen, hier ist er
Private Sub Workbook_Open()
Select Case Application.UserName
Case "helmu_001"
Heinl W.Visible = xlSheetVisible
Kinzel.Visible = xlSheetVeryHidden
Kitzberger.Visible = xlSheetVisible
' usw für alle Tabellenblätter
Case Else
Heinl W.Visible = xlSheetVisible
Kinzel.Visible = xlSheetVisible
Kitzberger.Visible = xlSheetVisible
'usw für alle Tabellenblätter
End Select
End Sub

Also "helmu_001" ist der Benutzer den Excel von mir verwendet.
Besten Dank im voraus Helmut

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
26.07.2015 22:37:42
Daniel
HI
jedes Tabellenblatt hat zwei Namen:
a) den Codenamen, dieser steht im Projektexplorerbaum als erstest vor der Klammer
b) den Indexnamen, dieser steht im Projektexplorerbaum als zweites in der Klammer. Dieser Name wird auch auf den Tabellenblattreitern angezeigt.
wenn du den Codenamen verwendest, um das Blatt anzusprechen, dann so:
Tabelle1.Visible = xlsheetvisible

wenn du den Indexnamen (dh den Namen, der auf den Reitern steht) verwenden willst, dann:
Worksheets("Tabelle1").Visible = xlsheetvisible
Gruss Daniel

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
27.07.2015 16:59:58
Helmut
Hallo Daniel
Entweder habe ich ein Brett vorm Kopf oder was. Hier nachstehend nochmals der Code, doch der tut nichts!!!Ich verzweifle.
Private Sub Workbook_Open()
Select Case Environ("helmu_001")
Case "helmu_001"
Tabelle13.Visible = xlSheetVeryHidden
Tabelle14.Visible = xlSheetVeryHidden
Tabelle15.Visible = xlSheetVeryHidden
' usw für alle Tabellenblätter
Case Else
Tabelle13.Visible = xlSheetVisible
Tabelle14.Visible = xlSheetVisible
Tabelle15.Visible = xlSheetVisible
'usw für alle Tabellenblätter
End Select
End Sub
Danke nochmals im voraus LG Helmut

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
27.07.2015 17:05:40
Daniel
Hi
select Case Environ("UserName")
das "Username" muss dort als Text genao so stehen bleiben.
Die Funktion ENVIRON kann dir meherer unterschiedliche Systeminformationen zurückgeben, dh du musst der Funktion noch mitteilen, welche Information du haben willst.
Gruß Daniel

AW: Tabellenblätter Userabhängig ausblenden
27.07.2015 17:10:20
Daniel
Hi
select Case Environ("UserName")
das "Username" muss dort als Text genao so stehen bleiben.
Die Funktion ENVIRON kann dir meherer unterschiedliche Systeminformationen zurückgeben, dh du musst der Funktion noch mitteilen, welche Information du haben willst.
Gruß Daniel

Anzeige
AW: Tabellenblätter Userabhängig ausblenden DANKE
27.07.2015 20:17:25
Helmut
Hallo Daniel
Juhu es funktioniert!!!!!!DANKE!!!! Mein Chef sagt immer: "Ist sicher nur ein Anwendungsfehler". Wie recht er doch hat. Danke nochmal an dich und an das ganze Forum. Was würden wir ohne euch machen. danke danke danke
Herbers Excel Forum "da wird dir geholfen"
LG Helmut

Anzeige
AW: Tabellenblätter Userabhängig ausblenden
26.07.2015 17:06:20
Hajo_Zi
Hallo Helmut,
in Excel ist nichts sicher.
"Maier" öffnet die Datei ohne Makros und er sieht alles.

;
Anzeige

Infobox / Tutorial

Tabellenblätter Userabhängig Ausblenden


Schritt-für-Schritt-Anleitung

Um Excel-Tabellenblätter nur für bestimmte Benutzer sichtbar zu machen, kannst du den folgenden VBA-Code verwenden. Dieser Code wird im Workbook_Open-Ereignis platziert:

  1. Öffne deine Excel-Datei.
  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  3. Doppelklicke auf ThisWorkbook im Projekt-Explorer.
  4. Füge den folgenden Code ein:
Private Sub Workbook_Open()
    Select Case Application.Username
        Case "Huber", "Maier"
            Worksheets("Tabelle1").Visible = xlSheetVisible
            Worksheets("Tabelle2").Visible = xlSheetVeryHidden
            Worksheets("Tabelle3").Visible = xlSheetVisible
            ' usw für alle Tabellenblätter
        Case Else
            Worksheets("Tabelle1").Visible = xlSheetVisible
            Worksheets("Tabelle2").Visible = xlSheetVisible
            Worksheets("Tabelle3").Visible = xlSheetVisible
            ' usw für alle Tabellenblätter
    End Select
End Sub
  1. Passe die Tabellennamen im Code entsprechend deiner Excel-Datei an.
  2. Schließe den VBA-Editor und speichere die Datei als Makro-aktivierte Datei (z.B. .xlsm).

Häufige Fehler und Lösungen

  • Fehler: "Sub, Function oder Property erwartet!"

    • Überprüfe, ob die Tabellennamen korrekt im Code verwendet werden. Excel unterscheidet zwischen Codenamen und Indexnamen. Stelle sicher, dass du den richtigen Namen verwendest.
  • Excel-Register seitlich anzeigen:

    • Wenn du die Sichtbarkeit von Tabellenblättern nicht korrekt einstellen kannst, stelle sicher, dass die Makros aktiviert sind. Bei deaktivierten Makros sind die Tabellenblätter möglicherweise nicht so sichtbar, wie du es möchtest.

Alternative Methoden

Falls du keine Makros verwenden möchtest, kannst du auch die Sichtbarkeit von Blättern manuell steuern:

  1. Klicke mit der rechten Maustaste auf das Tabellenblatt, das du ausblenden möchtest.
  2. Wähle "Ausblenden".
  3. Um das Blatt wieder sichtbar zu machen, klicke mit der rechten Maustaste auf einen Tab und wähle "Einblenden".

Beachte jedoch, dass diese Methode nicht benutzerabhängig ist und alle Benutzer die Blätter sehen können, wenn sie wissen, wie man sie einblendet.


Praktische Beispiele

Ein häufiges Szenario ist das Ausblenden von sensiblen Daten. Hier ein Beispiel:

  • Du hast eine Excel-Datei mit 10 Tabellenblättern, von denen nur 3 für die Benutzer Huber und Maier sichtbar sein sollen. Mit dem oben genannten Code kannst du sicherstellen, dass diese Benutzer nur die relevanten Blätter sehen, während andere Benutzer Zugriff auf alle Blätter haben.

Tipps für Profis

  • Nutze die Environ-Funktion, um den Benutzernamen direkt aus der Windows-Umgebung zu ermitteln.
  • Achte darauf, dass die richtigen Zustände für die Sichtbarkeit genutzt werden: xlSheetVisible, xlSheetHidden, und xlSheetVeryHidden.
  • Denke daran, dass bei Verwendung von Makros die Excel-Datei als .xlsm gespeichert werden muss, um die Makros funktionsfähig zu halten.

FAQ: Häufige Fragen

1. Wie kann ich Excel-Tabellenblätter nur für bestimmte Benutzer sichtbar machen?
Du kannst dies erreichen, indem du VBA-Code im Workbook_Open-Ereignis nutzt, um die Sichtbarkeit der Blätter basierend auf dem Benutzernamen zu steuern.

2. Wie mache ich ein ausgeblendetes Tabellenblatt wieder sichtbar?
Du kannst ein ausgeblendetes Blatt wieder einblenden, indem du mit der rechten Maustaste auf ein Tabellenblatt klickst und "Einblenden" auswählst.

3. Was passiert, wenn jemand die Datei ohne Makros öffnet?
Wenn die Datei ohne aktivierte Makros geöffnet wird, können alle Benutzer alle Blätter sehen, da die Sichtbarkeitssteuerung nicht greift.

4. Kann ich Excel-Tabellenblätter auch ohne VBA ausblenden?
Ja, du kannst Tabellenblätter manuell ausblenden, aber du kannst die Sichtbarkeit nicht benutzerabhängig steuern.

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