Avatar billede jss Nybegynder
23. april 2004 - 23:21 Der 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å.

Lad mig høre :-)
Avatar billede jss Nybegynder
23. april 2004 - 23:35 #1
typisk skal jeg lave 120-140 rapporter - dvs. jeg skal gentage processen 120-140 gange og det er rimeligt kedeligt ...
Avatar billede jpvj Nybegynder
23. april 2004 - 23:45 #2
Du skriver ganske simplet en makro - det vil være langt det hurtigste i dit tilfælde.

Du kan få "kodet" en stor del af det ved blot at optage den - funktioner->makro->indspil ny makro.

Når du har "kørt" den første rapport manuelt og udskrevet den, stopper du makro optagelsen, taster Alt+F8 og vælger rediger.

Herefter skal du så udvide koden til at kunne loope over de 140 kolonner.

Så er du færdig :-)
Avatar billede jss Nybegynder
25. april 2004 - 07:53 #3
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.
Avatar billede asol Nybegynder
25. april 2004 - 11:00 #4
Hejsa

Jeg har selv haft møje og besvær med autmatisk generingen af PDF-filer fra office applikationer, men fandt inspiration på følgende side:
http://www.igetit.net/SampleCode/Excel_To_PDF_vba_code.htm

Det er ikke helt det du efterspørger, men du kan helt sikkert bruge principperne...

/asol
Avatar billede bak Forsker
26. april 2004 - 10:31 #5
hvordan laver du det pdf-print ?
Udskriver du bare til en speciel printer (printerdriver) der så beder om sti og filnavn eller er det mere komplext?
Avatar billede jss Nybegynder
26. april 2004 - 10:35 #6
Hejsa asol & bak

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
Avatar billede bak Forsker
26. april 2004 - 10:54 #7
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
Avatar billede jss Nybegynder
26. april 2004 - 12:08 #8
bak >> jeg får en fejl: Run-time error '1004':

Filen kan ikke udskrives pga. en fejl i Acrobat Distiller på Ne03: Der er flg. mulige årsager:

Ikke nok hukommelse
Problemer med netværk (jeg printer lokalt ...)
Avatar billede jss Nybegynder
26. april 2004 - 12:11 #9
bak ->> jeg har bygget din sub ind i et loop, som løber så længe der er data (pt. dog kun 3 loops)
Avatar billede jss Nybegynder
26. april 2004 - 12:14 #10
asol ->> jeg har lidt udfordringer med fejl. Så vidt jeg kan se drejer det sig om at få sat det der class module rigtigt op.

Compile error

User-defined type not defined

kan du hjælpe med det?
Avatar billede asol Nybegynder
26. april 2004 - 12:18 #11
Vedr. 26/04-2004 12:08:19: Tror du i egenskaberne for printeren 'Adobe PDF' skal disable 'Prompt for Adobe PDF filename'

Vedr. 26/04-2004 12:14:42: Har du lavet en reference til 'Adobe Distiller'?

/asol
Avatar billede bak Forsker
26. april 2004 - 12:20 #12
Problemet ligger nok i    på Ne03.
det lyder som en netværksprinter

er det det der kommer ud når du optager en makro hvor du skifter til acrobat Distiller ?
Avatar billede jss Nybegynder
26. april 2004 - 13:05 #13
asol ->> har slået prompt for filename fra. Jeg fulgte guiden på dit tidligere link til at oprette reference.

bak ->> tjah - netværksprinter. Ne03 er det der kommer ud, når jeg optager via makro.
Avatar billede jss Nybegynder
26. april 2004 - 13:05 #14
Til info: Jeg bruger Acrobat Distiller 4.0
Avatar billede jss Nybegynder
26. april 2004 - 13:23 #15
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.
Avatar billede asol Nybegynder
26. april 2004 - 13:32 #16
Jeg har faktisk ikke før brugt makroen i sin helhed. Har dog lige prøvet og det virker perfekt!

Har du angivet hvilken folder den skal søge efter xl-filer i, hvor den skal gemme ps-filen og hvor den skal gemme pdf-filen?

/asol
Avatar billede jss Nybegynder
26. april 2004 - 14:13 #17
Hej asol & bak

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 :-)
Avatar billede asol Nybegynder
26. april 2004 - 14:42 #18
Du er velkommen.

/asol
Avatar billede jss Nybegynder
26. april 2004 - 20:21 #19
asol --> du får de 60 points.
bak --> hvis du ønsker at svare, så giver jeg dig gerne lidt points også :-)

Tak for hjælpen
Avatar billede bak Forsker
26. april 2004 - 20:33 #20
jss, asol har fortjent alle points. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester