• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Blad zichtbaar maken met wachtwoord

Status
Niet open voor verdere reacties.

RonOostendorp

Nieuwe gebruiker
Lid geworden
20 apr 2010
Berichten
3
Ik ben op zoek naar een methode om een verborgen blad pas weer zichtbaar te maken na het invullen van een wachtwoord. Wanneer het wachtwoord goed is ingevuld mag pas het verborgen blad weer zichtbaar worden.
Weet iemand hoe dit ingesteld kan worden?
 
Beste RonOostendorp ;)

Zie hier een paar bestandjes.

Groetjes Danny. :thumb:
 

Bijlagen

  • Paswoord ingeven en iedere gbruiker heeft zijn tabblad.xls
    70,5 KB · Weergaven: 858
  • Paswoord ingeven om tabblad 2 te openen.xls
    42 KB · Weergaven: 1.290
  • PasswordBook.rar
    77,2 KB · Weergaven: 283
  • Bestand openen met wachtwoord.xls
    50 KB · Weergaven: 535
Blad zichtbaar met beveiliging

Danny,

Bedankt voor de snelle reactie. Ik heb even de bestandjes bekeken, maar ik kan nog steeds de verborgen bladen zichtbaar maken via het menu-blad-zichtbaar maken :confused:. Hiervoor hoef ik geen wachtwoorden in te vullen.
Wat ik graag zou willen is dat wanneer men via het menu-blad-zichtbaar maken een verborgen blad kiest, er op dat moment een wachtwoord ingevuld moet worden om het blad zichtbaar te maken.

Ron
 
Hoi Ron,

Ga naar Visual Basic => Klik in je bestand tegelijk op ALT en F11. Dubbelklik links op ThisWorkbook en plak onderstaande code in het scherm dat in beeld komt. Vervang NAAMBLAD voor de tabbladnaam die jij wil verbergen. Als je meer tabbladen wil verbergen kun je deze regel kopieren en er gelijk onder plakken.

Code:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Sheets("[COLOR="Red"]NAAMBLAD[/COLOR]").Visible = False
Application.ScreenUpdating = True
End Sub

Klik in Visual Basic op invoegen dan module. Kopieer onderstaande code in de module, het wachtwoord is zoals je ziet 1234. Verander ook hier je tabbladnamen
Code:
Sub [COLOR="red"]NAAMBLAD[/COLOR]Wachtwoord()
     'Prompt the user for a password and unhide the worksheet if correct
         On Error GoTo Einde
    If InputBox[COLOR="Red"]DK[/COLOR]("Toegang alleen voor beheerder. Geef het wachtwoord om door te gaan.", _
        "Beperkte toegang") = [COLOR="red"]1234[/COLOR] Then
        Sheets("[COLOR="red"]NAAMBLAD[/COLOR]").Visible = xlSheetVisible
        Application.Goto [[COLOR="red"]NAAMBLAD[/COLOR]!B3]
     Else
        MsgBox "Ingevoerd wachtwoord is onjuist!", _
        vbCritical + vbOKOnly, "Geen toegang!"
    End If
Einde:
End Sub

Als je het wachtwoord intypt, is het wachtwoord zichtbaar. Als je *** wilt zien (zoals ik) dan moet onderstaande ook doen. Als je onderstaande NIET doet moet je DK achter InputBox weghalen in bovenstaande code, anders werkt het niet.

Maak nog een nieuwe module Invoegen/Module en plak daar onderstaande code in:
Code:
 Option Explicit
 
'////////////////////////////////////////////////////////////////////
 'Password masked  inputbox
 'Allows you to hide characters entered in a VBA Inputbox.
 '
 'Code written by Daniel Klann
 'http://www.danielklann.com/
 'March 2003
 
 '// Kindly permitted to be amended
 '// Amended by Ivan F Moala
 '// http://www.xcelfiles.com
 '// April 2003
 '// Works for Xl2000+ due the AddressOf Operator
 '////////////////////////////////////////////////////////////////////
 
 '********************   CALL FROM FORM *********************************
 '    Dim pwd As String
 '
 '    pwd = InputBoxDK("Please Enter  Password Below!", "Database Administration Security Form.")
 '
 '    'If no password was entered.
 '    If pwd = "" Then
 '         MsgBox "You didn't enter a password!  You must enter password to 'enter the Administration Screen!" _
 '        , vbInformation, "Security Warning"
 '    End If
 '**************************************
 
 
 
 'API  functions to be used
Private Declare Function CallNextHookEx _
Lib "user32" ( _
ByVal hHook As Long, _
ByVal ncode As Long, _
ByVal wParam As Long, _
lParam As Any) _
As Long
 
Private Declare Function GetModuleHandle _
Lib "kernel32" _
Alias "GetModuleHandleA" ( _
ByVal lpModuleName As String) _
As Long
 
Private Declare Function SetWindowsHookEx _
Lib "user32" _
Alias "SetWindowsHookExA" ( _
ByVal idHook As Long, _
ByVal lpfn As Long, _
ByVal hmod As Long, _
ByVal dwThreadId As Long) _
As Long
 
Private Declare Function UnhookWindowsHookEx _
Lib "user32" ( _
ByVal hHook As Long) _
As Long
 
Private Declare Function SendDlgItemMessage _
Lib "user32" Alias "SendDlgItemMessageA" ( _
ByVal hDlg As Long, _
ByVal nIDDlgItem As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) _
As Long
 
Private Declare Function GetClassName _
Lib "user32" _
Alias "GetClassNameA" ( _
ByVal hWnd As Long, _
ByVal lpClassName As String, _
ByVal nMaxCount As Long) _
As Long
 
Private Declare Function GetCurrentThreadId _
Lib "kernel32" () _
As Long
 
 'Constants to be used in our API functions
Private Const EM_SETPASSWORDCHAR = &HCC
Private Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
Private Const HC_ACTION = 0
 
Private hHook As Long
 
Public Function NewProc(ByVal lngCode As Long, _
    ByVal wParam As Long, _
    ByVal lParam As Long) As Long
     
    Dim RetVal
    Dim strClassName As String, lngBuffer As Long
     
    If lngCode < HC_ACTION Then
        NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)
        Exit Function
    End If
     
    strClassName = String$(256, " ")
    lngBuffer = 255
     
    If lngCode = HCBT_ACTIVATE Then 'A window has been activated
        RetVal = GetClassName(wParam, strClassName, lngBuffer)
        If Left$(strClassName, RetVal) = "#32770" Then 'Class  name of the Inputbox
             'This  changes the edit control so that it display the password character *.
             'You can change the Asc("*") as you please.
            SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0
        End If
    End If
     
     'This line will ensure that any other hooks that may be in place are
     'called correctly.
    CallNextHookEx hHook, lngCode, wParam, lParam
     
End Function
 
 '// Make it public = avail to ALL Modules
 '// Lets  simulate the VBA Input Function
Public Function InputBoxDK(Prompt As String, Optional Title As String, _
    Optional Default As String, _
    Optional Xpos As Long, _
    Optional Ypos As Long, _
    Optional Helpfile As String, _
    Optional Context As Long) As String
     
    Dim lngModHwnd As Long, lngThreadID As Long
     
     '// Lets handle any  Errors JIC! due to HookProc> App hang!
    On Error GoTo ExitProperly
    lngThreadID = GetCurrentThreadId
    lngModHwnd = GetModuleHandle(vbNullString)
     
    hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)
    If Xpos Then
        InputBoxDK = InputBox(Prompt, Title, Default, Xpos, Ypos, Helpfile, Context)
    Else
        InputBoxDK = InputBox(Prompt, Title, Default, , , Helpfile, Context)
    End If
     
ExitProperly:
    UnhookWindowsHookEx hHook
     
End Function

Maak nu een knop met macro en selecteer de macro uit de lijst met de naam: NAAMBLADwachtwoord

Misschien moet je, als je dit allemaal hebt gedaan even opslaan, afsluiten en opstarten dan is je blad ook gelijk onzichtbaar en kan je testen met die knop (Deze knop moet je dan natuurlijk wel in een ander blad zetten.
 
Swimni,

Met deze codes gaat het vast en zeker lukken :). Erg bedankt voor je reactie en alle moeite. :thumb:

Ron.
 
Beste Ron....Op zicht werk deze code prima....alleen blijft het oude probleem bestaan.....via rechtermuisklik is beveiligd tabblad gewoon zichtbaar te maken......enig idee???

John
 
ja dat klopt john...in mijn bestand waarin ik deze code gebruik, heb ik de bladtabs verborgen bij 'opties in excel'. en ik heb het lint verborgen dmv ribbon false in vb. en uiteraard vb beveiligd met wachtwoord. zodoende zijn de bladtabs niet meer zichtbaar te maken, als je meer uitleg nodig hebt, dan hoor ik t wel...

gr mike
 
Vervang in deze regel " Sheets("NAAMBLAD").Visible = False " False voor xlVeryHidden en het is niet meer zichtbaar te maken behalve via VBA. Beveilig VBA bij voorkeur dan ook met een password.

Succes,
 
Blad zichtbaar met beveiliging

Geweldig mike,

Nu ben ik helaas niet zo bedreven met vba.......voor de beveiling van de robbon....ben je genegen om me een voorschot te tegeven..

Dank

John
 
lukt het misschien met de optie in VBA xlssheetveryhidden. Staat bij eigenschappen.

Deze zie je dan nl. niet in excel, maar kun je volgens mij alleen via VBA zichtbaar maken.

suc6

Bert
 
wizard2000,

Kun je dit ook als je de Werkmap beveiligd?
Zet een vinkje bij;
Werkmap beveiligen / Structuur en Venster beveiligen
Nu is met rechts klikken op het tabblad, zichtbaar maken grijs.
 
Beste John,

De oplossing van ThankYou zou moeten werken, dat is het simpelste. Vergeet niet je VB te beveiligen. Ik dacht even te moeilijk...

gr Mike
 
Voor je in een bestand gezet
 

Bijlagen

  • Tabblad verbergen(T1).xls
    59,5 KB · Weergaven: 842
Heb een vraagje over dit onderwerp.
Zodra ik van het laatste betsnad wat gepost is de gegevens overneem om het in een nieuw bestand te zetten en de tabbladen aan te passen werkt alles goed bij mij. Maar als ik dit bestand naar iemand doorstuur die excel 2000 heeft, dan krijgt diegene een foutmelding dat hij de macro "Wachtwoord" niet kan vinden.
Dus als diegene op de knop volledige toegang drukt, kan hij de macro niet vinden.

Weet iemand hoe dit kan?

Grt.
 
Beste Koen1206,

Deze topic is oud en je breekt in op iemand anders zijn/haar topic.
Advies om een eigen topic te starten met een verwijzing van deze topic of nog beter : een eigen voorbeeldbestand waar het probleem zich mee voor doet.

Succes,
 
Deze topic is dusdanig gedateert dat deze met rust gelaten mag worden. Topic gaat op slot en wordt overgedragen aan de afdeling BNw(Betere Naslagwerken)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan