- Katılım
- 12 Nisan 2010
- Mesajlar
- 74
- Excel Vers. ve Dili
- 2003 türkçe
EXCELLDE İŞLEM BİTİP KAYDEDEREK ÇIKTIĞIMDA BELİRTTİĞİM GMAİL ADRESİNE MAİL ATABİLİRMİ?
volki27@gmail.com
volki27@gmail.com
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Private Sub Workbook_BeforeClose(Cancel As Boolean)
[COLOR=red]Application.OnKey "^p", "" [/COLOR][COLOR=teal]' sayfadaki sizin kod
[/COLOR] Dim Out As Object
Dim Mail As Object
Set Out = CreateObject("Outlook.Application")
Out.Session.Logon
Set Mail = Out.CreateItem(0)
On Error Resume Next
With Mail
.To = "[EMAIL="volki27@gmail.com"]volki27@gmail.com[/EMAIL]"
.CC = ""
.BCC = ""
.Subject = "deneme"
.Body
.Attachments.Add ActiveWorkbook.FullName
.Display
.Send
End With
On Error GoTo 0
Set Mail = Nothing
Set Out = Nothing
End Sub
örnek bi dosya atarmısınız kod ekleyemiyorum ben
ömer bey
tüm çalışma kitabını değil de çalıştığımız kitabın dilediğimiz bir sayfasını buton yardımıyla göndermek için bu kod da ne gibi değişiklik yapmamız gerekecek.
mesela sayfa1 de çalışırken sayfa2 yi gönder butonuna tıkladığımızda sadece sayfa2 yi gönderebilirmiyiz
Option Explicit
Sub SayfayıMail()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
[COLOR=red]Sheets("Sayfa2").Select[/COLOR][COLOR=darkgreen] ' Farklı bir sayfa gönderecekseniz buradaki sayfa ismini değiştirirsiniz. Eğer aktiv sayfayı gönderecekseniz kırmızı satırı silin.[/COLOR]
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set Sourcewb = ActiveWorkbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook
With Destwb
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
If Sourcewb.Name = .Name Then
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
MsgBox "Your answer is NO in the security dialog"
Exit Sub
Else
Select Case Sourcewb.FileFormat
Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If .HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56: FileExtStr = ".xls": FileFormatNum = 56
Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
End If
End With
TempFilePath = Environ$("temp") & "\"
TempFileName = Sourcewb.Name
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With Destwb
.SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum
On Error Resume Next
With OutMail
.To = "[EMAIL="deneme@deneme.com.tr"][COLOR=darkred]deneme@deneme.com.tr[/COLOR][/EMAIL]"
.CC = ""
.BCC = ""
.Subject = "[COLOR=darkred]deneme[/COLOR]"
.Body = "[COLOR=darkred]Merhaba[/COLOR]"
.Attachments.Add Destwb.FullName
.Display
[COLOR=darkgreen]'.Send[/COLOR]
End With
On Error GoTo 0
.Close SaveChanges:=False
End With
Kill TempFilePath & TempFileName & FileExtStr
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
Buton ekleyerek mail gönderirken, göndereceği mail adresini A1 hücresinden alması için kodlarda nasıl bir değişiklik yapmalıyız.
Aynı çalışma kitabındaki verileri farklı verilerle birleştirip farklı raporlar oluşturdum. aynı kodu çoğaltarak farklı butonlar araclığıyla ilgililere gönderiyorum işim çok hafifledi. bu yüzden çok teşekkür ediyorum.
Ancak görsel olarak ana veri sayfamda gönder butonlarının sayısı bayağı arttı. Göndereceğimiz bu rapor sayfaların adını açılır kutudan seçerek, 1- (Gönder), 2-(Yazdır) olmak üzere iki buton yardımıyla seçilen sayfayı gönderme veya yazdırma gibi bir işlem yapabilirmiyiz?
Kodlar üzerinde nasıl bir değişiklik yapmamız lazım?
Hüseyin bey,
Koddaki,
.To = "deneme@deneme.com.tr"
satırı
.To = [A1]
bu şekilde değiştirmeniz gerekir.
.
Aynı çalışma kitabındaki verileri farklı verilerle birleştirip farklı raporlar oluşturdum. aynı kodu çoğaltarak farklı butonlar araclığıyla ilgililere gönderiyorum işim çok hafifledi. bu yüzden çok teşekkür ediyorum.
Ancak görsel olarak ana veri sayfamda gönder butonlarının sayısı bayağı arttı. Göndereceğimiz bu rapor sayfaların adını açılır kutudan seçerek, 1- (Gönder), 2-(Yazdır) olmak üzere iki buton yardımıyla seçilen sayfayı gönderme veya yazdırma gibi bir işlem yapabilirmiyiz?
Kodlar üzerinde nasıl bir değişiklik yapmamız lazım?
Sayın iscinar,
İstediğiniz gibi bir çalışmayı akşam evden düzenleyip buraya eklerim..
.
Private Sub UserForm_Initialize()
Dim Sayfa As Worksheet
For Each Sayfa In Worksheets
If Sayfa.Name <> "AnaSayfa" Then
Me.ComboBox1.AddItem Sayfa.Name
End If
Next Sayfa
End Sub