Avatar billede k_skriver Juniormester
12. august 2015 - 13:31 Der er 5 kommentarer

Lukke excelark via macro

Jeg har en makro, hvor jeg gerne vil have lukket Excel efter filen er blevet gemt som et nyt filnavn (placeret i celle C1)
- men programmet ender med en 'svarer ikke'-besked

FilNavn = Range("c1").Value
        ActiveWorkbook.SaveAs Filename:= _
        "C:\Users\user\Documents\" & FilNavn & ".xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            ActiveWorkbook.Save
            ActiveWorkbook.Close SaveChanges:=False
            End Sub

Kan du gennemskue hvad det kan skyldes?
Avatar billede natkatten Mester
12. august 2015 - 13:53 #1
Er det "user", der er problemet? Hvis jeg erstatter med mit eget brugernavn, fungerer det fint hos mig.

Men ellers prøv denne, som også fungerer hos mig:

Sub test()
Dim filnavn As String
Dim brugernavn As String

filnavn = Range("C1").Value
brugernavn = Environ("Username")

ActiveWorkbook.SaveAs Filename:= _
"C:\Users\" & brugernavn & "\Documents\" & filnavn & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges:=False

End Sub
Avatar billede natkatten Mester
12. august 2015 - 14:00 #2
Med tjek af, at der er indhold i celle C1:

Sub test()
Dim filnavn As String
Dim brugernavn As String

filnavn = Range("C1").Value
brugernavn = Environ("Username")

If Range("C1").Value <> "" Then
ActiveWorkbook.SaveAs Filename:= _
"C:\Users\" & brugernavn & "\Documents\" & filnavn & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges:=False
Else
MsgBox "Der mangler et filnavn i celle C1"
End If

End Sub
Avatar billede natkatten Mester
12. august 2015 - 14:01 #3
Kan naturligvis forfines væsentligt, bl.a. således at det sikres, at der er et gyldigt filnavn i celle C1 (uden "forbudte" karakterer mv.)
Avatar billede k_skriver Juniormester
12. august 2015 - 14:13 #4
Hej,

Det er umiddelbart ikke 'user-problem' - jeg havde ændret stien.

Nedenfor er den KOMPLETTE kode

Sub Tekstfelt1_Klik()

    Range("C1").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
   
   
    ActiveSheet.Shapes.Range(Array("TextBox 1")).Select
    Selection.Delete



    FilNavn = Range("c1").Value
        ActiveWorkbook.SaveAs Filename:= _
        "R:\Company\Interne forbedringer\19 Produkt standardiseringer\Ændringsforslag\" & FilNavn & ".xlsm", _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            ActiveWorkbook.Save
            ActiveWindow.Close SaveChanges:=False
            End Sub


Function UserName()

UserName = Application.UserName

End Function


Kan det forklare mit problem?
Avatar billede k_skriver Juniormester
12. august 2015 - 14:16 #5
Filen bliver fint nok gemt - det ligner at det er 'close-funktionen' der driller...
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