Avatar billede gladhund Nybegynder
06. juli 2010 - 13:21 Der er 3 kommentarer og
1 løsning

Åben, gem med nyt navn og luk

Hej eksperter,

Jeg har en .xlsm-fil, som flere brugere anvender som skabelon. Jeg vil gerne at den kan følgende (og jeg kan ikke bruge excel-skabelonen):
- Når brugeren åbner filen, skal der gemmes en kopi af den på Skrivebordet med navnet "Nyt projekt"
- Så skal der vises en msgbox("Der ligger en kopi til dig på skrivebordet")
- Så skal skabelonen lukkes igen, og filen "Nyt projekt" skal også lukkes, hvis den har været åben...

Kunsten er vel, at den nye kopi ikke gør det samme med den samme kode når den åbnes efterfølgende! Jeg forestiller mig, at man kan teste på filnavnet eller noget i den stil...

Thanx
Avatar billede Ialocin Novice
07. juli 2010 - 12:45 #1
Hej gladhund


Kan dette bruges ??

Jeg har oprettet en Excelfil: "Default.xls", svarende til din skabelonfil.


I VBA editoren under ThisWorkbook har jeg følgende kode i
hændelserne, Open og BeforeClose ...


Private Sub Workbook_Open()

'hvis denne workbook hedder "Default.xls", så ...
If ThisWorkbook.Name = "Default.xls" Then

    'gem en kopi af "Default.xls" med navnet "CopyOfDefault.xls"
    ThisWorkbook.SaveCopyAs "C:\CopyOfDefault.xls"

    'åbn "CopyOfDefault.xls"
    Workbooks.Open "C:\CopyOfDefault.xls"

    'Luk "Default.xls"
    ThisWorkbook.Close

End If

End sub




Private Sub Workbook_BeforeClose(Cancel As Boolean)

'hvis denne workbook hedder "CopyOfDefault.xls", så ...
If ThisWorkbook.Name = "CopyOfDefault.xls" Then
   
    'variabel til det nye filnavn
    Dim fnavn As String

       
        Do
            'GemSom dialogen åbnes og fnavn tildeles det nye filnavn af typen .xls
            fnavn = Application.GetSaveAsFilename(, fileFilter:="Microsoft Office Excel Workbook (*.xls), *.xls")
       
        'spørg igen på fnavn ... hvis der ikke er tastet et nyt filnavn ?
        Loop Until fnavn <> ""
               
        'gem workbook under det nye filnavn
        ThisWorkbook.SaveAs fnavn
               
   
   
    'slet "CopyOfDefault.xls"
    Kill "C:\CopyOfDefault.xls"
 
   
End If

End sub


Hvad der sker er:
Når "Default.xls" åbnes oprettes en kopi med navnet "CopyOfDefault.xls" på C drevet og "Default.xls" lukkes.

Umiddelbart før "CopyOfDefault.xls" lukkes, spørger GemSom dialogen bruger om et nyt filnavn ... "CopyOfDefault.xls" gemmes under det nye filnavn på en valgfri placering og "CopyOfDefault.xls" slettes fra C drevet.


Mvh Nicolai
Avatar billede gladhund Nybegynder
07. juli 2010 - 13:07 #2
Mange tak Nicolai, det ser helt perfekt ud :). Svar endelig
Avatar billede Ialocin Novice
07. juli 2010 - 13:23 #3
Hej gladhund

Hermed et "svar"

Go´ sommer :o)

mvh Nicolai
Avatar billede gladhund Nybegynder
07. juli 2010 - 13:48 #4
Tak i lige måde :)
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