Avatar billede larsv Nybegynder
29. maj 2014 - 19:27 Der er 11 kommentarer

Makro "Gem som" i excel

Hej

Jeg skal have lavet en makro, som skal åbne "Gem som" dialogboksen, og som bruger indholdet i et felt i regnearket til navngivning. Regnearket skal være i formatet, hvor makroer er aktive.

Tidligere brugte jeg:

Application.Dialogs(xlDialogSaveAs).Show ("C:\Skydrive\Anders\Regneark\" & Range("F20").Value)

Problemet er: Jeg laver et nyt regneark på baggrund af en skabelon. Når jeg aktivere makroen "Gem", så kommer "navnet" fra cellen ikke med i dialogboksen. Endvidere skal jeg vælge en anden filtype (den med aktive makroer). Jeg ønsker, at både filnavnsforslag og filtype er valgt, så jeg bare skal trykke på gem. På den måde er jeg sikker på at filnavnet sammensættes korrekt.

Hvis jeg selv har navngivet en fil og gemt, så jeg har et gemt regneark i det rigtige filformat, så virker koden næste gang.

Hvad gør en klog?

//Lars
Avatar billede claes57 Ekspert
29. maj 2014 - 19:46 #1
Skal du bruge en dialogboks hvis du bare vil trykke på gem. Hvorfor ikke bare gemme filen hvis f20 er udfyldt?
Avatar billede larsv Nybegynder
29. maj 2014 - 20:35 #2
Jeg skal i princippet ikke bruge dialogboksen til noget. Kun for at være sikker på, at den rammer den rigtige sti, og at den overskriver en gammel version med samme navn, hvis den måtte findes.
Avatar billede supertekst Ekspert
30. maj 2014 - 10:06 #3
Måske:

Public Sub gemSom()
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Skydrive\Anders\Regneark\" & Range("F20") & ".xltm" _
        , FileFormat:=xlOpenXMLTemplateMacroEnabled, Password:="", _
        WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Avatar billede supertekst Ekspert
30. maj 2014 - 10:14 #4
#3 var ikke den rigtige

Public Sub gemSom()
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Skydrive\Anders\Regneark\" & Range("F20") & ".xlsm" _
        , FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", _
        WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Avatar billede claes57 Ekspert
30. maj 2014 - 10:14 #5
#3 - den bør lige tjekke, om filen findes i forvejen, og i givet fald slette den (eller sætte en overskriv uden brugerinteraktion)
Og at f20 er udfyldt med noget.
Avatar billede larsv Nybegynder
30. maj 2014 - 12:49 #6
Super... Det går den rigtige vej. Det der sker nu er, at den gennem korrekt første gang, når jeg lige har oprettet et nyt excel ark på baggrund af skabelonen.

Dog får den 2 "efternavne":

Test.xlsm.xlsm

Anden gang jeg trykker på Gem makroen, så fejler den, og jeg tror måske Claes57 har fat i noget. Kan den overskrive på en eller anden måde automatisk?

Lars
Avatar billede supertekst Ekspert
30. maj 2014 - 13:49 #7
Hej
Ser på det igen..
Avatar billede supertekst Ekspert
30. maj 2014 - 14:02 #8
Public Sub gemSom2()
    Application.DisplayAlerts = False

    ActiveWorkbook.SaveAs Filename:= _
        "C:\Skydrive\Anders\Regneark\"& ActiveSheet.Range("F20"), FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", _
        WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Avatar billede larsv Nybegynder
11. juni 2014 - 15:58 #9
Mange mange tak. Det er en fed funktion. Men nu har jeg lagt den ind (og lavet en gem-knap), og den virker delvis.

Den gemmer fint første gang jeg trykker på "gem", og hvis regneark har været lukket og åbnet igen, så virker den også hele tiden. Også med samme filnavn. Der overskriver den fint.

Lille problem er: Hvis jeg er startet fra en skabelon og derfor fået et "nyt" regneark, og trykker på gem, så gemmer den fint. Men hvis jeg trykker på "gem" igen, så fejler funktionen. Men hvis jeg gemmer "normalt", så gemmer den fint. Er det mon noget som kan løses?

Hilsen Lars
Avatar billede supertekst Ekspert
11. juni 2014 - 23:06 #10
Hej Lars

"Nyt eftersyn" udføres snarest.
Avatar billede supertekst Ekspert
23. juni 2014 - 15:44 #11
Har desværre ikke haft tid..
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