Discussion:
zapisywanie do pdf EXCEL za pomocą makra
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
grzegorz
2009-07-09 11:59:34 UTC
Permalink
Witam
Potrzebuję stworzyć makro które by zapisywało arkusz excel-a do pliku
pdf nadając nazwę pliku pdf nazwą zamieszczoną w wskazanej komórce.
Plik ma być zapisany na dysku. Nagrywanie makra nie specjalnie mi
wychodzi. Korzystam z excel 2007. Proszę o pomoc.
Cynio
2009-07-09 14:02:38 UTC
Permalink
po pierwsze zainstaluj dodatek "Microsoft Zapisz jako PDF", dostępny
ot choćby pod linkiem http://42.pl/u/1Hxg

Po zainstalowaniu pojawi się pewnie w menu plik opcja "zapisz jako
pdf".
Ponieważ nie wiem jak makro będzie się odwoływało do tej opcji
najlepiej nagrać makro które zapisuje ten plik do pdf (nagraj je w
skoroszycie makr osobistych), później podejrzyj kod.

Pewnie może być coś takiego:
sub zapis()
ActiveWorkbook.SaveAs Filename:= "c:\\Zeszyt1.txt",
FileFormat:=xlPDF,
end sub

Jeśli tak to zmodyfikuj kod następująco:

sub zapis()
dim nazwa_pliku as string
nazwa_pliku= Worksheet("arkusz_z_nazwa").Range
("komorka_zawierajaca_nazwe")
ActiveWorkbook.SaveAs Filename:= nazwa_pliku, FileFormat:=xlPDF
end sub

Trochę zagmatwane ale piszę na ślepo gdyż nie mam dostępu do Excela
2007

--
Pozdr.
Cynio
grzegorz
2009-07-09 16:22:18 UTC
Permalink
Post by Cynio
po pierwsze zainstaluj dodatek "Microsoft Zapisz jako PDF", dostępny
ot choćby pod linkiemhttp://42.pl/u/1Hxg
Po zainstalowaniu pojawi się pewnie w menu plik opcja "zapisz jako
pdf".
Ponieważ nie wiem jak makro będzie się odwoływało do tej opcji
najlepiej nagrać makro które zapisuje ten plik do pdf (nagraj je w
skoroszycie makr osobistych), później podejrzyj kod.
sub zapis()
    ActiveWorkbook.SaveAs Filename:= "c:\\Zeszyt1.txt",
FileFormat:=xlPDF,
end sub
sub zapis()
 dim nazwa_pliku as string
nazwa_pliku= Worksheet("arkusz_z_nazwa").Range
("komorka_zawierajaca_nazwe")
ActiveWorkbook.SaveAs Filename:= nazwa_pliku, FileFormat:=xlPDF
end sub
Trochę zagmatwane ale piszę na ślepo gdyż nie mam dostępu do Excela
2007
--
Pozdr.
Cynio
Dzięki za odpowiedź
poradziłem sobie troszkę inaczej jak mówisz.
Dla zainteresowanych juro podam kod jak będę w pracy.
Pozdrawiam.
Cynio
2009-07-10 08:13:56 UTC
Permalink
Post by grzegorz
Dzięki za odpowiedź
poradziłem sobie troszkę inaczej jak mówisz.
Dla zainteresowanych juro podam kod jak będę w pracy.
Pozdrawiam.
Dajesz dajesz, będzie w archiwum:-)
Czytałem też, że można to zrobić za pomocą wirtualnej drukarki ale nie
miałem jak potestować

--
Pozdr.
Cynio
Budzik
2009-07-12 19:56:43 UTC
Permalink
Post by grzegorz
Dla zainteresowanych juro podam kod jak będę w pracy.
no i nie podałes....
--
Pozdrawia... Budzik ; #GG: 565516 ; www.rowery.rejtravel.pl
b_ud_zi_k_6_1 na poczta kropka onet kropka pl (adres antyspamowy, usuń także "_")
DZIAŁ KADR PRZYPOMINA PRACOWNIKOM O BADANIACH OKRESOWYCH KRWI I KAŁU
W CELU USTALENIA CZY PRACOWNIK MA PRACĘ WE KRWI CZY W DUPIE
grzegorz
2009-07-22 09:34:01 UTC
Permalink
Trochę spóźnione ale nie miałem dostępu do netu.
Już podaję kod:

zapisz_pdf_kom Makro
nazwa = ActiveWorkbook.Worksheets("Świadectwo").[L18]


ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"D:\Świadectwa_PDF\" & nazwa & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True,
IgnorePrintAreas:=False, _
OpenAfterPublish:=True


"D:\Świadectwa_PDF\" to ścieżka dostępu.
Pozdrawiam
g***@gmail.com
2017-08-07 10:27:05 UTC
Permalink
Mam pytanko

napisałem coś takiego:

Sub KubowyPrzycizg()

Dim pdfFileName As String
Dim pdfSaveDir As String
Dim iRet As Integer

ActiveSheet.Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$N$66"
ActiveSheet.PageSetup.Orientation = xlLandscape ' Orientacja strony

pdfSaveDir = ActiveSheet.Range("A1") ' Ścieżka zapisu
pdfFileName = "Raport-JB_" & Cells(1, 2) ' Nazwa pliku PDF

' Export do PDF

With ActiveSheet
On Error Resume Next
.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\" + pdfSaveDir + pdfFileName + ".pdf", Quality:=xlQualityStandard, IgnorePrintAreas:=False, OpenAfterPublish:=True
On Error GoTo 0
End With

iRet = MsgBox("Zapisane Panie Kierowniku", vbOKOnly, "Info") ' info po zapisie

End Sub


_________________________________________________

Jest prawie dobrze ale... chciałbym aby ścieżkę zapisu wskazywało pole A1 niestety plik za każdym razem zapisywany jest na C
m***@gmail.com
2018-04-24 10:12:10 UTC
Permalink
witam,
Jak to przerobić abym miał datę plus nazwę zmienną z komórki

pdfFileName = "Raport_" & Date & "i w tym miejscu chciałbym numer raportu"

i nazwa pliku: Raport_NOC_2018-04-24_1/18.pdf

dziękuję za pomoc ... kombinuje ale nie wychodzi
m***@gmail.com
2018-04-24 10:13:16 UTC
Permalink
witam,
Jak to przerobić abym miał datę plus nazwę zmienną z komórki

pdfFileName = "Raport_" & Date & "i w tym miejscu chciałbym numer raportu pobrany z komórki"

i nazwa pliku: Raport_2018-04-24_1/18.pdf

dziękuję za pomoc ... kombinuje ale nie wychodzi
r***@gmail.com
2019-01-31 12:15:51 UTC
Permalink
Post by m***@gmail.com
witam,
Jak to przerobić abym miał datę plus nazwę zmienną z komórki
pdfFileName = "Raport_" & Date & "i w tym miejscu chciałbym numer raportu pobrany z komórki"
i nazwa pliku: Raport_2018-04-24_1/18.pdf
dziękuję za pomoc ... kombinuje ale nie wychodzi
Witam

Wpisz:

pdfFileName = "Raport_" & Date & ActiveSheet.Range("J5").Value & ".pdf"

Tam gdzie jest J5 wstaw swoją komórkę

Loading...