Avatar billede Cikija Nybegynder
21. november 2013 - 08:58 Der er 7 kommentarer og
1 løsning

Gem som excel fil med aktive makroer, med VBA.

Jeg har tidligere fået hjælp til denne i ældre format.
Men nu har jeg behov for at gemme med aktive makroer.
Er der nogen der kan rette til, eller har en anden løsning.
(Jeg har prøvet at erstatte xls ,med xlsm. Det virkede ikke)

Dim wshNetwork
Dim fileTosave
Dim Flt
Dim Titel
Dim Filnavn
Set wshNetwork = CreateObject("WScript.Network")
  fileTosave = Range("w2") & "-" & Range("d6") & "-" & Range("e4") & "-" & Range("t5") & "-" & wshNetwork.UserName
Flt = "Excel mappe(*.xls),*.xls,"
    Flt = Flt & "Print-filer (*.prn),*.prn,"
    Flt = Flt & "Tekst-filer(*.txt),*.txt"
    Titel = "Gem Bilag Som!"
    Filnavn = Application.GetSaveAsFilename(fileTosave, Flt, 1, Titel)
    If Filnavn = False Then GoTo Afbryd
    If fileTosave <> False Then
    ActiveWorkbook.SaveAs Filnavn
    End If
Afbryd:
Avatar billede supertekst Ekspert
21. november 2013 - 09:05 #1
Eksempel:

Sub Makro1()
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\peter\Desktop\Ny Microsoft Office Excel-regneark.xlsm", FileFormat _
        :=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
Avatar billede Cikija Nybegynder
21. november 2013 - 10:00 #2
Så vidt jeg kan se,gemmer du filen et bestemt sted, med et bestemt navn.
Jeg vil gerne have mulighed for at vælge hvor jeg skal gemme, og at den skal hente filnavn fra celler.
Som i eksempel.
Avatar billede supertekst Ekspert
21. november 2013 - 10:48 #3
Ja - korrekt - men dit spørgsmål gik på at gemme som projektmappe med aktive makroer. Bemærk FileFormat_
Avatar billede boro23 Forsker
21. november 2013 - 14:52 #4
Hej Cikija, måske denne kode kan bruges, henter filnavn fra A1 og åbner dialogbox gem som.



Sub Gem()
    Application.Dialogs(xlDialogSaveAs).Show Range("A1") & ".xlsm"
End Sub
Avatar billede Cikija Nybegynder
28. november 2013 - 09:02 #5
Boro23's løsning vælger jeg at bruge.
Men Supertekst's løsning også besvarer spørgsmålet, på grund af min uklare formulering.

Så jeg vælger at give Jer begge point, hvis det er ok med Jer?
Så kast et svar, så vælter der point ind :O)
Avatar billede Cikija Nybegynder
28. november 2013 - 09:09 #6
Hmm. Der var jeg sku nok lidt for hurtig.
Boro23's løsning åbner ganske vist dialogboksen, hvor man kan vælge at gemme.
Men den sætter ikke tekst fra A1 ind.
Man skal selv vælge at det er en projektmappe med makroer.

Måske Supertekst's løsning kan modificeres til at åbne dialogboksen, så man selv kan vælge hvor man skal gemme?
Avatar billede supertekst Ekspert
28. november 2013 - 10:00 #7
Sub Makro1()
Dim filnavn As String
    filnavn = Range("A1")                          'kan modificeres
    Application.Dialogs(xlDialogSaveAs).Show filnavn, xlOpenXMLWorkbookMacroEnabled
End Sub
Avatar billede boro23 Forsker
28. november 2013 - 13:25 #8
Har du husket at afspille makroen? Koden virker ellers fint hos mig. Du skal ikke tænke på point til mig.
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

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



IT-JOB

Saab Danmark A/S

Junior System Engineer

Saab Danmark A/S

Test Manager

Cognizant Technology Solutions Denmark ApS

Senior Delivery Manager

Udviklings- og Forenklingsstyrelsen

Udviklere til Internationalt samarbejde