maıl gonder kod revıze

Katılım
17 Nisan 2013
Mesajlar
101
Excel Vers. ve Dili
2007 Microsoft Office Türkçe
asagıdakı kodlarla excel2007 de secılı hucrelerı OUTLOOK ıle maıl gonderebılıyorum.
sımdı excel 2013 ev ve ıs kullanıyorum ondada outlook yok . mecburen wındows lıve maıl kullanıyorum. asagıdakı kodları lıve maıle gore revıze edebılırmıyız yada baska bır kod onerebılırmısınız
cok tesekkur ederım :)

Sub Belirlenen_Hucre_Araligini_Mesaj_Gövdesine_Gonder()
Dim Cevap As String
Dim Notum As String
'Mesajiniz
Notum = "BİR (1) DEN FAZLA HÜCRE SEÇİMİ YAPMALISINIZ ? " & vbCrLf & "EĞER BİRDEN FAZLA HÜCRE SEÇİMİ YAPTIYSANIZ ' EVET ' TUŞUNA BASINIZ" & vbCrLf & "YAPMADIYSANIZ ' HAYIR ' TUŞU İLE ÇIKIŞ YAPINIZ. ! "
'Mesaj kutusu
Cevap = MsgBox(Notum, vbQuestion + vbYesNo, "ÖNEMLİ")
If Cevap = vbNo Then
'Hayir Secilir Ise
MsgBox "ÇIKIŞ YAPTINIZ!", vbInformation, "BİLGİ"
Else
'evet secilir Ise
MsgBox "MAİL SAYFASINA YÖNLENDİRİLECEKSİNİZ!", vbInformation, "BİLGİ"

'Office 2000-2010 sürümlerinde çalışır
ActiveSheet.Unprotect "aaa"
Dim rng As Range
Dim OutApp As Object
Dim OutMail As Object
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set rng = Nothing
On Error Resume Next
Set rng = Selection.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "The selection is not a range or the sheet is protected" & _
vbNewLine & "please correct and try again.", vbOKOnly
Exit Sub
End If
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ""
.CC = ""
.BCC = ""
.Subject = ""
.HTMLBody = RangetoHTML(rng)
.Display 'göndermek için .Send
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
ActiveSheet.Protect "aaa"
End If
End Sub


fonksıyonmodülü

Option Explicit

Function RangetoHTML(rng As Range)

'Office 2000-2010 sürümlerinde çalışır
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "\" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

' Kopya aralığı ve geçmiş verileri yeni bir çalışma kitabı oluşturamazsınız
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With

'Sayfayı htm dosyası olarak yayınla
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With

'RangetoHTML içine htm dosyası olan tüm verileri oku
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.readall
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")

'TempWB'yi kapat
TempWB.Close savechanges:=False

'htm dosyası olan bu fonksiyonu sil
Kill TempFile

Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,892
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Bu kodlar yabancı site kaynaklı ve bildiğim kadarıyla windows live için böyle bir çalışma yok.
Olsa da bu kodlama kadar verimli olmayacaktır.

Çözüm Office sürümünüzü güncellemek gibi görünüyor.

. . .
 
Üst