Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

zapisywanie do pdf EXCEL za pomocą makra

5,048 views
Skip to first unread message

grzegorz

unread,
Jul 9, 2009, 7:59:34 AM7/9/09
to
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

unread,
Jul 9, 2009, 10:02:38 AM7/9/09
to
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

unread,
Jul 9, 2009, 12:22:18 PM7/9/09
to
On 9 Lip, 16:02, Cynio <cynicz...@gmail.com> wrote:
> 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.
>
> 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

Dzięki za odpowiedź
poradziłem sobie troszkę inaczej jak mówisz.
Dla zainteresowanych juro podam kod jak będę w pracy.
Pozdrawiam.

Cynio

unread,
Jul 10, 2009, 4:13:56 AM7/10/09
to
On 9 Lip, 18:22, grzegorz <grzegorz....@gmail.com> wrote:

> 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

unread,
Jul 12, 2009, 3:56:43 PM7/12/09
to
Osobnik posiadaj�cy mail grzego...@gmail.com napisa�(a) w poprzednim odcinku co nast�puje:

> 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

unread,
Jul 22, 2009, 5:34:01 AM7/22/09
to
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

gumim...@gmail.com

unread,
Aug 7, 2017, 6:27:06 AM8/7/17
to
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
Message has been deleted

mari...@gmail.com

unread,
Apr 24, 2018, 6:13:17 AM4/24/18
to


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

reac...@gmail.com

unread,
Jan 31, 2019, 7:15:52 AM1/31/19
to
Witam

Wpisz:

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

Tam gdzie jest J5 wstaw swoją komórkę


0 new messages