Avatar billede boro23 Forsker
29. maj 2012 - 08:43 Der er 16 kommentarer og
1 løsning

Gem som makro

Kan nogen hjælpe med redigering af nedenstående makro, den skal gemme som pdf i stedet for xlsm? Har prøvet ændre filnavnet til .pdf, men så vil den ikke hente filnavnet med fra celle O1.


Sub Gem()
    Application.Dialogs(xlDialogSaveAs).Show Range("O1") & ".xlsm"
End Sub

Bruger office 2010
Avatar billede supertekst Ekspert
29. maj 2012 - 09:31 #1
Prøv at indspille en makro, hvor du gemmer som PDF..
Avatar billede boro23 Forsker
29. maj 2012 - 09:56 #2
Det har jeg prøvet og kan ikke få det til at virke. Filnavnet/ teksten som står i celle O1 indeholder en formel, den kan jeg ikke kopier og indsætte speciel i dialogboxen "gem som"
Avatar billede supertekst Ekspert
29. maj 2012 - 10:17 #3
Måske:

Sub GemSomPdf()
Dim filNavn As String
    filNavn = Range("O1")

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\" & filNavn & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
End Sub
Avatar billede boro23 Forsker
29. maj 2012 - 12:47 #4
Jeg kan desværre ikke få det til at virke, den kommer med flg. fejl "run time error 1004" hver gang jeg kører den.
Avatar billede supertekst Ekspert
29. maj 2012 - 12:52 #5
Har du mulighed for at sende filen - så er du velkommen til dette?

@-adresse under min profil.
Avatar billede boro23 Forsker
29. maj 2012 - 13:55 #6
Hej supertekst

Jeg har oploadet et eksempel, da jeg ikke må oploade originalen

http://gupl.dk/680047/
Avatar billede supertekst Ekspert
29. maj 2012 - 14:25 #7
Har prøvet at indlægge den viste kode i den fremsendte fil - det fungerer.

Har du muligvis for at vise din kode?
Det kunne være der var en forskel.

ps. Anvender 2007
Avatar billede supertekst Ekspert
29. maj 2012 - 14:30 #8
Avatar billede boro23 Forsker
29. maj 2012 - 14:47 #9
Den gamle kode ser sådan ud:

Sub Gem()
    Application.Dialogs(xlDialogSaveAs).Show Range("O1") & ".xlsm"
End Sub

Filtypen skal bare ændres til.pdf

Vil du indsætte din kode i mit eks. og oploade til mig.

Har fyraften nu, vender tilbage i morgen
Avatar billede supertekst Ekspert
29. maj 2012 - 15:09 #10
Lidt anden indpakning - virker også her:

PS: Prøv evt. at gem på en anden sti end originalfilen.

Sub CreatePDFs()
Dim filNavn As String
    Dim strPath As String
    Dim wkbSource As Workbook
    Dim wks As Worksheet
   
    filNavn = Range("O1")
    strPath = ActiveWorkbook.Path
   
    If Right(strPath, 1) <> "\" Then strPath = strPath & "\"
   
    Set wkbSource = ActiveWorkbook
   
    For Each wks In wkbSource.Worksheets
        Select Case wks.Name
            Case "one"
                'Do nothing
            Case Else
                wks.ExportAsFixedFormat xlTypePDF, strPath & filNavn & ".pdf"
        End Select
    Next wks
End Sub
Avatar billede store-morten Ekspert
29. maj 2012 - 18:41 #11
Har du ændret D til et drev du har?
På Upload ses C og spring til F

Sub GemSomPdf()
Dim filNavn As String
Dim sti As String

    sti = ActiveWorkbook.Path
    filNavn = Range("O1")

      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    sti & "\" & filNavn & ".pdf", _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, _
      IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Denne skulle gemme på samme pladsering som din Excel fil har.
Bemærk: Hvis PDF filen findes i forvejen overskrives denne.
Avatar billede boro23 Forsker
30. maj 2012 - 16:52 #12
Hej igen

Har ikke været udenbys hele dagen, så jeg har lige tjekket koderne privat og der virker de. Det jeg faktisk bare ønsker er at koden skal stoppe når dialogboxen "gem som" har fået indsat filnavn og filtype (pdf), fordi det personale som bruger excel filen skal gemme forskelligt. Koden skal bare gøre det samme som koden i mit spørgsmål, bare filtypen skal ændres til .pdf.

Jeg vender lige tilbage i morgen.
Avatar billede boro23 Forsker
31. maj 2012 - 08:45 #13
Hej
supertekst, kan ikke få din første kode til at virke, din anden kode kan afspilles uden fejl, men kan ikke finde ud af hvor den har gemt pdf filen.

store-morten, din kode virker fint, men gør mere end jeg har behov for.

#12, koden skal stoppe når dialogboxen "gem som" har fået indsat filnavn fra O1 og ænrdet filtype fra .xlsm til .pdf, fordi det personale som bruger excel filen skal gemme forskelligt.

Håber jeg har forklaret mig bedere.
Avatar billede store-morten Ekspert
05. juni 2012 - 23:22 #14
Prøv med:
Sub Gem()
    Application.Dialogs(xlDialogSaveAs).Show arg1:=Range("O1"), arg2:=57
End Sub
Avatar billede boro23 Forsker
06. juni 2012 - 06:41 #15
Hej store-morten

Sådan, det var lige koden jeg skulle bruge, 1000 tak. Smider du lige et svar
Avatar billede store-morten Ekspert
06. juni 2012 - 18:17 #16
Velbekomme, den var svær ;-)
Avatar billede store-morten Ekspert
06. juni 2012 - 18:30 #17
Application.Dialogs(xlDialogSaveAs).Show har 6 x arg
arg1 = document_text
arg2 = type_num (PDF = 57)
arg3 = prot_pwd
arg4 = backup
arg5 = write_res_pwd
arg6 = read_only_rec

Hvor nogen argumenter defineres med TRUE/FALSE
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