29. april 2016 - 11:34Der er
8 kommentarer og 1 løsning
VBA-hjælp til makro
Jeg har lavet (mest lånt fra andre VBA-hajer) nedenstående makro som gemmer filen som *.xlsm. Jeg vil gerne have den til at hente filnavnet fra celle A5 og A6 på det aktuelle ark jeg står på, når makroen aktiveres (filen består af mange ark): SÅDAN SER MIN MAKRO UD: Sub GemFilMedMakro() ' ' GemFilMedMakro Makro ' Dim varWorkbookName As String Dim sFileExtension As String
'Alternativ udgave 'Overskriver evt. eksisterende filer med samme navn
Dim ws As Worksheet Dim sti As String Dim filnavn As String Dim filtype As String Set ws = ActiveSheet sti = "C:\temp\" 'Ændr til det katalog hvor filerne skal gemmes filtype = "xlsm" 'Gemmes som makrofil. Kan ændres til f.eks. xlsx filnavn = ws.Range("A5").Value & ", " & Range("A6").Value & "." & filtype
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs sti & filnavn
Application.DisplayAlerts = True
'Fjern apostroffen i nedenstående hvis regnearket skal lukkes efter at det er gemt 'ActiveWorkbook.Close
Det virker :-), men jeg vil gerne have boksen op, så jeg selv vælger filplacering - som mig "egen" gjorde. Der kan nemlig ikke være en standard fil placering, da flere skal bruge filen.
Sub GemFilMedMakro2() ' ' GemFilMedMakro Makro ' Dim varWorkbookName As String Dim sFileExtension As String Dim ws As Worksheet Dim filnavn As String Set ws = ActiveSheet filnavn = ws.Range("A5").Value & ", " & Range("A6").Value
If varWorkbookName <> "False" Then sFileExtension = CreateObject("Scripting.FileSystemObject").GetExtensionName(varWorkbookName) varWorkbookName = Left(varWorkbookName, Len(varWorkbookName) - Len(sFileExtension)) & "xlsm" ActiveWorkbook.SaveAs FileName:=varWorkbookName End If
Jeg fik dit seneste forslag til at virke første gang, men nu skrives ikke data fra A5 og A6. Jeg har blot kopieret din kode i VBA. Har du nogen fornuftig forklaring på det?
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.