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

Kan ik een macro alleen laten werken bij bepaalde gebruikers?

Status
Niet open voor verdere reacties.

ivovandenhove

Gebruiker
Lid geworden
27 okt 2011
Berichten
19
Hallo Excel experts!

Ik heb voor een bepaald document een marco van internet geplukt waardoor het bestand na 10 minuten inactiviteit automatisch wordt afgesloten. Er werken meerdere mensen in deze file, maar enkelen laten deze file altijd open staan. Nu zou ik graag willen dat deze macro's alleen werken als deze bepaalde personen de file open hebben.

Is het mogelijk dat Excel de user ID controleert en daarvan af laat hangen of de macro moet werken?

Ik heb een bestand bijgevoegd waarin de macro werkt voor alle gebruikers. Na 10 minuten inactiviteit slaat hij automatisch op en sluit vervolgens af. Zoals gezegd wil de macro dus alleen laten werken voor bepaalde gebruikers.

http://www.mijnbestand.nl/Bestand-IW3FJP6H6LZ8.xls

Alvast dank voor jullie antwoord!

Groeten,
Ivo
 
Uiteraard kun je de naam van de ingelogde gebruiker ophalen:
http://support.microsoft.com/kb/161394

Edmoor, bedankt voor je reactie. Mijn vraag was meer of ik dit kan implementeren in de macro die in het bijgevoegde bestand staat. Dus dat excel herkent dat een bepaalde user het bestand geopend heeft en dat afhankelijk van de user de macro in werking gaat of niet.

Alvast dank voor je moeite!

Groeten,
Ivo
 
Ivo,

om dat te kunnen implementeren zou jij eerst alle gebruikersnamen bekend moeten maken; lijkt me niet handig.

Als je boven in je macro per gebruiker waar de macro niet moet lopen dit toevoegt, moet het werken:

Code:
If application.username = "gebruikersnaam" then exit sub

Dit veroorzaakt dat voor de opgenomen gebruikers de macro direct beëindigd wordt.
 
Edmoor, bedankt voor je reactie. Mijn vraag was meer of ik dit kan implementeren in de macro die in het bijgevoegde bestand staat. Dus dat excel herkent dat een bepaalde user het bestand geopend heeft en dat afhankelijk van de user de macro in werking gaat of niet.

Alvast dank voor je moeite!

Groeten,
Ivo

Precies. En dan heb je dus de naam van de ingelogde gebruiker nodig en hoe je die ophaalt wordt uitgelegd in de link die ik gaf.
En in het bijgevoegde bestand kan ik geen macro ontdekken.
 
Laatst bewerkt:
Ivo,

om dat te kunnen implementeren zou jij eerst alle gebruikersnamen bekend moeten maken; lijkt me niet handig.

Als je boven in je macro per gebruiker waar de macro niet moet lopen dit toevoegt, moet het werken:

Code:
If application.username = "gebruikersnaam" then exit sub

Dit veroorzaakt dat voor de opgenomen gebruikers de macro direct beëindigd wordt.

YEAH! Hij werkt! TOP Haije en Edmoor, thanks!

Gr. Ivo
 
Als je dan meerdere gebruikers hebt wordt het wel wat extra lang die macro
Code:
myarray = Array("Naam1", "Naam2", "Naam3",enz.....)
aantal = 0
For i = 0 To UBound(myarray)
    If Environ("username") = myarray(i) Then aantal = aantal + 1
Next
If aantal > 0 Then Exit Sub
Vervolg code .....
 
@WB

daarom lijkt het me handiger een tekstreeks te gebruiken dan een matrix:


Code:
 if instr("|Warme Bakkertje|snb|ivovandenhove|Wigi|","|" & environ("username") & "|")>0 then msgbox "u heeft toegang"
 
@ snb
Wou eerst Instr gebruiken in myarray maar kwam er niet onmiddelijk uit, daarom mijn loop.
 
het had gekund met
Code:
myarray = Array("Naam1", "Naam2", "Naam3",enz.....)
if instr("|"& join(myarray,"|") & "|","|" & environ("username") & "|") then .....
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan