Avatar billede squiip Nybegynder
13. november 2003 - 23:56 Der er 7 kommentarer og
1 løsning

Selvdetruerende ark?

Jeg ved at det er muligt at lave et regneark, som kan udslette sig selv efter en hvis periode, men er der nogen som ved hvordan man gør det?
Avatar billede bak Forsker
14. november 2003 - 09:14 #1
Jeg kan ikke umiddelbart se at regnearket kan slette sig selv, men den kan slette alle sin ark -1, "cleare" det sidste og gemme sig selv oven i den gamle version.
Dette burde jo være nok eller ...
Avatar billede jkrons Professor
14. november 2003 - 10:05 #2
Enig med bak. Et regneark skal indeholde mindst et ark, for at knne virke.

Det kan heller ikke slette sig selv da en regnearksfil skal være åben for at en makro kan køre, og en åben fil kan ikke slettes.
Avatar billede squiip Nybegynder
14. november 2003 - 10:39 #3
Er det noget man kan få den til at gøre automatisk, efter et bestemt tidsinterval? og hvordan gøres det?
Avatar billede jkrons Professor
14. november 2003 - 11:41 #4
Du kan lave en makro, der gør det, bak siger. Men den kan selvfølgelig kun køre, hvis regnearket er åbent. Du skal derfor enten have regnearket åbent hele tiden - eller du skal have åbnet, fx med Windows Scheduled Tasks (Planlagte opgaver i den danske version), hvis du har en Windows version, hvor dette findes.
Avatar billede jkrons Professor
14. november 2003 - 12:00 #5
Denne kode sletter alle ark og "tømmer" det sidste, hvis regnearket åbnes en fredag mellem 9.00 og 9.05 om formiddagen.  Du skal så bare indstille planlagte opgaver til at åbne på dette tidspunkt:

Private Sub Workbook_Open()
    Dim s As Object
    If Weekday(Date, 2) = 5 And Time() > #9:00:00 AM# And Time() < #9:05:00 AM# Then
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False

        For Each s In ActiveWorkbook.Sheets
            s.Select
            On Error GoTo SidsteArk
            ActiveWindow.SelectedSheets.Delete
        Next s

SidsteArk:
        Cells.Select
        Selection.Clear
        Range("a1").Select
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
    End If
End Sub
Avatar billede jkrons Professor
14. november 2003 - 12:03 #6
Koden skal ligge i modularket for ThisWorkbook
Avatar billede bak Forsker
14. november 2003 - 14:25 #7
Denne kode lave en lille tekstfil der indeholder oprettelsesdatoen + 30 dage, første gang regnearket åbnes
Når dags dato bliver større end datoen i tekstfilen slettes alt indholdet og filen gemmes.


Private Sub Workbook_Open()
Const MinFil As String = "c:\dennefil.txt"
Dim x As Long, text As String, checkdate
If Dir(MinFil) <> "" Then
    Open MinFil For Input As #1
    Input #1, text
   
    Close #1
    If CDate(text) > Date Then
    Debug.Print CDate(text) & "  " & Date
        Exit Sub
    Else
        Application.DisplayAlerts = False
        On Error GoTo jump
        For x = 2 To ThisWorkbook.Sheets.Count
            Sheets(x).Delete
        Next
jump:
    Sheets(1).Cells.Clear
    ThisWorkbook.Save
    Application.DisplayAlerts = True
    End If
Else
    Open MinFil For Output As #1
    Print #1, (Date + 30)
    Close #1
End If
End Sub
Avatar billede squiip Nybegynder
14. november 2003 - 17:12 #8
ok, mange tak for hjælpen! det prøver jeg så. he, min it-lærer bliver jelt vild... c(¨,)
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