Passwortabfrage vor Einblenden eines Arbeitsblattes per Doppelklick
#1
Hallo Freunde,

aus Tabellenblatt1 heraus blende ich per Doppelklick ein weiteres Tabellenblatt ein bzw. aus. Dieses Makro benutze ich dazu:


Zitat:Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Address(0, 0) = "ZZ11" Then
      Application.ScreenUpdating = False
      If Sheets("TopSecret").Visible = xlVeryHidden Then
        Sheets("TopSecret").Visible = True
        Else: Sheets("TopSecret").Visible = xlVeryHidden
      End If
      Application.ScreenUpdating = True
      Cancel = True
   End If
End Sub

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. Das VBA-Projekt selbst ist bereits mit einem Kennwort gesichert (soweit man bei XL von Sicherheit reden kann :32:)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#2
Moin Günter, Du Sicherheitsfanatiker!  :21:
Code:
     If Sheets("TopSecret").Visible = xlVeryHidden Then
        If InputBox("Geheim!") = "RPP63" Then Sheets("TopSecret").Visible = True
     Else: Sheets("TopSecret").Visible = xlVeryHidden
     End If
Unknackbar! :19:

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • WillWissen
Top
#3
Lieber Ralf,

da lass ich doch gleich mal ein ebenso unknackbares wie sakrisches Dankschön da. Code ist perfekt.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#4
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Address = "$ZZ$11" Then
     Sheets("TopSecret").Visible = 2+3*(environ("username")="RPP")
     cancel=true
   end if
end Sub
Top
#5
Hübsch, snb!  :19:

Ich tausche Dein + gegen ein -
:21:

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
#6
(01.03.2016, 15:32)RPP63 schrieb: Ich tausche Dein + gegen ein -
:21:
Nicht klug ;)

2- 3*-1 = 5
2+3*-1 =-1   (true/visible)
2+3* 0 = 2      (very hidden)
Top
#7
… und ich dachte immer WAHR=1 und FALSCH=0  :21:

So unklug war der Ralf gar nicht:

AB
12snb (+)
25
32RPP (-)
4-1
Formeln der Tabelle
ZelleFormel
A1=2+3*("RPP"<>"RPP")
A2=2+3*("RPP"="RPP")
A3=2-3*("RPP"<>"RPP")
A4=2-3*("RPP"="RPP")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

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
#8
In Excel:

true=1
false=0

In VBA:

true=-1
false=0

Und das hier ist VBA
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Address = "$ZZ$11" Then
     Sheets("TopSecret").Visible = 2+3*(environ("username")="RPP")
     cancel=true
   end if
end Sub

Ergo ?
Top
#9
Blush
Direktfenster:
Code:
?1*[true]
-1

Wieder was gelernt!
:19:

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
#10
(01.03.2016, 15:22)snb schrieb:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
   If Target.Address = "$ZZ$11" Then
     Sheets("TopSecret").Visible = 2+3*(environ("username")="RPP")
     cancel=true
   end if
end Sub

Hi snb,

danke, dass du mir ein weiteres Makro zur Verfügung stellst. Allerdings habe ich ein Verständnisproblem. Welcher Username ist gemeint? Ich habe mir meinen Usernamen in den Systeminformationen anzeigen lassen, damit ich die korrekte Schreibweise habe. Desgleichen habe ich natürlich die Tabellennamen sowie die (Klick)Adresse an die tatsächlichen Gegebenheiten angepasst.

Trotzdem wird das Blatt nicht ein- oder ausgeblendet. Es kommt auch keine Meldung; schlicht: es rührt sich nichts. An welcher Stelle müsste die Passwortabfrage in deinem Code rein?

Erklärungen bzgl. VBA bitte in der Form, dass es für einen "Nicht-VBA-ler" nachvollziehbar ist. Ich bin zwar in der Lage Makros aufzuzeichnen, weiß wie ich in den Editor gelange und kann auch kleinere Anpassungen in einem bestehenden Makro vornehmen. Zu mehr reicht aber mein Kenntnisstand nicht.
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: 1 Gast/Gäste