Spara arbetsblad


I detta tips visas hur vi relativt enkelt kan kopiera över ett arbetsblad till en ny arbetsbok och låta användarna spara arbetsboken i önskad mapp och under önskat namn.

Option Explicit

 Sub Spara_Arbetsblad()

   '© 2002 Alla rättigheter XL-Dennis

   Dim wbBok As Workbook

   Dim wsBlad As Worksheet

   Dim SparaNamn As Variant

   Dim stNamn As String

   Set wbBok = ThisWorkbook

   Set wsBlad = wbBok.Worksheets("Spara Arbetsblad")

 

   'Här sätts initialnamnet för den nya arbetsboken ihop.

   stNamn = wsBlad.Name & Year(Date) & Month(Date) & Day(Date)

 

   'Här visas dialogrutan "Spara" med det föreslagna namnet.

   SparaNamn = Application.GetSaveAsFilename(InitialFilename:=stNamn)

   'Om användaren klickar på Avbryt-knappen.

   If SparaNamn = False Then Exit Sub

 

   Application.ScreenUpdating = False

    'Kopierar arbetsbladet till en ny arbetsbok.

   wsBlad.Copy

 

   ActiveSheet.Unprotect password:="lösenord"

 

   'Omvandlar alla formler till konstanta värden.

   With ActiveSheet.UsedRange

      .Copy

      .PasteSpecial Paste:=xlValues

   End With

   Application.CutCopyMode = False

 

   ActiveSheet.Protect password:="lösenord"

 

   'Spara den skapade arbetsboken med namnet från dialogrutan "Spara".

   ActiveWorkbook.SaveAs Filename:=SparaNamn

   ActiveWorkbook.Close  

   Application.ScreenUpdating = True

 End Sub