PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAspara excelflik som 290 olika pdfspara excelflik som 290 olika pdf
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2017-11-29 12:24
 
 Ändrad av rbongard  på 2017-11-29 13:26:41

Hej,

Jag använder Excel för att skapa en "rapport" på ungefär 10 sidor för varje av Sveriges 290 kommuner. Rapporten innehåller 2-3 figurer per sida. Siffrorna i figurerna är specifika för varje kommun. Kommundata finns i andra flikar och tas fram genom att ändra kommunnamn i en specifik cell (via INDEX och PASSA). 

T ex om jag anger kommunnamn "Göteborg" i cell J16 visas i samtliga figurer statistik på Göteborg. Ändrar jag kommunnamn i cell J16 till "Stockholm" ändras figurerna och redovisas data på Stockholm. Så funkar det för alla 290 kommuner.

Mitt mål är nu att skapa en unik pdf för varje kommun. Det går genom att manuellt ändra kommunnamn i cell J16 och sedan spara filen som [kommunnamn].pdf, t ex Göteborg.pdf, Stockholm.pdf, Kiruna.pdf etc. Helst gör jag det dock inte manuellt för att det kommer att ta mycket tid. Jag är inte bra med VBA och jag hittar ingen lösning online, men jag tror att det är möjligt att automatisera det här. Skulle någon av er kunna hjälpa mig?

Med vänlig hälsning,

René

Nytt inlägg
 2017-11-30 09:24
 
Hej

skapa upp en knapp och koppla detta makro till knappen.

Sub copySheet()

Dim wsChange As String
wsChange = Sheets("Blad2").Cells(16, 10).Value


Sheets("Blad2").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = wsChange
End Sub

så får du en kopia på den kommunen som du har i J16. T.ex star det göteborg så skapas en kopia med namn "Göteborg" på och kopierar allt som finns med på bladet.
Nytt inlägg
 2017-11-30 10:00
 
 Ändrad av lasse67  på 2017-11-30 11:00:36
hej igen

var visst lite snabb men här kommer en kod som du faktiskt efterfrågar

Sub SaveAsPDF()


Dim Filename As String
Filename = ActiveSheet.Cells(16, 10).Value



ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "/" & Filename & ".pdf"

End Sub

och landar den inte på rätt plats så får du ändra till rätt sökväg. ThisWorkbook.Path o.s.v


//lasse
Nytt inlägg
 2017-11-30 14:22
 

Tack så mycket Lasse! Din kod fungerar ock skapar en pdf med korrekt filnamn. Jag skulle dock gärna skapa 290 olika pdf på en gång. Så koden borde urföra dess steg:

1) skriv första komunnamn i cell J16. Komunnamn tas från cell B2 i ett annat blad/worksheet.  

2) olika diagram anpassas då efter värdet i J16. Siffrorna tas från andra excelblad. Ingen kod behövs för att göra det.

3)  Rapporten sparas som pdf (helst bara första 10 sidor) med cell J16 som filnamn. Det görs med koden du skickade. Nu vill jag att nästa kommunnamn skrivs i cell J16. Det tas från cell B3 i andra bladet. Rapporten ska sparas som pdf igen och så vidare tills programmet har gått igenom helas listan med alla 290 komunnamn i cell B2:B292. Den ska alltså skapa 290 pdf.

Tror du att det är möjligt?

Med vänlig hälsning,

René

 

Nytt inlägg
 2017-12-01 10:36
 
Hej Rene

Det du vill göra är helt klart möjligt. Det kommer dock ta en del tid, om jag förstår dig rätt så vill du ha 290 rapporter med 10 sidor i varje rapport.
Detta skulle medföra viss utmaning då excel inte har naturliga sidbrytningar såsom en pdf har. Man måste alltså först lägga 10 flikar per kommun du vill ha i din rapport, i ett separat sheet, som i sin tur är anpassat för att kunna skrivas ut (snyggt) som en tio sidors rapport.

Då du redan har allt kopplat, så vore det nog smidigare om du även kopplade allt till ett sheet för utskrift, som jag just beskrev. Jag kan förstå att det kanske blir svårt att få till något som inte ändrar storlek och form beroende på vilken kund/kommun det är, men det är närmsta halvmanuella lösningen jag kan tänka på. Annars måste även detta göras i vba.

Fixar du det så kan jag hjälpa dig här på forumet. Annars kan jag bara erbjuda hjälp per konsultbasis.

Mvh
Christian

Nytt inlägg
 2017-12-01 13:26
 

 Tack för svaret!

Jag har nu lyckats med koden. Den gör precis det jag vill och skapar 290 snygga PDF-rapporter på 5 minuter.

 

Sub LoopRange()

    Dim MyRange As Range

    Dim MyCell As Range

    Set MyRange = Range("BC1:BC290")

    For Each MyCell In MyRange

    ActiveSheet.Cells(16, 10).Value = MyCell

    Dim Filename As String

    Filename = ActiveSheet.Cells(16, 10).Value

    ActiveSheet.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "/" & Filename & ".pdf", From:=1, To:=7

    Next MyCell

End Sub

Nytt inlägg
 2017-12-01 13:35
 
Bra jobbat!

Ser ut som jag missförstod dig när jag läser koden din :). Trevlig helg /C
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAspara excelflik som 290 olika pdfspara excelflik som 290 olika pdf

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter