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

macro's beveiligen

Status
Niet open voor verdere reacties.

Pander

Gebruiker
Lid geworden
14 okt 2014
Berichten
198
LS,

In de bijlage zit een bestandje met daarin een aantal macro's. Hoe kan ik ervoor zorgen dat:

- niet iedereen uitvoering kan geven aan deze macro's (originele bestand wordt door 30 man gelezen, waarvan 3 man dit wel mogen)
- de eerder genoemde 3 man bij bepaalde macro's (of allemaal is ook prima) iets van een melding krijgen. Bijvoorbeeld: "Weet u zeker dat u wilt doorgaan"?

Gr,
P.
Bekijk bijlage marcobeveiliging.xlsx.xlsm
 
in je bijlage laat alleen een 20 eenvoudige macro codes zien. alle macro's werken op basis van de actieve selectie.
dat is al een prima beveiliging. geef alleen de 3 medewerkers die de macro's mogen gebruiken dit bestand en laat deze macro's dus uit de hoofdsheet.

de medewerkers hoeven dan alleen maar dit extra bestand erbij te openen om de hoofdsheet te kunnen bewerken met je macro's
 
Door iedere keer een IF-statement op te nemen met de volgende controle:
Code:
If Environ("Username") = Naam1 Or Environ("Username") = Naam2 Or Environ("Username") = Naam3 Then
...
End If

Waarin Environ("Username") de Windows gebruikersnaam is.
 
dank voor jullie bericht. Peter B jouw oplossing zou perfect aansluiten bij datgene waarna ik opzoek ben. Heb hem als onderstaande zo geïntegreerd in een van de macro's. Nu lukt het een van mijn andere collega's (dan degenen in de macro) alleen wel om de macro uit te voeren. Wat doe ik fout?

Sub pauze()
If Environ("pbouwm") = Naam1 Or Environ("kpande") = Naam2 Then
End If
With Selection
.Value = "p"
.Interior.Color = 255
.Font.Color = 255
End With
End Sub

Ik probeer ook het volgende erbij te integreren

If MsgBox("Weet je zeker dat je wilt doorgaan? De actie kan niet ongedaan worden gemaakt met CTRL + Z", vbYesNo + vbQuestion, "Pas op, potentieel gevaarlijke actie in aantocht") = vbNo Then Exit Sub

excuus dat het niet in zo'n code-hokje staat.

gr,
P
 
je hebt de username op de verkeerde plek staan, ik zou dit eens proberen.

Code:
If Environ("Username") = "pbouwm" Or Environ("Username") = "kpande" Then

en de end if moet onder de End with, maar voor de end sub


__________
ps: code tags krijg je door op de # te klikken op de werkbalk boven het een bericht
 
Laatst bewerkt:
wauw. Blij mee. Ik heb er nu dit van gemaakt

Sub pauze()
If Environ("Username") = "pbouwm" Or Environ("Username") = "kpande" Then
If MsgBox("Weet je zeker dat je wilt doorgaan? De actie kan niet ongedaan worden gemaakt met CTRL + Z", vbYesNo + vbQuestion, "Pas op, potentieel gevaarlijke actie in aantocht") = vbNo Then Exit Sub
With Selection
.Value = "p"
.Interior.Color = 255
.Font.Color = 255
End With
End If
End Sub

en het werkt als een tierelier. Ik snap dat het makkelijk te omzeilen is, maar het is voldoende zo.

Thanks a lot,

gr,
P
 
Zet vervolgens nog een wachtwoord op je VBA project om het omzeilen lastiger te maken.
 
Dat is een ook een goede tip Edmoor. In combinatie met zoals e.e.a. nu in elkaar is gegoten lijkt me dat er voldoende beveiliging opzit om 'kwaadwillenden' en onbevoegden de macro niet te kunnen laten uitvoeren.

Allen dank!


Code:
Sub pauze()
If Environ("Username") = "pbouwm" Or Environ("Username") = "kpande" Then
Dim password As Variant
 password = Application.InputBox("Voer een wachtwoord in", "Beveiligd met een wachtwoord")

Select Case password
     Case Is = False
         'niks doen
     Case Is = "123"
     If MsgBox("Weet je zeker dat je wilt doorgaan? De actie kan niet ongedaan worden gemaakt met CTRL + Z", vbYesNo + vbQuestion, "Pas op, potentieel gevaarlijke actie in aantocht") = vbNo Then Exit Sub
         With Selection
    .Value = "p"
    .Interior.Color = 255
    .Font.Color = 255
End With
     Case Else
         MsgBox "Onjuist wachtwoord"
End Select
End If
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan