Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten 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
Antworten 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)
Antworten 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
Antworten 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)
Antworten Top
#6
(01.03.2016, 14: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)
Antworten 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)
Antworten 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 ?
Antworten 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)
Antworten Top
#10
(01.03.2016, 14: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)
Antworten Top


Gehe zu:


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