• DİKKAT

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

Işlem kaydedip çıkınca mail atmak

Merhaba,

ThisWorbook sayfasına;

Kod:
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
Kodlar alıntıdır..

.
 
ö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
 
örnek bi dosya atarmısınız kod ekleyemiyorum ben

Eklediğiniz dosyada ThisWorbook sayfasındaki,

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "^p", ""
End Sub

kodu silerek bu bölüme yukarda verdiğim kodları kopyalayıp yapıştırın. Bunun dışında birşey yapmanız gerekmiyor. Çalışma kitabını kapatırken kodlar çalışır dosyanız mail olarak gönderime hazır olur.

-----------------------------------------------------------------------------------------

ö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

Kod:
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

Kodlar alıntıdır..

.
 
Teşekkür

Yardımınız için teşekkürler.
sayenizde adım adım daha iyiye yol aldığımı hissediyorum. bu site sayesinde excel i daha fazla sevmeye başladım.
 
Gönderilecek sayfayı açılır kutudan seçmek

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?
 
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.
 
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.

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..

.
 
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?

Eki inceleyiniz..

.
 

Ekli dosyalar

Sayın iscinar,

İstediğiniz gibi bir çalışmayı akşam evden düzenleyip buraya eklerim..

.

İlginizi için teşekkürler cevap beklerken bende ekteki gönderdiğim gibi bir çalışma içine girdim ancak kod olayı beni bitiriyor.

Tasarladıklarım makul işlermidir bilmiyorum. Ek dosyada sadece userformun kodlarını ve aktarma işini halletsek rapor sayfalarının formül ve tasarımlarını halen çalıştığım belgeden aktaracağım.
 

Ekli dosyalar

teşekkür

Ömer bey
son gönderdiğiniz mesajı görmeden evde bakarım mesajınıza istinaden mesaj yazdım.
Aklın yolu birdir derler meğer aynı çözümde buluşmuşuz.
Çalışmanız için teşekkürler.
 
Denemenizdeki kodları Çalışma Kitabıma aktardım fakat açılır kutudan sayfalarımı gösteremedim.

Sonradan UserForm'u Export - İmport yöntemiyle kendi çalışma kitabıma adapte ettim şu an istediğim gibi oldu.

Ama merak işte öğrenmek için soruyorum açılır kutunun alacağı kaynak veriyi nasıl gösteriyoruz onu çözemedim.
 
Kod:
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

Kısaca açıklamaya çalışayım.

Userform da, Initialize ile form ekranda görünmeden önceki işlemi başlatır.

Daha sonra,

For Each Sayfa In Worksheets

bu kod ile çalışma sayfalarında döngü kurulur, kurulan bu döngüden sonra if şartı ile sayfa adı "AnaSayfa" hariç tüm sayfaları Sayfa.Name ile combobox1 e alırız. Alınırken ise AddItem komutu kullanılır. Bu komut comboboxa veri almak içindir..

.
 
Teşekkür ediyorum

Şu internet olmasaydı acaba halimiz ne olurdu?

Ömer bey bodrumdan kalkacak İstanbulda bana excel öğretecek :)

şu excel ile ilk tanıştığım günü hatırlıyorum da elimizin altındaki deryadan haberimiz yokmuş. İş hayatımda iki önemli dönüm noktası var. Birincisi bilgisayarla tanıştığım gün belediye çöpçülüğünden bilgi işlemciliğe getirdi
ikincisi excel.web.tr ile tanıştığım gün onun nereye götüreceğini hayal edemiyorum.
 
Geri
Üst