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

Toegang Tabblad via paswoord

Status
Niet open voor verdere reacties.

Thiry

Gebruiker
Lid geworden
27 apr 2021
Berichten
10
Ik heb een bestand met meerdere tabbladen. Bedoeling is dat dit bestand door meerdere users gebruikt kan worden.
Echter de user mag enkel zijn/haar eigen tabblad zien en wijzigen.
Users en paswoord staan in tabblad Mapping in het bestand.
 

Bijlagen

Als je de gebruikersnamen van de PC's weet te vinden zou ik de tabbladen dezelfde naam geven als de PC's.
Vervolgens deze achter de thisworkbook module:

Code:
Private Sub Workbook_Open()
ThisWorkbook.Unprotect "aaa"
   For Each sh In ThisWorkbook.Sheets
      sh.Visible = sh.Name = Environ("username")
   Next
ThisWorkbook.Protect "aaa", True, False
End Sub
 
Ik heb de VBA code toegevoegd en gesaved als xlsm maar het werkt helaas niet.
Ik vermoed dat "aaa" vervangen moet worden door de code ?
En Sh. Name door het tabblad dat erbij hoort ?
En Username door de Usernaam

Is dit korrekt.
Helaas ken ik niet de gebruikersnaam van de PC
 
Environ("username") geeft de naam waarmee je inlogt in Windows.

Code:
Msgbox Environ("username")
Zal jouw gebruikersnaam geven. Zorg er met de code in #2 ook voor dat je 1 'dummy' blad hebt die altijd zichtbaar is anders kan je een foutmelding krijgen.
 
Laatst bewerkt:
Sorry, maar mijn kennis in VBA is nihil.
Ik begrijp niet goed wat je hiermee bedoelt
 
Algemene basiskennis van zowel Windows, Excel als VBA is wel handig. Anders kunnen we wel suggesties blijven aanreiken maar als je ze niet kan toepassen wordt het een lang verhaal.

Voor het bepalen van dag heb je helemaal geen opzoektabel nodig. Waarom alles met hoofdletters moet zal ook wel een reden hebben.
PHP:
=UPPER(TEXT(A11;"dddd"))
zal bij de USERS in B11 ook wel VRIJDAG geven.
 
VenA
Uw opmerking is terecht. Maar ik zie niet wat de aanduiding van het formaat van datum/dag te maken heeft met mijn initieel probleem of vraag.
De reden van hoofdletters is een gewoonte, omdat je met franstalige namen en speciale letters heel vaak problemen hebt.
 
Het heeft ook niet zoveel met de initiële vraag te maken maar wel met de opmerking dat je enige basisvaardigheden nodig hebt. Alleen roepen dat iets niet werkt of dat je het niet begrijpt heeft voor de helpers weinig nut en maakt het dan ook lastig om verder te helpen. Jij maakt de klassieke fout door te denken vanuit een mooie opmaak met allerlei vertragende fratsen ipv van na te denken over het functionele van jouw bestand.

Dit soort data verzamel je in 1 tabel. Voor de data-entry zet je er een Userform bovenop waarbij je kan filteren op wat iemand te zien krijgt obv de Username. Verder is het veel te statisch voor enige uren registratie dan ook. AM = 4 uur PM = 4 uur. Leuk als je even naar de huisarts moet wat mogelijk maar 1 uur duurt. (4 uur ziek)? Dus wat het allemaal moet worden, kan je het beste even zelf over nadenken. De hulp hier is gratis maar enige inspanning van jouw kant wordt wel verwacht.:d
 
Laatst bewerkt:
Ik heb de code in je voorbeeldje toegepast, op basis van UserName (wat mijn uitgangspunt ook zou zijn. Hooguit gebruik je de lijst om te filteren of een gebruiker überhaupt in het bestand mag of niet). Kijk maar eens of je er wat mee kunt. Omdat natuurlijk geen enkele gebruiker User1, User2 etc. heet, zijn alle bladen bij openen verborgen. Door op het logo te klikken, kun je ze weer zichtbaar maken.
Ik ben het helemaal met VenA eens dat je de juiste functies moet gebruiken. Vert.Zoeken om de naam van een dag op te halen, is onzinnig. Tenzij je de dagen per gebruiker in de juiste taal wil laten zien, maar die tabel zit er dan weer niet bij. Dus dat is hier niet het geval.
 

Bijlagen

Problemen met franstalige namen ?

Code:
Sub M_snb()
  [M1:M7] = [transpose(text(transpose(row(2:8)),"[$-040C] dddd"))]
End Sub
Code:
Sub M_snb()
  [M1:M12] = [transpose(text(transpose(30*row(1:12)),"[$-040C] mmmm"))]
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan