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

inlog bij openen rekenblad

Status
Niet open voor verdere reacties.

ACER10

Gebruiker
Lid geworden
11 feb 2010
Berichten
159
Wij gebruiken een uitgebreid rekenblad met verschillende (10) sheets, verschillende personen werken daarmee.
Nu zou ik willen bij het openen van het rekenblad dat er een scherm (sheet) verschijnt waar de persoon zijn naam moet invullen
en zijn eigen toegangs-code moet invullen.
Ook zou deze toegang moeten worden geregistreerd in een file waar de datum,uur en naam worden in weggeschreven...

iets zoals Datum (automatisch ingevuld)

Naam Jan Janssen (in te vullen door gebruiker)

Paswoord ********

in de file dan 12/11/15 14:30 Jan Janssen


De naam die ingevuld wordt moet ook gebruikt worden op de andere sheets (10) van het rekenblad.

Is zoiets mogelijk ?
 
Zoiets is zeker mogelijk. De enige vraag is hoe waterdicht het moet zijn.
Je hebt al zeker een twee extra werkbladen nodig, 1 als hoofdblad enkel zichtbaar bij openen en 1 met alle werknemernamen en bijgaande paswoorden (veryhidden enkel door administrator te bekijken) ter vergelijking.
Een userform bij openen met datumveld, textbox voor naam en textbox (gemaskeerd) voor wachtwoord.
1 textfile om te dienen als logfile.
 
Dag warme bakkertje

De reden om het met een inlog te laten openen is te onderzoeken wie er fouten maakt bij het gebruik.... er zijn mensen die verkeerde ingaves doen die ik iedere keer moet rechtzetten.
Waterdicht, wel ze mogen niet het paswoord van anderen kunnen zien of gebruiken.
Er zijn nu reeds 10 werkbladen in gebruik enkele meer kan ook nog wel, nog een vraag kunnen de andere werkbladen wegestopt worden tot na de inlog ?


Kun jij mij daar soms mee helpen ?
Het moet wel werken in excel 2000, want hogere versies kan het rekenblad niet aan omdat het gekopeld is aan een machine.
 
Hoi,
eventjes snel
kan je hier iets mee?
aanpassen is niet zo moeilijk
greetz


Dat zou eventueel wel werken, maar er zou een logfile moeten worden gemaakt.
En hoe ik dit voorbeeld moet integreren in mijn rekenblad.... daar heb ik niet het minste idee van, laat staan aanpassen...
 
Daarvoor is toch geen inlogprocedure nodig ?
Je kunt, als het bestand geopend wordt, toch de environ("username") ergens registreren (In het bestand zelf of in een logbestand) ?
 
Hoi,
ik wil er morgen wel eventjes naar kijken maar als je een dummie vbtje van uw rekenblad post, is er mischien iemand sneller met het juiste antwoord want binnen een uurtje lig ik in mijn nestje
Greetz
 
voorbeeld

Hierbij een zeer afgeslankte versie (er ontbreken 8 scheets) en enkele macros werken dan ook niet meer....
maar waar INLOGGEN staat zou een inlogscherm moeten komen met paswoord.
Er zijn 10 personen die elk een paswoord moeten kunnen ingeven om het rekenblad te kunnen gebruiken.
er zou een file moeten aangemaakt worden die datum,uur en naam opslaat.





Bekijk bijlage testversie.xls
 
Om een logfile te maken zou ik zoiets gebruiken.
Code:
With CreateObject("Scripting.FileSystemObject").OpenTextFile("G:\LogFile.txt", 8, True)
    .WriteLine Now() & "  " & waardeTextBoxInlognaam
    .Close
End With

Nog wel even het pad aanpassen. Als het bestand niet bestaat wordt het automatisch aangemaakt, anders wordt gewoon een nieuwe regel toegevoegd.
 
Mij lijkt dit voldoende:

Code:
Private Sub Workbook_Open()
   CreateObject("Scripting.FileSystemObject").OpenTextFile("G:\OF\LogFile", 8, True).Write Environ("Username") & " " & Now & vbCrLf
End Sub
of

Code:
Private Sub Workbook_Open()
    CreateObject("Scripting.FileSystemObject").OpenTextFile(thisworkbook.path & "\LogFile",  8, True).Write Environ("Username") & " " & Now & vbCrLf
End Sub
 
Mij lijkt dit voldoende:

Code:
Private Sub Workbook_Open()
   CreateObject("Scripting.FileSystemObject").OpenTextFile("G:\OF\LogFile", 8, True).Write Environ("Username") & " " & Now & vbCrLf
End Sub
of

Code:
Private Sub Workbook_Open()
    CreateObject("Scripting.FileSystemObject").OpenTextFile(thisworkbook.path & "\LogFile",  8, True).Write Environ("Username") & " " & Now & vbCrLf
End Sub


Komt dit in Thisworkbook ?
 
Ja, dat blijkt al uit Private Sub Workbook_Open()


Terzijde : gebruik jij 2 aliassen in dit forum ?
 
Laatst bewerkt:
aliassen

Ik gebruik 2 computers een notebook en mijn vaste, ik wist een paar maanden geleden mijn inlognaam niet meer... ik zal dat nu veranderen in acer10 nu ik het terug heb...
 
Probeer het eens met deze. De namen en paswoorden staan nu als voorbeeld op de inlogpagina.
In het logbestand wordt elke poging genoteerd (ook de foutieve als controle)
Na 3 foutieve pogingen wordt het bestand automatisch gesloten.
 

Bijlagen

Probeer het eens met deze. De namen en paswoorden staan nu als voorbeeld op de inlogpagina.
In het logbestand wordt elke poging genoteerd (ook de foutieve als controle)
Na 3 foutieve pogingen wordt het bestand automatisch gesloten.

Ik krijg een error (zie bijlage) bij het opstarten...

Knipsel.webp
 
Code:
Const PathToLogFile = "D:\LogFile.txt"
 
Bedankt Warme bakkertje, alles werkt goed.
Maar ik heb nog een klein vraagje, is het mogelijk om de naam die je kiest in de combobox1 in een pagina te gebruiken ?
Die naam zou op een bepaalde blz. moeten voorkomen...
 
De rode regel plaatst de naam op een werkblad in een bepaalde cel. Wijzig dit in het juiste blad en cel.
Heb nog een kleine aanpassing gemaakt, daarom volledige code geplaatst.

Code:
Private Sub CommandButton1_Click()
    
    If iCounta = 0 [COLOR="#FF0000"]And TextBox1.Value <> CStr(ComboBox1.List(ComboBox1.ListIndex, 1))[/COLOR] Then
        MsgBox "Je hebt 3X foutief geprobeerd. Bestand wordt nu gesloten." _
             , vbOKOnly + vbExclamation, "Warning"
        Unload Me
        ActiveWorkbook.Close SaveChanges:=False
    End If
    iCounta = iCounta - 1
    If TextBox1.Value = CStr(ComboBox1.List(ComboBox1.ListIndex, 1)) Then
        CreateObject("Scripting.FileSystemObject").OpenTextFile(PathToLogFile, 8, True).Write Now & "  " & ComboBox1.Value & vbCrLf
        For i = 2 To Sheets.Count - 1
            Sheets(i).Visible = True
        Next
        Unload Me
        Sheets(1).Visible = False
        Application.Goto Sheets(2).Range("A1")
        [COLOR="#FF0000"]Sheets("Disag").Range("B20") = ComboBox1.Value[/COLOR]
    Else
        CreateObject("Scripting.FileSystemObject").OpenTextFile(PathToLogFile, 8, True).Write Now & "  " & _
                ComboBox1.Value & "  " & "Foutief" & "  " & TextBox1.Text & vbCrLf
        MsgBox "Foutief paswoord ! Probeer opnieuw."
        TextBox1.Text = vbNullString
    End If
    
End Sub
 
Prachtig, bedankt hoor warme bakkertje....
Ik vraag me ook af of je een rekenblad ook kan doen opstarten op een bepaalde blz.
 
Jawel, dat kan met onderstaande code in ThisWorkbook

Private Sub Workbook_Open()
Sheets("NaamTeOpenenWerkBlad").Select
Range("A1").Select
If Time < "12:00" Then Dagdeel = "morgen"
If Time < "18:00" Then Dagdeel = "middag"
If Time >= "18:00" Then Dagdeel = "navond"
Range("C1") = "Goede" & Dagdeel
End Sub

Deze code heb ik geleend uit het boek "Microsoft Excel VBA voor professionals" van Wim de Groot, wat ik momenteel aan het bestuderen ben.

Groet Jan
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan