Start » VBA-exempel för Excel | Effektiva lösningar på konkreta problem » Kalkylbladsstruktur » Skapa separata arbetsböcker av varje flik i Excel VBA

Skapa separata arbetsböcker av varje flik i Excel VBA





excel-bladMakroexempel i VBA som på ett enkelt sätt splittar upp arbetsböcker till separata filer som automatiskt spars på samma ställe som ursprungsboken.

Detta kan vara praktiskt för rapporter som du skapar i Excel och som till exempel innehåller en avdelning av företaget per flik. När du väl skall skicka ut inormationen till berörda så kanske du inte vill belasta mottagaren med samtliga flikar i rapporten utan bara just dennes avdelning.

Detta kan man lösa för hand genom att manuellt kopiera flik för flik till nya arbetsböcker. Om det handlar om en stor mängd flikar, liksom om ett periodvis återkommande arbetsmoment, så kan man överväga att skapa en makro för uppgiften, eller rättare sagt ett litet VBA-program.

VBA-kod som skapar separat Excelfil av varje blad

Programmet loopar igenom samtliga arbetsblad från och med det ordningsnummer som du anger överst i koden. I exemplet ovan så börjar loopen på 2, dvs den hoppar över det kalkylblad som ligger längst till vänster i arbetsboken.

Vidare så kopieras varje flik till en ny Excelbok som spars på samma ställe som den arbetsbok där det här programmet ligger i. Den nya Excelboken får samma namn som motsvarande flik. Ett tips är således att innan makrokörningen kopiera den ursprungliga Excelfilen till en ny, tom folder och sedan exekvera makrot därifrån. På det sättet så undviker du krockar vad gäller filnamn samt inte minst så slipper du problem med överskrivna filer.

Sub Skapa_Ny_Fil_Av_Varje_Flik()
 
Dim i As Integer
Dim strBladnamn As String
Dim strSokVag As String
Dim FilNamn As String
 
For i = 2 To Sheets.Count 't ex 1 flik innan dest-flikarna börjar
Sheets(i).Activate  strBladnamn = ActiveCell.Worksheet.Name
Sheets(strBladnamn).Select
 
'Kopierar varje blad till en ny arbetsbok
Sheets(strBladnamn).Copy
strSokVag = ThisWorkbook.Path
ChDir strSokVag
FilNamn = strBladnamn
 
'Spar ned den nya arbetsboken på samma ställe som grundfilen
ActiveWorkbook.SaveAs Filename:=strSokVag & "/" & FilNamn, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
 
'Stänger ned den nyskapade Excelfilen
ActiveWindow.Close Savechanges:=True
 
Next
 
End Sub




En kommentar till “Skapa separata arbetsböcker av varje flik i Excel VBA”

  1. Sambje

    Hej! Tack för bra sida o nyttiga tips. Däremot excelfi till varje blad fungerar inte riktigt hos mig . Jag får en separat fil men det är bara ett nytt dokument och det är tomt. Ngn som vet vad som kan bli problem gärna skicka tips på sbjelanovic@hotmail.com

    Hälsning S

Lämna en kommentar