Avatar billede lkt Juniormester
12. september 2006 - 13:25 Der er 4 kommentarer og
1 løsning

Skrivebeskytte evt. med kode

Jeg skal lave et skema, hvor der er flere forskellige, der skal udfylde hver deres celler. Kan man lave forskellige rettigheder til de forskellige celler? Altså således at cellerne i række 3 kan redigeres af alle, mens felterne i række 4 kun kan redigeres af en person med f.eks. et password til filen?

Jeg håber I forstår mit spørgsmål, ellers skal I bare spørge mig om yderligere oplysninger.
Avatar billede supertekst Ekspert
12. september 2006 - 13:36 #1
Ideer:

Kan kunne via en makro styrer de frie og begrænsede celler - således at de begrænsede celler skal defineres - f.eks. række 4 - og i det tilfælde at en celle heri aktiveres - bedes der om adgangskode via en lille userform.

Eller der placeres en fil (C:\) hos den/de bruger der har specielle adgangsrettigheder.
Heri kunne adgangen defineres.

Eller brugernavnet kan aflæses via deres login og dermed rettigheder.
Sidstnævnte skaldog afprøves inden.
12. september 2006 - 14:13 #2
Du kan fint aflæse deres login-id via et lille api-kald.
Så lader du blot makroen skjule/vise de nødvendige rækker (selvfølgelig skal der låses op, skjules/vises og låses igen)

Der skal ikke noget specielt stort nummer til for at lave det.
12. september 2006 - 14:18 #3
Her lidt vedr. brugerID'et

Private Declare Function GetUserName Lib "advapi32" _
    Alias "GetUserNameA" _
    (ByVal lpBuffer As String, _
    nSize As Long) As Long

Public Function SmartOffice_UserId() As String
    ' Return the windows UserID
    Dim sRetVal As String

    sRetVal = String(100, Chr$(0))
    GetUserName sRetVal, 100
    SmartOffice_UserId = Trim$(Left$(sRetVal, InStr(sRetVal, Chr$(0)) - 1))

End Function

Public Sub Test()
    MsgBox SmartOffice_UserId
End Sub
12. september 2006 - 14:28 #4
og lidt mere til skjulning med password på arket - god fornøjelse

Public Sub SmartRights()
    Const sSheetPassword As String = "glemdet"
    Dim wksTemp As Worksheet
    Set wksTemp = workssheets("Sheet1")
   
    Select Case UCase(SmartOffice_UserId)
        Case "FV" 'se række 3
            wksTemp.Unprotect Password:=sSheetPassword
            wksTemp.Range("A2:A5").EntireRow.Hidden = True
            wksTemp.Range("A3").EntireRow.Hidden = False
            wksTemp.Protect Password:=sSheetPassword
        Case "HLK" 'se række 4
            wksTemp.Unprotect Password:=sSheetPassword
            wksTemp.Range("A2:A5").EntireRow.Hidden = True
            wksTemp.Range("A4").EntireRow.Hidden = False
            wksTemp.Protect Password:=sSheetPassword
        Case "PPP" 'developer
            wksTemp.Unprotect Password:=sSheetPassword
            wksTemp.Range("A2:A5").EntireRow.Hidden = False
        Case Else 'må ikke se
            wksTemp.Unprotect Password:=sSheetPassword
            wksTemp.Range("A2:A5").EntireRow.Hidden = True
            wksTemp.Protect Password:=sSheetPassword
    End Select
    ' CleanUp
    Set wksTemp = Nothing
End Sub
Avatar billede bak Forsker
12. september 2006 - 15:10 #5
Hvilken xl-version bruger du?

Styring af disse rettighed er jo allerede indbygget i xl2003
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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