Registriert seit: 29.09.2015
Version(en): 2030,5
02.03.2016, 14:09
(Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2016, 14:09 von snb.)
Danke.
- oder es gibt irgendwo ein Leerzeichen: msgbox len(environ("username"))
- oder application.enableevents=False (sollte application.enableevents=True sein)
- oder du doppelklickst nicht in der Zelle $ZZ$11
Bei mir habe ich getestet:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("TopSecret").Visible = 2 + 3 * (Environ("username") = "Günter")
Cancel = True
End Sub
und
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Sheets("TopSecret").Visible = 2 + 3 * (Environ("username") <> "Günter")
Cancel = True
End Sub
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo zusammen,
snb und Günter gehen von unterschiedlichen Voraussetzungen aus.
Der bisherige und von Ralf angepasster Code blendet die Tabelle je nach Status ein oder aus.
snb's Code blendet nur ein.
Günter testet snb's Code so.
Das Blatt ist eingeblendet und Günter führt den Code aus. Es passiert nichts. Das ist auch richtig so.
Um zu sehen, dass da etwas passiert, müsste Günter das Blatt erst ausblenden, in diesem Fall manuell, da snb's Code dafür nicht gedacht ist.
Fazit:
Das was Günter erreichen möchte, geht nicht mit snb's Code.
Gruß Atilla
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
02.03.2016, 14:23
(Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2016, 14:23 von RPP63.)
*gelöscht, falsch gedacht …*
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 14.04.2014
Version(en): 2003, 2007
02.03.2016, 14:26
(Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2016, 14:27 von atilla.)
Hallo Ralf,
das ist mir klar,
nur wann kommt in diesem Teil:
(environ("username")="Günter")
nicht True raus?
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi @ all, Hi Atilla,
du hast es auf den Punkt gebracht. Ich habe das nicht überrissen, dass nur eingeblendet wird. Und das klappt in der Tat.
Ich danke euch, denke aber, dass wir es jetzt dabei bewenden lassen können. Meine Datei steht ja bereits.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 06.12.2015
Version(en): 2016
Hallo,
da die Codes von snb immer interessant sind, habe ich ihn getestet. Aber der Code blendet auch sichtbare Sheets aus, falls das PW nicht stimmt und -bei richtigem PW- aucj wieder ein. Merkwürdig fand ich, dass 'true' auf -1, 'false' auf 2 gesetzt ist. Warum wissen wohl nur die MS-Programmierer.
Mfg
Registriert seit: 29.09.2015
Version(en): 2030,5
Die ursprüngliche Frage war das ein Arbeitssblat nur sichtbar ist für jemand die dazu berechtigt ist.
Statt ein User ein Passwort zu fragen wäre es nützerfreundlicher die Code überprufen zu lassen ob ein 'user' berechtigt ist.
Das kann anhand der application.username (ist doch einfach zu ändern vom User), der eviron("Username") oder shell.computername.
Die Code die ich gegeben habe hat als Ergebnis, dass nur der 'user' dessen environ("username") übereinstimmt mit der in der Code geschriebene Name das -versteckte- Arbeitsblatt 'Topscret' sehen kann. Jeder andere User wird es nicht gelingen.
Die Ursprüngliche Frage ging aus von eines verstecktes Arbeitsblatt. Und dan kann nur "Günter" durch doppelklicken das Arbeitsblatt sichtbar machen. ;)
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi snb,
Zitat:Die Code die ich gegeben habe hat als Ergebnis, dass nur der 'user' dessen environ("username") übereinstimmt mit der in der Code geschriebene Name das -versteckte- Arbeitsblatt 'Topscret' sehen kann. Jeder andere User wird es nicht gelingen.
Die Ursprüngliche Frage ging aus von eines verstecktes Arbeitsblatt. Und dan kann nur "Günter" durch doppelklicken das Arbeitsblatt sichtbar machen. [img]
Dateiupload bitte im Forum! So geht es: Klick mich!
]
ich denke, da gab's Missverständnisse. Mein Anliegen war,
dass ich mit einem Makro ein anderes Blatt ein- und ausblende.Zitat:aus Tabellenblatt1 heraus blende ich per Doppelklick ein weiteres Tabellenblatt ein bzw. aus.
Und damit niemand, dem ich berechtigter Weise die Datei zur Einsicht überlasse und durch Zufall die Zelle "entdeckt", das versteckte Tabellenblatt einfach öffnet, wollte ich das Öffnen mit einem Passwort verhindern. Ich weiß, verhindern kann ich in XL nichts, aber zumindest erschweren.
Zitat:Kann ich eine Passwortabfrage einbauen, bevor das Arbeitsblatt eingeblendet wird? Ich will vermeiden, dass durch zufälliges Klicken in die richtige Zelle das Blatt eingeblendet wird.
Der Hintergrund ist einfach. Solange niemand an die Datei ranmuss, ist das Blatt eh offen, da ich der einzige Benutzer bin. Wenn nun jemand an die Datei muss (das kann wenigen Fällen ausnahmsweise nötig sein), dann will ich das Blatt so verstecken, dass der/diejenige es nicht einblenden kann.
Aber wie ja schon geschrieben, das habe ich durch Ralfs Hilfe bereits so in den Griff bekommen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)