23. april 2004 - 23:21Der er
19 kommentarer og 1 løsning
loop gennem kolonner, lav graf og print til pdf med unikt navn
Hej
Jeg skal automatisere rapportgenerering på en opgave. Princippet er flg: jeg har et ark med data (arket kaldes data) i kolonner. Hver kolonne repræsenterer én rapport. Det jeg gør pt. er at jeg har en rapport-skabelon i arket rapport, hvor diverse grafer og tabeller dannes udfra kolonne B i arket data. I arket data har jeg etiketter i kolonne A og de ønskede data i kolonne B (og i kolonne D og udefter de resterende data). Jeg kopierer ganske simpelt de ønskede data fra kolonne [et eller andet større end kolonne C] hen til B og derefter laves min rapport i arket rapport. Herefter printer jeg denne rapport som PDF-fil vha. Acrobat Distiller (navngives manualt udfra unik rapport-ID). Herefter gentager jeg dette for næste rapport;kopiere data til kolonne B, udskrive til pdf med unik navngivning (manualt)
Alt dette må simplethen kunne gøres smartere - jeg er bare ikke helt klar over, hvordan og om der er nogle specielle problemstillinger at være opmærksom på.
OK - jeg er kommet så langt at få en makro til at kopiere data fra f.eks. kolonne D til kolonne B og få dannet den tilsvarende rapport. Det der driller er at få navngivet pdf-filen med en værdi fra data-kolonnen. Dernæst at få makroen til at loope.
asol >> dit link ser meget spændende ud, jeg sidder faktisk lige nu og prøver at få det tilpasset mit behov.
bak >> hidtil har jeg "bare" valgt min Acrobat Distiller via Udskriv, valgt den rette stil og givet filen et unikt navn. Dette gentog jeg så 120-140 gange ..... zzzzzzz
Ok, nu kender jeg ikke din version af adobe så dette virker måske/måske ikke Jeg antager at du vil give filen navnet det står i kolonne B celle B1 Denne linie skal nok ændres til det din printer/driver hedder Const stPDFPrinter As String = "Adobe Destiller on FILE:" Det finder du nemmeste ved at optage en makro hvor du udskriver.
Sub PDFPrint() Const stPDFPrinter As String = "Adobe Destiller on FILE:" Const stPath As String = "C:\PDFfiler\" Dim stFilnavn As String Dim stOldPrinter As String On Error GoTo errormsg ' filnavn fra celle B1 stFilnavn = ActiveSheet.Range("B1").Value 'hvad hedder nuværende printer stOldPrinter = Application.ActivePrinter 'udskriv til pdfprinter ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:=stPDFPrinter, _ Collate:=True, prtofilename:=stPath & stFilnavn 'skift tilbage til rigtig printer Application.ActivePrinter = stOldPrinter Exit Sub errormsg: MsgBox "Der er sket en fejl, Arket er ikke printet ud i pdf-format" End Sub
Status: Min makro til generering af rapporter looper perfekt og rapporterne gemmes med et unikt navn som separate xls-filer i en folder. Derudover har jeg en "proto-type" på en print-makro, som looper gennem alle xls-filer en folder. Den starter med at åbne "den første" xls-fil UDEN opdatering af kæder (og det er vigtigt), men den del der driller er at få udskrevet til PFD. Her arbejder jeg på asol´s henvisning fra tidligere i tråden, idet det netop er den vej jeg vil.
Nu kører "skidtet" perfekt - I har været udholdende og tålmodige. Så giv et svar, så får I point.
Til info: jeg valgte at lade en makro generere rapporter til xls-format og derefter lade en anden makro (asol - endnu engang tak for linket) generere pdf-filerne. Og det virker kanon - jeg har sparet mange timers arbejde fremover :-)
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.