Passwortabfrage vor Einblenden eines Arbeitsblattes per Doppelklick
#21
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
Top
#22
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
Top
#23
*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)
Top
#24
Hallo Ralf,

das ist mir klar,

nur wann kommt in diesem Teil:

(environ("username")="Günter")

nicht True raus?
Gruß Atilla
Top
#25
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)
Top
#26
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
Top
#27
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. ;)
Top
#28
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)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste