Outlook üzerinden mail gönderirken tablo ekleme hk.

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,061
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,
Aşağıdaki kod ile Excel' den Outlook ile veri göndermek isterken

mail gövdesine aşağıdaki metin standart (imza) olarak gelmektedir,
Ekli tabloyu Saygılarımızla yazısından' dan 1-2 satır öncesindeki aradaki boşluğa yapıştırmak istiyorum.

İyi günler,

Aşağıdaki malzemeler için stok durumu ve fiyat teklifinizi rica ederim.



Saygılarımızla,
diğer bir deyişle mail gövdesinde Saygılarımızla yazısını bulacak ve buradan bir yada 2 satır üstüne tabloyu yapıştıracak
bunun için kodu nasıl düzenlememiz gerekiyor?
Özetle ekli ekran görüntüsündeki şekle ulaşmak istiyorum.

yardımlarınız için şimdiden teşekkürler,
İyi hafta sonları..

Kod:
Set SH = Sayfa1
strBasla = "     " & vbNewLine

    With olEmail

        .BodyFormat = olFormatRichText
        .To = "mail123@gmail.com"
        .CC = ""
        .Subject = "Test"
        .Display
      
        Set olInsp = .GetInspector
        Set wdDoc = olInsp.WordEditor

        r = SH.UsedRange.Rows.Count + 2
        k = SH.UsedRange.Columns.Count

        SH.UsedRange.Resize(r, k).Copy
        wdDoc.Range(Len(strBasla), Len(strBasla)).Paste
        Application.CutCopyMode = False
  
    End With
 

Ekli dosyalar

Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba, imza bloğunuzu yeniden düzenleyerek bir alternatif şöyle olabilir:
İmza bloğundaki satır sonu karakterlerini paragraf karakteri ile değiştirirseniz,
Buradaki satırı >>>>wdDoc.Range(Len(strBasla), Len(strBasla)).Paste
Bunun gibi yapınca >>>>>wdDoc.Paragraphs(5).Range.Paste
"Saygılarımızla," satırının üstündeki satıra yapıştırıyor. Paragraphs(5) demek 5. paragraf demek. Sizin orjinal mailinizde farklı olabilir, paragraf işaretlerini sayarak bulursunuz.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,061
Excel Vers. ve Dili
Office 2013 İngilizce
Merhaba, imza bloğunuzu yeniden düzenleyerek bir alternatif şöyle olabilir:
İmza bloğundaki satır sonu karakterlerini paragraf karakteri ile değiştirirseniz,
Buradaki satırı >>>>wdDoc.Range(Len(strBasla), Len(strBasla)).Paste
Bunun gibi yapınca >>>>>wdDoc.Paragraphs(5).Range.Paste
"Saygılarımızla," satırının üstündeki satıra yapıştırıyor. Paragraphs(5) demek 5. paragraf demek. Sizin orjinal mailinizde farklı olabilir, paragraf işaretlerini sayarak bulursunuz.
Hocam teşekkür ederim,
mail gövdesinde Saygılarımızla ifadesini arayıp bularak; paragraf numarasını ona göre belirtmemiz mümkün müdür?
iyi geceler
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Kod:
prg = Split(wddoc.Range.Text, Chr(13))
For Each klm In prg
    If InStr(1, klm, "Saygılarımızla") > 0 Then
        say = say + 1
        wddoc.Paragraphs(say - 1).Range.Paste
        Exit For
    Else
        say = say + 1
    End If
Next
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,061
Excel Vers. ve Dili
Office 2013 İngilizce
Kod:
prg = Split(wddoc.Range.Text, Chr(13))
For Each klm In prg
    If InStr(1, klm, "Saygılarımızla") > 0 Then
        say = say + 1
        wddoc.Paragraphs(say - 1).Range.Paste
        Exit For
    Else
        say = say + 1
    End If
Next
Çok teşekkürler Hocam,
iyi ki varsınız

son olarak bir şey sormak istiyorum,
burada "Saygılarımızla" kelimesinin altına boş bir satır nasıl açabiliriz?
kosaca "Saygılarımızla" kelimesinden sonra bir "enter" yapacak.

iyi günler.
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Kod:
prg = Split(wddoc.Range.Text, Chr(13))
For Each klm In prg
    If InStr(1, klm, "Saygılarımızla") > 0 Then
        say = say + 1
        wddoc.Paragraphs(say - 1).Range.Paste
        wddoc.Range.InsertParagraphAfter
        Exit For
    Else
        say = say + 1
    End If
Next
Yeri gelmişken birkaç örnek verelim:
Bu satır mail gövdesinde en sona boş satır ekler. Yukarıdaki örnekte son satırda "Saygılarımızla" yazdığına göre bunun altına ekler.
wddoc.Range.InsertParagraphAfter

Bu satır paragraf numarası belirtilen (bu örnekte "say" değişkeninin aldığı değer) satırın altına boş satır ekler.
wddoc.Paragraphs(say).Range = wddoc.Paragraphs(say).Range & vbNewLine

Bu satır paragraf numarası belirtilen (bu örnekte "say" değişkeninin aldığı değer) satırın üstüne boş satır ekler.
wddoc.Paragraphs(say).Range = vbNewLine & wddoc.Paragraphs(say).Range
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,061
Excel Vers. ve Dili
Office 2013 İngilizce
Kod:
prg = Split(wddoc.Range.Text, Chr(13))
For Each klm In prg
    If InStr(1, klm, "Saygılarımızla") > 0 Then
        say = say + 1
        wddoc.Paragraphs(say - 1).Range.Paste
        wddoc.Range.InsertParagraphAfter
        Exit For
    Else
        say = say + 1
    End If
Next
Yeri gelmişken birkaç örnek verelim:
Bu satır mail gövdesinde en sona boş satır ekler. Yukarıdaki örnekte son satırda "Saygılarımızla" yazdığına göre bunun altına ekler.
wddoc.Range.InsertParagraphAfter

Bu satır paragraf numarası belirtilen (bu örnekte "say" değişkeninin aldığı değer) satırın altına boş satır ekler.
wddoc.Paragraphs(say).Range = wddoc.Paragraphs(say).Range & vbNewLine

Bu satır paragraf numarası belirtilen (bu örnekte "say" değişkeninin aldığı değer) satırın üstüne boş satır ekler.
wddoc.Paragraphs(say).Range = vbNewLine & wddoc.Paragraphs(say).Range
Teşekkürler Hocam,
iyi akşamlar
 
Katılım
20 Şubat 2007
Mesajlar
659
Excel Vers. ve Dili
2007 Excel, Word Tr
Rica ederim, sizlere de iyi akşamlar.
 
Üst