• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

".body" içindeki linke etiket eklemek

Katılım
28 Mayıs 2017
Mesajlar
42
Excel Vers. ve Dili
Excel 2016 - TR
Merhaba,

Excelde vba ile mail gönderiyorum, mail içinde bir adet link var. Mail gönderirken bu linkin url adresi görünüyor. Bu adresin yerine başka bir metin görünmesini istiyorum. Mesela "buraya tıklayınız" görünsün istiyorum. Ama bunu hangi kodlar ile yapabilirim bilmiyorum. Yardımcı olabilir misiniz?

Teşekkür ederim.
 
Kodlarınız görmeden yazıyorum.

C++:
        MyURL = "www.excel.web.tr"
        MyText = "Buradan erişebilirsiniz"
        Mesaj1 = "Mail gövdesindeki mesajınızın ilk bölümü"
        Mesaj2 = "<a href=" & MyURL & ">" & MyText & "</a>"
        YeniEmail.HTMLBody = Mesaj1 & " " & Mesaj2
 
Özür dilerim kodları göndermem gerekirdi. Kodlarımız şu şekilde;

Set outmail = outapp.CreateItem(olMailItem)
With outmail
.To = Range("H6")
.Subject = "..."
.Body = "..."
.Send
End With

Burada .body içine eklemek istiyorum linki. veya bir alt satırına harici olarak ekleyebiliyor muyuz bilmiyorum.
 
bir de tablo yapmak istiyorum. mesela 1 satır 3 sütundan oluşan bir tablo yapmak istiyorum. yani vba üzerinden mail gönderirken html özelliklerini kullanabilmek istiyorum dersem doğru bir ifade olur heralde. Bunu nasıl yapabilirim.
 
Özür dilerim kodları göndermem gerekirdi. Kodlarımız şu şekilde;

Set outmail = outapp.CreateItem(olMailItem)
With outmail
.To = Range("H6")
.Subject = "..."
.Body = "..."
.Send
End With

Burada .body içine eklemek istiyorum linki. veya bir alt satırına harici olarak ekleyebiliyor muyuz bilmiyorum.
C++:
MyURL = "www.excel.web.tr"
MyText = "Buradan erişebilirsiniz"
Mesaj1 = "Mail gövdesindeki mesajınızın ilk bölümü"
Mesaj2 = "<a href=" & MyURL & ">" & MyText & "</a>"
Set outmail = outapp.CreateItem(olMailItem)
With outmail
    .To = Range("H6")
    .Subject = "..."
    .Body = Mesaj1 & " " & Mesaj2
    .Send
End With
 
C++:
MyURL = "www.excel.web.tr"
MyText = "Buradan erişebilirsiniz"
Mesaj1 = "Mail gövdesindeki mesajınızın ilk bölümü"
Mesaj2 = "<a href=" & MyURL & ">" & MyText & "</a>"
Set outmail = outapp.CreateItem(olMailItem)
With outmail
    .To = Range("H6")
    .Subject = "..."
    .Body = Mesaj1 & " " & Mesaj2
    .Send
End With



Teşekkür ederim. Bunu uyguladım ama şu şekilde geliyor maile;

<a href=www.excel.web.tr>Buradan erişebilirsiniz</a>
 
Şu şekilde denermisin

C++:
MyText = "Yandaki linke <a href=""http://excel.web.tr"">Excel Öğrenmek için bakabilirsin</a>"
Set outmail = outapp.CreateItem(olMailItem)
With outmail
    .To = Range("H6")
    .Subject = "..."
    .HTMLBody = MyText
    .Send
End With
 
Çok teşekkür ederim. Bu şekilde oldu. Bunun üzerine ben de bir şeyler ilave ettim güzel oldu. Mantığını biraz anladım sandım yazı değil de buton olsun dedim biraz araştırdım denedim ama olmadı tam anlamamışım galiba :)

Bir de sayı problemim var. Yani maile 123456,95 formatında geliyor. Halbuki excel hücresinde 123.456,95 olarak yazıyor. Hatta formatını finansal yapıyorum para birimi yapıyorum ama yine maile 123456,95 olarak geliyor. Bunu bir türlü düzeltemedim. Normalde (#.##00) gibi bir format verebiliyoruz ama mailde olmuyor nedense. Bunu nasıl istediğim formatta aktarabilirim acaba?
 
Aşağıdaki gibi olabilir mi?

C++:
Sub Test()
    MsgBox FormatCurrency("123456,78", 2)
End Sub
 
Mail gövdesine aktarırken, hücre içinde biçimlendirilmiş olmasına rağmen siz muhtemelen Range'in "Value" özelliğiyle aktardığınız için biçimlendirmeniz aktarılmıyor.

Bu nedenle, siz aktarım sırasında ya Korhan Beyin önerdiği gibi kodun içinde tekrar biçimlendireceksiniz, ya da Range'in "Text" özelliğini kullanacaksınız.

Örneğin, A2 hücresinde değer olarak 45656461256,39 var ve siz bunu biçimlendirdiğiniz için sayfada 45.656.461.256,39 olarak görüyosunuz.

Aşağıdaki basit kod, size biçimlendirilmiş veriyi gösterir, çünkü Range'in "Text" özelliğini kullandık.

Kod:
Sub Test()
    MsgBox Range("A2").Text
End Sub


Ama, aşağıdaki kod size direkt olarak "Value" yani, "değer" olarak sonucu verir...

Kod:
Sub Test()
    MsgBox Range("A2")
End Sub

Diğer yandan, eğer siz sayfada belli bir satır/sütun aralığını e-postanın gövdesine aktarmak istiyorsanız o zaman, hücreler arasında bir döngü tasarlayıp yukarıda belirtildiği gibi birşeyler yapmalısınız.

.
 
Teşekkür ederim oldu, değerler düzeldi. Text özelliği şuanki kullanım için daha pratik geldi. Range'nin sonuna hemen text yazdım. Düzeldi :)

Şimdi son safhaya geldim. Aslında onu da az buçuk yaptım ama tam istediğim gibi olmadı.
Şimdi benim 3 adet değerim var. Her birinin bi başlığı var. Bunları komple tablo içinde mesajın ortasına yazmak istiyorum.

Bunun için "<center> </center>" komutunu kullandım. Tabloyu olduğu gibi ortaya aldı ama başlık ve satır değerleri tablo içinde sağa yaslı olarak geldi. Bunların da tablo içinde ortalı olması lazım. Denedim denedim ama bir yerleri eksik yaptım galiba. Netice alamadım.

Bir de bu tabloya arka plan rengi vermek istiyorum. Bunu başarabilirsek, linkini gizleyip sadece yazısını gösterdiğimiz url adresi için uygulayıp linke butonmuş gibi bi görüntü vermeye çalışacağım. HTML'in buton komutunu denedim ama netice alamadım. Benim de aklıma böyle bir fikir geldi.

Yardımlarınız için çok teşekkür ederim.
 
"Table" nesnesinin elementlerinde "style" uygulamanız lazım ....

.
 
Teşekkür ederim Haluk bey. Vba içinde html çalıştırmanın en pratik yolu nasıl acaba. Web üzerinde bir yerde html hazırlığını yapsak sonra bunu vba içinde bir değişkene atasak olmaz mı acaba. Ya da pratik bir yolu var mı. Vba içinde html kodlarını düzenlemek çok uğraştırıyor. Bişeler yapıyorum ama ne yaptığımı bilmiyorum. Bazılarına çift iki tırnak ( "" "" ) koymak gerekiyor bazılarına tek iki tırnak ( " " ) gerekiyor. Mantığını anlamış değilim :)
 
Sonunda buldum. Çok mutlu oldum. Mantığını anladım az buçuk.
tablo içine border değerini verince çerçeveler geldi. Yönlendirmeleriniz vesilesiyle halloldu. Çok teşekkür ederim. :)
 
Çözümü kendiniz bulmanız en iyisidir, tadından yenmez .....

Az önce ben de bir çalışma yapmıştım, eğer HTML ve tablolarla ilgileniyorsanız işinize yarayabilir.

Detaylar için;



Ekran görüntüsü de aşağıdadır;


Capture.PNG


.
 
Son düzenleme:
Geri
Üst