• 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.

Via users login bijhouden van login tijd in tabel.

Status
Niet open voor verdere reacties.

samabert

Gebruiker
Lid geworden
27 mrt 2010
Berichten
308
Beste forumleden,

Via de zoekfunctie heb ik 2 mooie werkbladen (Users login en tijdsregistratie) gevonden die ik graag wil laten samenwerken.

Onder Logboek-Time wordt de login periode bijgehouden in een tabel, telkens wanneer er iemand inlogt en of het werkblad sluit.
Nu is alleen zichtbaar, “admin” geopend/gesloten, dit werkt goed.

Probleem: Graag zou ik hebben dat de login naam (KVD, enz.) voorkomt in de tabel bij geopend.
De lijst met de login namen staat in tabblad Hide this sheet kolom A.
Op tabblad Logboek-Time staat rechts van de tabel een juist voorbeeld van hoe het zou moeten zijn.
Code:
Sub ToevoegenActie(bOpen As Boolean)
  With Sheets("Logboek-Time").ListObjects("TBL_Logboek")
  Sheets("Logboek-Time").Unprotect Password:="1234"
    .ListRows.Add.Range.Resize(, 3).Value = Array(Now, Application.UserName, IIf(bOpen, "Geopend", "Gesloten"))
    Sheets("Logboek-Time").Protect Password:="1234"
  End With
End Sub
Onder sub validatiePW zie ik geen link naar de lijst met login namen zodat via ToevoegenActie de laatst ingelogde naam voorkomt in de tabel als, voorbeeld “KVD geopend”
Code:
Option Explicit
Dim ws As Worksheet
Dim cl As Range
Dim rng As Range
Dim bOK As Boolean
Dim lRw As Long
Dim iCounta As Integer
Dim iLevel As Integer
Dim sPW As String
Dim sUser As String
Dim sMsg As String
Const sTitle As String = "Incorrect Password"
Const sStyle As String = vbOKOnly + vbExclamation
Const FullHeight As Long = 230
Const InitialHeight As Long = 150
 
    

Sub validatePW()
' On Error GoTo err_handler

    If Me.cboUser.Value = "Manager" And Me.tbxPW = Sheet1.Cells(2, 1).Value Then
        Me.cmdManage.Visible = True
        Exit Sub
    End If
    
    '*******************************************************************************************************************
    'toestemming = Application.WorksheetFunction.VLookup(iMens, Sheets("Hide this sheet").Range("A:B"), 2, False)
     'Application.UserName = iMens
     'Dit is een voorbeeld dat ik gevonden heb, maar niet gebruikt kan worden.
    '*******************************************************************************************************************
    
    Select Case iCounta
    Case 1, 2, 3, 4
        With Sheet1
            Set rng = .Range(.Cells(6, 1), .Cells(.Rows.Count, 1).End(xlUp))
            Set cl = rng.Find(sUser, LookIn:=xlValues)
            
            Call ToevoegenActie(True)  'dit voegt nu al bij het sluiten van het  werkboek in tab Logboek-Time "gesloten Admin toe"
            
        End With
        If cl.Offset(0, 1).Value <> Me.tbxPW.Text Then
            sMsg = "You have entered an incorrect Password" _
                   & vbNewLine & "Try again" & vbNewLine & _
                   "You have " & iCounta & " goes left"
            MsgBox sMsg, sStyle, sTitle
            With Me
                .cboUser.Value = vbNullString
                .tbxPW = vbNullString
                .cboUser.SetFocus
                
   
                Exit Sub
            End With
        ElseIf cl.Offset(0, 1).Value = Me.tbxPW.Text Then
            iLevel = cl.Offset(0, 2).Value
            MsgBox "Correct Information Entered.  Please Proceed.", vbOKOnly + _
                                                                    vbInformation, "Correct Information entered."
            
            Me.cmdNew.Visible = True
            bOK = True
            
            Select Case iLevel
            Case 1
                For Each ws In ThisWorkbook.Sheets
                    Select Case ws.Name
                    Case "Dept1"
                        ws.Visible = xlSheetVisible
                    Case Else
                        On Error Resume Next
                        ws.Visible = xlSheetVeryHidden
                        On Error GoTo 0
                    End Select
                Next
            Case 2
                For Each ws In ThisWorkbook.Sheets
                    Select Case ws.Name
                    Case "Dept2", "Dept3"
                        ws.Visible = xlSheetVisible
                    Case Else
                        On Error Resume Next
                        ws.Visible = xlSheetVeryHidden
                        On Error GoTo 0
                    End Select
                Next
            Case 3
                For Each ws In ThisWorkbook.Sheets
                    Select Case ws.Name
                    Case "JAN", "FEB", "MRT", "APR", "MEI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEC", "Logboek-Time", "Hide this sheet"
                        ws.Visible = xlSheetVisible
                        
                    Case Else
                        On Error Resume Next
                        ws.Visible = xlSheetVeryHidden
                        
                        On Error GoTo 0
                    End Select
                Next
               Case 4
                For Each ws In ThisWorkbook.Sheets
                    Select Case ws.Name
                    Case "JAN", "FEB", "MRT", "APR"
                        ws.Visible = xlSheetVisible
                    Case Else
                        On Error Resume Next
                        ws.Visible = xlSheetVeryHidden
                        On Error GoTo 0
                    End Select
                Next
                End Select
               
             'Unload Me 'nodig als je gedeelte password aanpassen niet wil zien
        End If
        Sheets("Splash").Visible = xlVeryHidden

    Case 0
        MsgBox "You have tried three time incorrectly. WorkBook will now close" _
               , vbOKOnly + vbExclamation, "Warning"
        bOK = True
        'Unload Me
err_handler:
        'this line should be used in the final version
                    Application.Quit
                    ActiveWorkbook.Close SaveChanges:=False    'close without saving
    End Select

End Sub
Ik weet dat het not done is een bijlage met paswoord te leveren, maar om het werkende te laten zien is het denk ik nodig. Login: KVD en paswoord: 1234.
Met het testen van de bijlage, Test_fd.xlsm merk ik op dat je dit bestand eerst moet opslaan en terug starten om de volledige werking te zien anders krijg je fouten.


Kan dit aangepast worden dat de login naam vermeld wordt op de tabel bij geopend?
Alvast bedankt.

Mvg.
Marc
 

Bijlagen

Ik heb het voor je aangepast, al hou ik er niet van dat mijn application.username veranderd wordt door enige code.
 

Bijlagen

@ HSV

Super!!! Werkt volledig. Heel erg bedankt voor de aanpassing.

Jouw opmerking: Ik hou er niet van dat mijn application.username veranderd wordt door enige code.
Kan je daar meer uitleg over geven? Ik ben bezig aan een werkblad waar een 14 tal techniekers verlof kunnen op plannen, daar dit vroeger nogal problemen gaf op de papieren versie. Het plan is dat er nu kan nagezien worden wie, wat en wanneer iets aangepast heeft.

Als er eventueel i.v.m. jouw opmerking later problemen zouden kunnen ontstaan, moet ik het misschien nu al over een andere boeg gooien.

Mvg.
Marc
 
Wees gerust, ik heb het uitgeschakeld in het bestand met een apostrof voor de regel:
Code:
application.username = "ADMIN"

Overigens graag gedaan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan