- Katılım
- 24 Temmuz 2007
- Mesajlar
- 726
- Excel Vers. ve Dili
- Excel 2010 tr
Arkadaşlar selam;
Excel 2003'te aşağıdaki gibi bir sub ile sorunsuz mail atabiliyordum,
Excel 2010 kullanmaya başlayınca, mailin karşı taraftada sorunsuz açılması için mail atılacak dosyayı 2003 formatında kaydettirip oyle göndermek için kırmızı satırları ekledim,
Fakat bole olunca da doğal olarak
Kill Hangi_Dosya
satırında Permission Denied hatası vermeye başladı,
bu durumdan nasıl kurtulabiliriz
.SaveCopyAs baktım onunda hiçbir parametresi yok
Sub Send_Mail(ByVal Alici As String, ByVal Hangi_Dosya As String, ByVal Baslik As String, _
ByVal Govde As String, Optional ByVal Hedef_Dosya As String)
Dim OutApp
Dim NewMail
Dim Modx
Dim VBComp
Dim i As Integer
Dim Sayfa_Sayisi As Byte
Dim TempFilePath As String
Dim ForMat As Integer
If [IV1] <> "" Then 'IV hücresi doluysa mail atma, deneme yapılacak demektir
Exit Sub
End If
If Hedef_Dosya = "" Then
Hedef_Dosya = Hangi_Dosya 'Hedef dosya adı verilmediyse kaynak dosya ismiyle kaydet
End If
TempFilePath = Environ$("temp") & "\" 'Temp klasörünün yolunu al
Hangi_Dosya = TempFilePath & Hedef_Dosya 'Dosyanın bir kopyasını al, dosya açıkken mail gönderilemiyor
ActiveWorkbook.SaveCopyAs Hangi_Dosya 'Kopya dosyayı temp klasörüne kaydet
If Val(Application.Version) >= 12 Then 'Eğer excel 2007 veya sonrası bir versiyon kullanılıyorsa
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Hangi_Dosya, FileFormat:=-4143, CreateBackup:=False 'dosyayı excel 2003 uyumlu kaydet
Application.DisplayAlerts = True
End If
'Set OutApp = New Outlook.Application
Set NewMail = CreateItem(olMailItem)
With NewMail
.To = Alici
.Subject = Baslik
.Body = Govde
.Attachments.Add Hangi_Dosya
.Save
.Send
End With
Set NewMail = Nothing
Set OutApp = Nothing
Set VBComp = Nothing
Kill Hangi_Dosya
End Sub
Excel 2003'te aşağıdaki gibi bir sub ile sorunsuz mail atabiliyordum,
Excel 2010 kullanmaya başlayınca, mailin karşı taraftada sorunsuz açılması için mail atılacak dosyayı 2003 formatında kaydettirip oyle göndermek için kırmızı satırları ekledim,
Fakat bole olunca da doğal olarak
Kill Hangi_Dosya
satırında Permission Denied hatası vermeye başladı,
bu durumdan nasıl kurtulabiliriz
.SaveCopyAs baktım onunda hiçbir parametresi yok
Sub Send_Mail(ByVal Alici As String, ByVal Hangi_Dosya As String, ByVal Baslik As String, _
ByVal Govde As String, Optional ByVal Hedef_Dosya As String)
Dim OutApp
Dim NewMail
Dim Modx
Dim VBComp
Dim i As Integer
Dim Sayfa_Sayisi As Byte
Dim TempFilePath As String
Dim ForMat As Integer
If [IV1] <> "" Then 'IV hücresi doluysa mail atma, deneme yapılacak demektir
Exit Sub
End If
If Hedef_Dosya = "" Then
Hedef_Dosya = Hangi_Dosya 'Hedef dosya adı verilmediyse kaynak dosya ismiyle kaydet
End If
TempFilePath = Environ$("temp") & "\" 'Temp klasörünün yolunu al
Hangi_Dosya = TempFilePath & Hedef_Dosya 'Dosyanın bir kopyasını al, dosya açıkken mail gönderilemiyor
ActiveWorkbook.SaveCopyAs Hangi_Dosya 'Kopya dosyayı temp klasörüne kaydet
If Val(Application.Version) >= 12 Then 'Eğer excel 2007 veya sonrası bir versiyon kullanılıyorsa
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Hangi_Dosya, FileFormat:=-4143, CreateBackup:=False 'dosyayı excel 2003 uyumlu kaydet
Application.DisplayAlerts = True
End If
'Set OutApp = New Outlook.Application
Set NewMail = CreateItem(olMailItem)
With NewMail
.To = Alici
.Subject = Baslik
.Body = Govde
.Attachments.Add Hangi_Dosya
.Save
.Send
End With
Set NewMail = Nothing
Set OutApp = Nothing
Set VBComp = Nothing
Kill Hangi_Dosya
End Sub
