Avatar billede nummersyv Nybegynder
16. november 2007 - 13:45 Der er 5 kommentarer og
1 løsning

Tidsbegrænset åbning af Excel fil af hensyn til øvrige brugere?

Hej

I min organisation har vi Excel-filer med flere brugere. Ofte forlader en bruger sin PC, glemmer at lukke filen, og blokerer på denne måde for at øvrige brugere kan editere filen.

A) Hvordan kan dette løses?

B) Har nogen evt. kendskab til/evner til at lave en makro, der hvert 10 min åbner en dialogboks som feks. denne: "Andre brugere afventer evt. at du lukker denne fil. Derfor gemmes og lukkes den om 60 sek. med mindre du aktiverer knappen ARBEJD VIDERE herunder"?
Avatar billede jlemming Nybegynder
16. november 2007 - 14:50 #1
Avatar billede jlemming Nybegynder
16. november 2007 - 15:09 #2
fra linket, lavet af bak & kabbak
Disse 2 Sub's indsættes begge i ThisWorkBook
Private Sub Workbook_Open()
'1. lukketid
LukkeTid = Now + TimeValue("00:10:00")
'Sæt 1. lukketid ind i OnTime
Application.OnTime LukkeTid, "LukFil"
call Besked
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Annullerer forrige OnTime
If LukkeTid > 0 Then Application.OnTime LukkeTid, "LukFil", , False
'Sæt nu lukketid
LukkeTid = Now + TimeValue("00:10:00")
'sæt ny OnTime
Application.OnTime LukkeTid, "LukFil"
call Besked
End Sub


og Denne i et standard modul

Public LukkeTid  'Global variabel til at holde forrige ontime

Sub LukFil()
LukkeTid = 0
'Gem og luk filen
ThisWorkbook.Close savechanges:=True
End Sub

Sub Besked()
' skriver lukketiden i Ark1 celle A1, ret selv
Sheets("Ark1").Range("A1") = "Lukker Kl." & LukkeTid' hvis du vil vise det i en celle
End Sub
Avatar billede nummersyv Nybegynder
22. november 2007 - 15:34 #3
Hej jlemming

Tusind tak for hjælpen og undskyld jeg først svarer nu. Jeg skulle lige sætte mig ind i hvordan det med makroer virker. Så har jeg finpudset løsningen en smule, samt omskrevet kommentarerne, så amatører på mit niveau har bedre chancer. Her er min endelige løsning:

I ThisWorkbook har jeg indsat:

Private Sub Workbook_Open()
'Denne makro aktiveres hver gang filen åbnes.
LukkeTidspunkt = Now + TimeValue("00:10:00")
'Første lukketidspunkt defineres som nuværende tidspunkt plus et angivet tidsinterval.
Application.OnTime LukkeTidspunkt, "LukFil"
'Første lukketidspunkt sættes ind i en OnTime-kommando. Når første lukketidspunkt oprinder, vil makroen LukFil eksekveres.
Call Besked
'Makroen Besked eksekveres.
Call OpenMessage
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Denne makro eksekveres hver gang celle-markeringen i et ark ændres.
If LukkeTidspunkt > 0 Then Application.OnTime LukkeTidspunkt, "LukFil", , False
'Den allerede givne OnTime-kommando annuleres.
LukkeTidspunkt = Now + TimeValue("00:10:00")
'Nyt lukketidspunkt defineres.
Application.OnTime LukkeTidspunkt, "LukFil"
'Nyt lukketidspunkt sættes ind i en OnTime-kommando. Når dette oprinder, vil makroen LukFil eksekveres.
Call Besked
'Makroen Besked eksekveres.
End Sub

I et standard-modul har jeg indsat:

Public LukkeTidspunkt
'LukkeTidspunkt er hermed defineret som en global variabel til at holde forrige OnTime-komando.

Sub LukFil()
'LukkeTidspunkt nulstilles. Filen gemmes og lukkes.
LukkeTidspunkt = 0
ThisWorkbook.Close savechanges:=True
End Sub

Sub Besked()
'Skriver tidspunktet for hvornår filen lukkes, i celle A1 i Sheet1.
Sheets("Sheet1").Range("A1") = "Lukker Kl." & LukkeTidspunkt
End Sub

Sub OpenMessage()
MsgBox "Denne fil gemmes og lukkes automatisk, såfremt der går 10 minutter, uden du har ændret celle-markering." & Chr(13) & "Dette af hensyn til eventuelle øvrige brugere der afventer, at du bliver færdig med filen."
End Sub

Jeg tror du skal sende en besked til mig som svar, før jeg kan give dig pointene.
Tak og hilsen nummersyv
Avatar billede jlemming Nybegynder
26. november 2007 - 08:58 #4
Velbekomme :o)
Avatar billede nummersyv Nybegynder
26. november 2007 - 09:42 #5
Og herunder er forresten en noget mindre kompliceret "løsning" :-)

Private Sub Workbook_Open()
MsgBox "Samtykke-erklæring" & Chr(13) & Chr(13) & "Denne fil anvendes af mange andre brugere end mig. Jeg lukker derfor filen igen om lidt, så snart jeg er færdig med den." & Chr(13) & "Jeg er ikke tumpen, der har filen åben på min PC, mens jeg chekker mails, går til møder, laver kaffe etc." & Chr(13) & "Skulle dette dog ske for mig, kan jeg opnå tilgivelse herfor, såfremt jeg efterfølgende arbejdsdag medbringer 32 stykker kage."
End Sub
Avatar billede jlemming Nybegynder
26. november 2007 - 09:48 #6
heeee, den tager jeg. Vi har nemlig også en fælles fil :o)
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