Avatar billede petert Forsker
26. januar 2008 - 14:47 Der er 14 kommentarer og
1 løsning

Hjælp til makrokode.

Hej alle
kan nogle hjælpe med en makrokode der gør følgende.
Gemmer ark 1 i en mappe (Data\timesedler\2008 med mavnet "uge+indhold af celle B2" som excel fil.
Og gemmer samme ark i samme mappe med samme navn "uge+indhold af celle B2" men som PDF.
Og når det er færdigt vender til bage i det aktive ark (ark 1 )
mvh
Petert
Avatar billede petert Forsker
26. januar 2008 - 16:39 #1
Jeg glemte lige at oplyse at jeg har CuteFDP Writer instaleret.
/petert
Avatar billede petert Forsker
26. januar 2008 - 21:55 #2
Jeg fant denne fra tidligere spørgsmål som virker fint mht. at gemme som excel fil.
Sub GemEtEnkeltArk()
    myfilename = Range("B2").Value
    Application.ScreenUpdating = False
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "C:\xxxx\yy\xxxx\timesedler\2008\" & myfilename & ".xls"
    ActiveWorkbook.Close
    Application.ScreenUpdating = True
End Sub

Men hvordan kombinerer jeg denne makro med resten af spørgsmålet.
/petert
Avatar billede jlemming Nybegynder
27. januar 2008 - 09:36 #3
Det med at vælge Pdf writer som printer, kan du optage i en makro, problemet er at få den til at gemme pdf med det navn som ønsker, da det er et selvstændig program.
Avatar billede petert Forsker
27. januar 2008 - 10:11 #4
hvis jeg optager makroen ser den sådan ud.
Sub Makro2()
'
' Makro2 Makro
' Makro indspillet 27-01-2008 af xxxx yyyy
'

'
    Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True
End Sub

Kan man sammensætte disse to koder så den først kører gem som Excel og derefter som PDF og stopper der hvor jeg giver den navn (manuelt) ??
Petert
Avatar billede jlemming Nybegynder
28. januar 2008 - 09:01 #5
Ok, prøv dette.
Jeg tror ikke man kan ændre stien til hvor pdf skal gemmes, den tager altid den sidste sti..

    Application.ScreenUpdating = False
    Set aktivark = ActiveWorkbook.ActiveSheet
    myfilename = Range("B2").Value
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "C:\xxxx\yy\xxxx\timesedler\2008\" & myfilename & ".xls"
'    ActiveWorkbook.SaveAs myfilename & ".xls"
    ActiveWorkbook.Close
    Application.ActivePrinter = "CutePDF Writer on CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True
    aktivark.Select
    Application.ScreenUpdating = True
Avatar billede jlemming Nybegynder
29. januar 2008 - 09:40 #6
virker det?
Avatar billede petert Forsker
29. januar 2008 - 12:01 #7
Jeg kan ike få dette til at virke. men jeg kører de 3 makroer efter hinanden og til deler dem en knap.
Læg et svar så vi kan lukke dette og tak for hjælpen
/petert
Avatar billede jlemming Nybegynder
29. januar 2008 - 14:06 #8
hmm, det burde virke
Avatar billede petert Forsker
30. januar 2008 - 09:49 #9
Den kommer op og siger "invalig outside procedure" og så er "False" i første linje markeret
/petert
Avatar billede petert Forsker
30. januar 2008 - 09:54 #10
Hvordan kan det være at der ikke er SUB og END SUB i koden??
/petert
Avatar billede jlemming Nybegynder
30. januar 2008 - 09:58 #11
ja, undskyld :o)

Det skal der være

Sub Makro8()
Application.ScreenUpdating = False
    Set aktivark = ActiveWorkbook.ActiveSheet
    myfilename = Range("B2").Value
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "C:\xxxx\yy\xxxx\timesedler\2008\" & myfilename & ".xls"
'    ActiveWorkbook.SaveAs myfilename & ".xls"
    ActiveWorkbook.Close
    Application.ActivePrinter = "CutePDF Writer on CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True
    aktivark.Select
    Application.ScreenUpdating = True
end sub
Avatar billede petert Forsker
30. januar 2008 - 11:19 #12
Det begynder at hjælpe men den fejler her og denne linje er gul. 
Application.ActivePrinter = "CutePDF Writer on CPW2:"
Men når jeg kører makroen enkeltvis fejler den ikke
/petert
Avatar billede petert Forsker
30. januar 2008 - 11:25 #13
sådan ser koden ud der virker, jeg kan ikke se der er forskel.

Sub Makro2()
'
' Makro2 Makro
' Makro indspillet 27-01-2008 af xxxx yyy
'

'
    Application.ActivePrinter = "CutePDF Writer på CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True
End Sub
Avatar billede jlemming Nybegynder
30. januar 2008 - 11:38 #14
hmm, prøv dette:

Sub Makro8()
Application.ScreenUpdating = False
    Set aktivark = ActiveWorkbook.ActiveSheet
    myfilename = Range("B2").Value
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "C:\xxxx\yy\xxxx\timesedler\2008\" & myfilename & ".xls"
'    ActiveWorkbook.SaveAs myfilename & ".xls"
    Application.ActivePrinter = "CutePDF Writer on CPW2:"
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
        "CutePDF Writer på CPW2:", Collate:=True
    ActiveWorkbook.Close
    aktivark.Select
    Application.ScreenUpdating = True
end sub
Avatar billede petert Forsker
30. januar 2008 - 16:18 #15
Den melder fejl i samme linje. Hvad hulen gør vi galt??
Den skriver
Run time error 1004
Method 'activeprinter'of object'_Application'failed
/petert
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