Kabbak -> måske en detajle, men hvs du kører luktid fra Workbook_Open, skal du så ikke annulere den OnTime du satte der, når du kører Worksheet_Change. (vil regnearket ikke ellers lukkes efter 15 min. uanset om der arbejdes eller ej ??)
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" 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" 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
Hov.. Jeg glemte lige at skrive at når man vil annulere en OnTime skal man bruge nøjagtig det samme klokkeslet og MakroNavn til dette. Det er derfor at jeg bruger den globale variabel LukkeTid til at holde forrige tid/klokkeslet i. False er afbryderen.
Jeg kan ikke få det til at virke. Udløbstiden er fra man åbner filen, ændringer har ikke indflydelse på tiden.
Jeg har forsøgsvis lagt følgende kode i en command button. Det kunne jo være at jeg havde lagt koden det forkerte sted, så jeg syntes lige det skulle afprøves. Private Sub CommandButton1_Click() If LukkeTid > 0 Then Application.OnTime LukkeTid, "LukFil", , False LukkeTid = Now + TimeValue("00:15:00") Application.OnTime LukkeTid, "LukFil" End Sub Aktivering af knappen, ændre heller ikke på tiden.
Hvad kan der være galt?.
Tillægs spørgsmål. Kan man overfører lukketiden til en celle eller en tekstbox?. Hvad er koden for at åbne en workbook?.
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
Så virker det hele. Jeg havde glemt Public Lukketid, et væsentligt stykke kode.
Overførsel af lukketiden til en celle virker også, lige som jeg spurgte om. Det var nu en nedtælling jeg havde i tankerne, men det kunne jeg jo bare have skrevet.
Bak: altid rart med et vågent øje, der holder øje med tingene. Hvis du lægger et svar, så kan i få 30 point hver.
Kabbak: hvis ikke du har gættet det, skal det bruges til turnusplanen, som du tidligere har hjulpet med. Planen for fremtiden, er at lave turnusplanen som en web side. Så hvis du også er skrap til hjemmeside programering, så kan du tjene lidt flere point ved at svare på de samme spørgsmål igen, dog i et andet forum.
Sub Besked() Do Sheets("Sheet1").Range("A1") = LukkeTid - Now Loop End Sub
Så går Excel helt i selvsving. Der kommer ganske vist en nedtælling i celle A1, men der kommer også timeglas i stedet for markøren, så man ikke kan foretage sig noget.
Hvad går der galt?. Hvordan kommer man ind i Visual Basic når Excel er gået i selvsving?.
I stedet for det loop jeg har lavet til nedtællingen, hvad kunne jeg så bruge?. Skal det laves så den kun loopér hver sekund, eller er det noget helt andet jeg skal have fat i?.
selv tak Tonny , det er noget af et projekt du er i gang med ;-)
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.