Avatar billede HHA Professor
24. februar 2021 - 18:07 Der er 5 kommentarer og
3 løsninger

Kun muligt at åbne excel for godkendte brugere

Hejsa,

Er der en måde at man kan sikre en Excel fil mod at "forkerte" brugere åbner den?
Tænker om når man vil åbne filen, så tjekker den hvem det er og hvis personen er "indkodet" eller hvad man måske ellers kan gøre, så åbner den filen.
Vi bruger Office 365, kan man ligge sådan en beskyttelse ind?

Det tænkes mere som en beskyttelse, hvis man skulle komme til at sende Excel filen til en anden ved en fejltagelse.
Avatar billede ebea Ekspert
24. februar 2021 - 18:24 #1
Du kan lægge et password ind på specifikke Excel filer, ved at sætte passwordet i den pågældende åbne Excel fil, ved at gå ind i "gennemse"  og "beskyt projektmappe", og indtaste det i menu boksen der fremkommer.
Avatar billede HHA Professor
24. februar 2021 - 19:36 #2
Hej ebea,

Det er rigtig, men ikke helt den løsning jeg søgte.
Jeg tænkte på om man kan tildele rettigheder til filen.
Avatar billede ebea Ekspert
24. februar 2021 - 20:34 #3
#2 - Det er ikke noget jeg er bekendt med, at der skulle kunne tildeles individuelle rettigheder til Excel filer. Det med passwordet, kan tildeles til de brugere som er autoriseret til at åbne filen.
Avatar billede store-morten Ekspert
24. februar 2021 - 21:17 #4
Med VBA :-)

Et Modul der finder brugernavn (PCéns brugernavn)

Workbook_Open()
Hvis brugernavn ikke er = "XXX" så luk ThisWorkbook
End Sub
Avatar billede HHA Professor
24. februar 2021 - 21:50 #5
store-morten,

Det er det jeg søger.
Men hvordan skal koden ligges, så den kører så snart man åbner filen, samt hvordan kunne sådan en kode se ud?
Avatar billede store-morten Ekspert
24. februar 2021 - 21:55 #6
I et Modul
#If Win64 Then
    Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
#Else
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
#End If

Function Brugernavn() As String
Application.Volatile
Dim Buffer As String * 100
Dim BuffLen As Long
BuffLen = 100
GetUserName Buffer, BuffLen
Brugernavn = LCase(Left(Buffer, BuffLen - 1))
End Function

Sub Vis_mit_brugernavn()
MsgBox Brugernavn
End Sub
Avatar billede store-morten Ekspert
24. februar 2021 - 21:58 #7
Denne_Projektmappe
Private Sub Workbook_Open()

'If Not Brugernavn = "XXX" Then ThisWorkbook.Close

End Sub

XXX erstattes med det du får med makroen: Vis_mit_brugernavn
Avatar billede store-morten Ekspert
24. februar 2021 - 22:03 #8
Husk at prøve i et test ark, du risikerer arket ikke kan åbnes ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester