Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

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

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

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.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige