Çalışma Sayfasını Buton İle PDF e Çevirme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Arkadaşlar Merhaba,

Ekte göndermiş olduğum çalışma sayfasını ilgili sayfanın sağ üst köşesine buton ekleyerek tek bir click ile nasıl pdf e çevirebilirim ? Yardımcı olabilecek biri var mıdır ? ""Not: Söz konusu sayfayı boş sayfalara create ederek sürekli kullanacağım" Yardımlarınız için şimdiden teşekkür ederim. Hayırlı ramazanlar dilerim.
 
Son düzenleme:
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Arkadaslar yardimci olabilecek biri yok mu ? :(
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Kod:

Kod:
Sub savePDF()
Dim Yol As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Yol = ThisWorkbook.Path
Say = CreateObject("Scripting.FileSystemObject").getfolder(Yol).Files.Count + 1


Sheets("TABLO").PageSetup.PrintArea = "$A$1:$AV$75"


Sheets(Array("TABLO")).Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Yol & "\" & Say & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
Application.ScreenUpdating = True
Application.DisplayAlerts = True

MsgBox "işlem tamam"

End Sub
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Yardimlariniz icin cok tesekkur ederim gercekten. Cok uzun zamandir makro yazmadigim icin korelmisim. Eger zamaniniz var ise bana bir konuda daha yardimci olmanizi isteyecegim. Soz konusu sayfaya uc tane buton ekleyecegim. Bir tanesi bugun gondermis oldugunuz kod ile sayfayi sadece pdf e cevirecek. (Bu konu sayenizde cozuldu) Diger iki butondan bir tanesi pdf e cevirecek ve masa ustune sayfaya verdigim adi ekleyerek kaydedecek son buton ise pdf e cevirecek ve sayfaya verdigim isim ile kaydederek mail olarak acilacak. ( en son butondaki amaca musteriye huzli bir sekilde dosyayi mail atabilmek) Bu konuda bana yardimci olursaniz cok sevinirim cunku her uc durumuda acil olarak kullanmam gerekebiliyor. Biliyorum cok sey istiyorum belki yogunsunuz ama gercekten yardimci olusaniz cok sevinirim. Simdiden cok tesekkur ederim. Sevgilerle...
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Yardimlariniz icin cok tesekkur ederim gercekten. Cok uzun zamandir makro yazmadigim icin korelmisim. Eger zamaniniz var ise bana bir konuda daha yardimci olmanizi isteyecegim. Soz konusu sayfaya uc tane buton ekleyecegim. Bir tanesi bugun gondermis oldugunuz kod ile sayfayi sadece pdf e cevirecek. (Bu konu sayenizde cozuldu) Diger iki butondan bir tanesi pdf e cevirecek ve masa ustune sayfaya verdigim adi ekleyerek kaydedecek son buton ise pdf e cevirecek ve sayfaya verdigim isim ile kaydederek mail olarak acilacak. ( en son butondaki amaca musteriye huzli bir sekilde dosyayi mail atabilmek) Bu konuda bana yardimci olursaniz cok sevinirim cunku her uc durumuda acil olarak kullanmam gerekebiliyor. Biliyorum cok sey istiyorum belki yogunsunuz ama gercekten yardimci olusaniz cok sevinirim. Simdiden cok tesekkur ederim. Sevgilerle...
kırmızı alanları kendinize göre doldurun.
kod:

Kod:
Sub savePDF()

Application.ScreenUpdating = False

dosya_adı = InputBox("Dosya isimini değiştirebilirsiniz.", "UYARI!", "deneme")

If dosya_adı = "" Then
MsgBox "Dosya ismini yazmadınız"
Exit Sub
End If

msg1 = MsgBox("Dosya göndermek istiyormısunuz. ?", vbYesNo + vbInformation, "uyarı")

Yol = ThisWorkbook.Path
Say = CreateObject("Scripting.FileSystemObject").getfolder(Yol).Files.Count + 1
Sheets("TABLO").PageSetup.PrintArea = "$A$1:$AV$75"

Sheets(Array("TABLO")).Select
dosya = Yol & "\" & dosya_adı & Say & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=dosya, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False


Set objEmail = CreateObject("CDO.Message")

kullanici_sahibi = [COLOR="Red"]"kullanıcı@gmail.com"[/COLOR]
kullanici_parola = [COLOR="red"]"parola"[/COLOR]

objEmail.To =[COLOR="red"] "birisi@hotmail.com"[/COLOR] ' Gönderilecek e-mail adresi
objEmail.From = kullanici_sahibi ' Gönderen e-mail adresi

objEmail.Subject = "Ekli Dosya" 'konu

Txt1 = "Merhaba Sayın Yetkili1"
Txt2 = "Merhaba Sayın Yetkili2"
Txt3 = "Merhaba Sayın Yetkili3"

objEmail.HTMLBody = Txt1 & vbCrLf & Txt2 & vbCrLf & Txt3


If msg1 = vbYes Then
Application.Wait (Now + TimeValue("00:00:02"))
objEmail.Addattachment dosya '"C:\deneme.txt" ' eğer isterseniz eklenecek dosya
End If


With objEmail.Configuration.Fields

.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = kullanici_sahibi '"kullanıcı@hotmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = kullanici_parola '"parola"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update

End With
objEmail.Send

Application.ScreenUpdating = True

MsgBox "işlem tamam.", vbApplicationModal, "Bilgilendirme!"

End Sub
ayrıca aşağıdaki linkide irdeleyiniz.

http://www.excel.web.tr/f48/makro-ile-pdf-kaydedilen-dosyayy-mail-gonderme-t148125.html
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Hata Kodu

Merhabalar,

Dediklerini yerine getirdim fakat (Run-time error '2147220975 (80040211)':) şeklinde error vermekte. Yardımcı olabilir misniz acaba ? :8
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Eklemiş olduğum dosyayı yeniledim ve çalıştırmak istediğim butonları ekledim. Daha fazla yardımcı olacağı kanaatindeyim. Şimdiden çok çok teşekkür ederim..
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Eklemiş olduğum dosyayı yeniledim ve çalıştırmak istediğim butonları ekledim. Daha fazla yardımcı olacağı kanaatindeyim. Şimdiden çok çok teşekkür ederim..
5 nolu mesajdaki kullanıcı mail adı gmail hesabın da kodlar çalışıyor

bir adet gmail hesabı edinin

kullanici_sahibi = "kullanıcı@gmail.com" 'kullanıcı
kullanici_parola = "parola"

objEmail.To = "birisi@hotmail.com" ' Gönderilecek e-mail adresi
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Göndereceğim kişi değişebileceğinden mail açıldığında alıcı adresi kendim manual olarak yazmak istiyorum ayrıca tıpkı dosya ismi verebildiğimiz gibi mail konusunuda kendim manual olarak yazmak istiyorum. Kodları nasıl revize edebilirim ? Yardımcı olabilir misiniz ? Teşekkür ederim.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Göndereceğim kişi değişebileceğinden mail açıldığında alıcı adresi kendim manual olarak yazmak istiyorum ayrıca tıpkı dosya ismi verebildiğimiz gibi mail konusunuda kendim manual olarak yazmak istiyorum. Kodları nasıl revize edebilirim ? Yardımcı olabilir misiniz ? Teşekkür ederim.
Size yardımcı olabilmem için öncelikle söylenenleri yerine getirin
bir gmail hesabı ile 5 nolu mesajdaki kodu deneyin çalışıyormu boşuna kürek çekmeyelim.

mail adreslerinide elle yazmak zor olur sayfanın bir hücresine yazıp almak daha kolay olur.
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Gayet güzel calışıyor. Kendi şirket mailimde neden çalışmıyor çözemedim bir türlü.Mail adreslerinide dediğiniz gibi yapalım bence.. Haklısınız.. çok teşekkür ederim.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Gayet güzel calışıyor. Kendi şirket mailimde neden çalışmıyor çözemedim bir türlü.Mail adreslerinide dediğiniz gibi yapalım bence.. Haklısınız.. çok teşekkür ederim.
kodun aşağıdaki kırmızı bölümlerini kurcalamak gerekiyor.

Kod:
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = [COLOR="red"]"smtp.gmail.com"[/COLOR]
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = [COLOR="Red"]465[/COLOR]
Buradaki kırmızı bölüm gmail smtp server adı ve port numarası siz kendi işyerinizdeki bu bilgileri biliyorsanız buraya yazın belki çalışır ama sadece kendi işyerinizde çalışır evde veya başka bir yerde çalışmaz

Mesela hotmail hesabımdan ben evde mail gönderemiyorum ama iş yerindeki ağ bunu destekliyor dolayısıyla işyerinden hotmail hesabımdan mail gönderebiliyorum.

hotmailin port numarası ve server ismi şöyle

25 - smtp.live.com

gmailin port numarası ve server ismi şöyle
465 - smtp.gmail.com

sizde kendi işyerinizdeki destekleyen bu bilgileri girmelisiniz.
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Peki halit bey , mail adreslerini bir hücreden almak için kodu nasıl revize etmeliyim ? Çok oldum biliyorum ama vba dair herşeyi unutmuşum :(
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Bir de mail açıldğında konuyu manual olarak yazmak istiyorum aynı dosya adında yaptğımız değişiklik ekranında olduğu gibi..
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Kod:
objEmail.To = "[COLOR="Red"]birisi@hotmail.com[/COLOR]" ' Gönderilecek e-mail adresi
Yukarıdaki bölümü bulun ve kırmızı yeri aşağıdaki gibi yapın

Kod:
objEmail.To =[COLOR="red"]Sheets("TABLO").Range("A1").Value[/COLOR]
burada TABLO sayfasındaki A1 hücresindeki değeri almaktadır.
yani TABLO sayfasında A1 hücresine mail adresi yazarsanız kod o mail adresini alır.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bir de mail açıldğında konuyu manual olarak yazmak istiyorum aynı dosya adında yaptğımız değişiklik ekranında olduğu gibi..
Kod:
objEmail.HTMLBody =[COLOR="Red"] Txt1 & vbCrLf & Txt2 & vbCrLf & Txt3[/COLOR]
bunuda yukarıdaki mesajımda söylediğim gibi yapabilirsiniz.
Kod:
objEmail.HTMLBody =[COLOR="red"] Sheets("TABLO").Range("A2").Value[/COLOR]
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Dosya ismini değiştirebildiğim gibi mail konusu için uyarı vermiyor ve ismi manual olarak yazamıyorum. Mail adresi seçimi ile ilgili A1 sütununu kullanamam çünkü orada şirket logosu var bunun dışında gönderme ihtimalim olan 5 farklı e mail adresi var veiki tanesini deneme içi çalışma sayfasının DM17-18 nci sütunlarına yazdım. İnceleyebilmeniz için tabloyu ekte gönderiyorum. Çok uğraştırdım sizi kusuruma bakmayın....
 
Son düzenleme:

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Maili kime gönderecekseniz burası
Kod:
objEmail.To = Sheets("TABLO").Range("DM17").Value
DM17 hücresi

konunun içeriği için bu
Kod:
objEmail.HTMLBody = Sheets("TABLO").Range("DM18").Value
DM18 hücresi ama bu hücrede mail adresi var oysa murada mesaj olmalıydı

kodun bu bölümü mesaj ile ilgili
Kod:
objEmail.HTMLBody=
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Bütün bunları sayfa pdf e döndüğünde maili göndermeden önce dosya ismi soran sekme gibi aynı yapsak daha iyi olmazmı. Çalışma şeklimiz farklı olduğu için size durumu izah edemiyorum ve sürekli size soru sormak zorunda kalıyorum ve çok fazla vaktinizi aldım.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,852
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bütün bunları sayfa pdf e döndüğünde maili göndermeden önce dosya ismi soran sekme gibi aynı yapsak daha iyi olmazmı. Çalışma şeklimiz farklı olduğu için size durumu izah edemiyorum ve sürekli size soru sormak zorunda kalıyorum ve çok fazla vaktinizi aldım.
Son kez cevap ayzıyorum çünkü konu uzadı gitti
Ekli dosya kodlara hiç dokunmayınız
DM14 hücresinden bir mail adresi seçinve seçtiğiniz mail formül ile DM17 hücresine gelmekte
DN17 hücresine mailin konusunu yazın
DO17 hücresine kullanıcı maail adresinizi yazın
DP17 hücresine kullanıcı parolasını yazın
DQ17 hücresinede mesaj içeriğini yazın
ve komut düğmesine tıklayın
 

Ekli dosyalar

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst