Avatar billede nnccnn Nybegynder
16. januar 2012 - 11:16 Der er 5 kommentarer og
1 løsning

VBA - Gem Som automatisk

Hej derude

Jeg har set mig blind på hvordan jeg får vba i excel til at gemme en .xlsm fil med det åbne worksheet, som et bestemt navn som tager udgangspunkt i 2 cellers værdier samt dagens dato.
Jeg har fået opretning af mapper til at virke, så det er altså "kun" selve "gem som" proceduren jeg mangler:

Først er hvad der er defineret:¨

Dim fso
Dim fol As String
Dim file As String
Dim Ddata As Integer
Dim Dyear As Integer
Dim Dname As String
Dim Mylokale As String
Dim Myinitial As String
myLokale = Worksheets("RAPPORT").Range("K4")
myInitial = Worksheets("RAPPORT").Range("K8")
Dyear = Format(Now, "yyyy")
Ddate = Format(Now, "yyyymmdd")
Dname = Ddate & "_" & myLokale & "_" & myInitial

Dette kan jeg ikke se hvordan jeg skal få til at virke:
         
    file = "I:\ & Dyear & " \ " & Ddate & " \ " & Dname.xlsm"
        Set fso = CreateObject("Scripting.FilesystemObject")
            If Not fso.FileExist(file) Then
            ActiveWorkbook.SaveAs "I:\ & Dyear & " \ " & Ddate & " \ " & Dname.xlsm", FileFormat:=52
       
        End If
Avatar billede Ialocin Novice
16. januar 2012 - 12:36 #1
Hej nnccnn

Jeg har rettet syntaksen i din linie, hvor du tildeler file strengen med år, dato, lokale og initialer ... samt i SaveAs linien umiddelbart før End If

Jeg har ikke testet om GemSom funktionen virker her hos mig, da jeg ikke har et I drev eller diverse mapper ...

Men prøv lige følgende først:

Dim fso As Object
Dim fol As String
Dim file As String
Dim Ddata As Integer
Dim Dyear As Integer
Dim Dname As String
Dim Mylokale As String
Dim Myinitial As String

Mylokale = Worksheets("RAPPORT").Range("K4")
Myinitial = Worksheets("RAPPORT").Range("K8")
Dyear = Format(Now, "yyyy")
Ddate = Format(Now, "yyyymmdd")
Dname = Ddate & "_" & Mylokale & "_" & Myinitial


    file = "I:\" & Dyear & "\" & Ddate & "\" & Dname & ".xlsm"
           
       
        Set fso = CreateObject("Scripting.FilesystemObject")
            If Not fso.FileExist(file) Then
            ActiveWorkbook.SaveAs Filename:=file, FileFormat:=52
            End If


Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
16. januar 2012 - 12:49 #2
Hej nnccnn

Jeg har ændret din søgen efter om stien allerede er oprettet, så prøv følgende, som virker her hos mig i Excel 2003.


Dim fol As String
Dim file As String
Dim Ddata As Integer
Dim Dyear As Integer
Dim Dname As String
Dim Mylokale As String
Dim Myinitial As String

Mylokale = Worksheets("RAPPORT").Range("K4")
Myinitial = Worksheets("RAPPORT").Range("K8")
Dyear = Format(Now, "yyyy")
Ddate = Format(Now, "yyyymmdd")
Dname = Ddate & "_" & Mylokale & "_" & Myinitial


    file = "I:\" & Dyear & "\" & Ddate & "\" & Dname & ".xlsm"
   
    'hvis stien ikke findes, GemSom 
    If Dir(file) <> " " Then
          ActiveWorkbook.SaveAs Filename:=file, FileFormat:=52
    End If


Med venlig hilsen, Nicolai
Avatar billede nnccnn Nybegynder
16. januar 2012 - 12:56 #3
Perfekt, det var lige hvad jeg skulle bruge, du har sparet mig for mange ekstra timers spekulation, når man ikke kender vba så godt:)

Mange tak!

VH Nicklas
Avatar billede Ialocin Novice
16. januar 2012 - 13:09 #4
Hej Nicklas

Godt at høre, at det virker ...

Blot til info:
Så tog du selv pointene ???????



Med venlig hilsen, Nicolai
Avatar billede Ialocin Novice
16. januar 2012 - 13:13 #5
Hej Nicklas

Velkommen til Eksperten.dk.

Hvis du mener, at jeg skal ha´ point for min hjælp, så skal du bede mig om et svar, som du så kan vinge af med efterfølgende point til følge.

I tilfældet her, hvor du selv har taget pointene ... så kan du evt. oprette et nyt spørgsmål, hvori du refererer til dette spørgsmål:  http://www.eksperten.dk/spm/955351#reply_7893431
og skriver "Point til Ialocin", så skal jeg poste et SVAR, som du kan vinge af.

Med venlig hilsen, Nicolai
Avatar billede nnccnn Nybegynder
16. januar 2012 - 13:45 #6
Beklager, her kan du få dine point:
http://www.eksperten.dk/spm/955362
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
Kurser inden for grundlæggende programmering

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