16. november 2007 - 13:45Der 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"?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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
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
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
heeee, den tager jeg. Vi har nemlig også en fælles fil :o)
Synes godt om
Ny brugerNybegynder
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.