Avatar billede fojensen Nybegynder
09. december 2004 - 01:04 Der er 10 kommentarer og
1 løsning

Hvordan tester jeg om filen er åbnet som skrivebeskyttet version?

Jeg har lavet et ark som mange brugere anvender, nogle har password så de kan redigere filen, andre må nøjes med at åbne i skrivebeskyttet version.

jeg har lavet nogle indbygget nogle vba-ting for at gøre den mere brugervenlig, men jeg vil gerne kunne målrette disse ting afhængig af om brugeren kan redigere filen, eller det er en skrivebeskyttet version.

Hvordan tester jeg med vba om filen er åbnet i skrivebeskyttet version?
Avatar billede bak Forsker
09. december 2004 - 09:10 #1
Avatar billede fojensen Nybegynder
09. december 2004 - 19:32 #2
Jeg han ikke helt se at jeg kan bruge omtalte funktion her...

For det første...
Hvis jeg skal bruge omtalte funktion, så har jeg brug for at køre den inden brugeren åbner vores fælles fil - hvordan kan jeg det...

Måske skal jeg forklare bedre hvad jeg har brug for. de fleste af brugerne vælger jo selv at få en readonly-version (fordi de ikke kender password til redigering) og det er dem jeg gerne vil lave nogle specielle facilitetter til.

Kan jeg teste om brugeren har valgt en readonly-version ?
Kan jeg lave et script der kører inden filen åbnes ?
Avatar billede bak Forsker
09. december 2004 - 21:46 #3
Denne funktion vil forsøge at gemme filen og hvis det lykkes er filen tilgængelig ellers er den readonly

Kald funktionen fra modulet ThisWorkBook under WorkBook_open

Function check_readonly() As Boolean
    On Error GoTo fejl
    ThisWorkbook.Save
    check_readonly = False
    Exit Function
fejl:
    check_readonly = True
End Function


Private Sub Workbook_Open()
    Dim bReadOnly As Boolean
    bReadOnly = check_readonly
    MsgBox bReadOnly
End Sub
Avatar billede fojensen Nybegynder
09. december 2004 - 22:04 #4
Det lyder da rigtig godt...
Jeg er på vej på natarbejde nu, så jeg har ikke tid til at teste nu, men kan jeg så også sætte et eller andet ind ind der gør at når brugeren lukker readonly-versionen, så spørges han ikke om den skal gemmes - eller er kan det kun gøres i Workbook_BeforeClose ?
Avatar billede kabbak Professor
09. december 2004 - 22:04 #5
Private Sub Workbook_Open()
If ThisWorkbook.ReadOnly Then
    MsgBox " skrivebeskyttet"
End If

End Sub
Avatar billede bak Forsker
09. december 2004 - 22:14 #6
Jamen dog kabbak, den har jeg da ledt efter, men fandt den ikke...perfekt til formålet 
Nu må jeg se at få nye briller, det kan vel ikke udskydes længere :-)
Avatar billede kabbak Professor
09. december 2004 - 22:23 #7
ja, men aldersmæssig er jeg nok den ældste 53
Avatar billede bak Forsker
09. december 2004 - 22:34 #8
Ja, det kan jeg ikke slå, Holger, men 46 er vel også nok til begyndende gammelmandssyn :-)
Avatar billede fojensen Nybegynder
09. december 2004 - 23:09 #9
Det var jo alle tiders - hvem vil smide et svar...

Jeg vil gerne bygge videre på svaret - kan jeg også sætte noget tilsvarende i Workbook_BeforeClose, eksempelvis

If ThisWorkbook.ReadOnly Then
    Workbook.Saved = True
End If

og derved undgå at den spørger om der skal gemmes
Avatar billede fojensen Nybegynder
09. december 2004 - 23:43 #10
jeg har brugt kabbaks løsning fordi den er go' og enkel...

jeg brugte den også i Workbook_BeforeClose til at lave linien
ActiveWorkbook.Saved = True
og det virker helt super

takl for hjælpen - smid lide et svar
mvh Folmer
Avatar billede kabbak Professor
10. december 2004 - 08:00 #11
et svar ;-))
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