Excel VBA ile Mail Atmak

Поділитися
Вставка
  • Опубліковано 5 лют 2025
  • Excel ile mail atmak
    Excel ile mail göndermek
    Excel ile elektronik posta göndermek.
    Excel VBA ortamında aşağıdaki kod ile bir elektronik postayı göndermek mümkündür. Bilgisayarda Microsoft Outlook'un yüklü olması gerekir.
    Gerekli Referansların eklenmesi gerekir.
    Microsoft Office ya da Microsoft Outlook
    Kodlama işleminde önce nesneler tanımlanır.
    Ardından Outlook nesnesi metotları aracılığıyla gönderilecek mail adresine Outlook aracılığıyla mail gönderilir.
    Sub mail1()
    ' nesnelerin tanımlanması
    ' bu nesnelerin kullanılması için Referansların Microsoft Outlook ya da Office eklenmesi
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    On Error Resume Next
    With OutMail
    .To = "info@farukcubukcu.com"
    .CC = ""
    .BCC = ""
    .Subject = "deneme 2"
    .Body = "excel vba ile deneme 2"
    ' ayrıca path ile belirtilen diğer bir dosya
    ' .Attachments.Add ("D:\test.txt")
    ' .Attachments.Add Application.ActiveWorkbook.FullName
    .Send
    End With
    On Error GoTo 0
    Set OutMail = Nothing
    Set OutApp = Nothing

    End Sub
    Bir dosya eklemek için
    .Attachments.Add ("D:\test.txt")
    Kendi dosyasını atmak için:
    .Attachments.Add Application.ActiveWorkbook.FullName
    Bir alanı göndermek için bir Range nesnesi tanımlanır ve HTMLBody özelliği aracılığıyla veri alanı HTML'e çevrilir. Bunu yapmak için verilerin geçici bir dosya üzerinden HTML sayfaya çevrilmesi gerekmektedir.
    Bunu internet üzerinde bulduğum kodlardan kullandım.
    .HTMLBody = RangetoHTML(Rng)
    RangetoHTML fonksiyonunu Sub'ın altına eklemek gerekir.
    NOT: RangetoHTML fonksiyonun kodu Internet üzerinde Ron de Bruin sitesinde ve diğer kaynaklardan bulunabilir.
    Faruk Çubukçu - Bilgi Teknolojileri Danışmanlık
    www.farukcubukcu.com www.excelakademi.com

КОМЕНТАРІ • 46

  • @atillabayram7049
    @atillabayram7049 2 роки тому

    harikasınız hocam

  • @SaimAktas
    @SaimAktas 3 роки тому

    Hocam elinize sağlık faydalı bir video, mause altındaki sarı noktayı ya küçültelim yada kaldıralım görmemize engel oluyor. teşekkür ederim.

  • @asknazimoglu7026
    @asknazimoglu7026 2 роки тому

    mükemmel

  • @hakineki3103
    @hakineki3103 4 місяці тому

    önem düzeyleri ve okundu, iletildi bilgilerini de ayarlayabiliyor muyuz?

    • @farukcubukcu
      @farukcubukcu  4 місяці тому

      merhaba,
      Importance özelliği ile olabilir diye biliyorum ama denemedim.
      With OutMail
      .To =
      .Subject = "konu"
      .Importance = 2
      .Send
      End With
      Okundu bilgisi Outlook ayarlardan yapılabilir sadece diye düşünüyorum.

  • @huseyini5285
    @huseyini5285 Рік тому

    Merhaba, tablodaki belli bir alanı mail gönderirken kod kısmına yazmadan seçili olan kısmı, kenarlıkları ile beraber göndermemiz mümkün mü?

    • @farukcubukcu
      @farukcubukcu  Рік тому +1

      Merhaba, videoda alan gönderme butonu alanı kenarlıklarıyla gönderiyor.
      O HTML dönüştürme kodunu ekleyip deneyebilirsiniz.

    • @huseyini5285
      @huseyini5285 Рік тому

      @@farukcubukcu RangetoHTML fonksiyonunu bulup denediğimde sürekli "Compile Error: ByRef argument type mismatch" hatası alıyorum. Excel 2016 kullanıyorum, sürüm desteklememe gibi bir durum olabilir mi? Kod bloklarında değişiklik yapmadan kullanmaya çalıştım.

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba, 2016 da sorun olacak bir durum yok.
      Mutlaka bir yazım hatası vardır. Ya da çağırma işlemi.
      bana mail atın, benim dosyanı size göndereyim.
      faruk@farukcubukcu.com

  • @ergnkry
    @ergnkry 8 місяців тому

    Hocam video için çok teşekkürler. Excel dosyamızı açmadan otomatik olarak belirli bir tarihe göre hatırlatıcı olması adına mail göndermesi yapılabilir mi? (Örneğin; Excel dosyasını açmadan bugün formülü kullanılarak termin tarihine 3 gün kaldığında makroyu çalıştır ve mail gönder gibi.)

    • @farukcubukcu
      @farukcubukcu  8 місяців тому

      mERHABA,
      SONUÇTA BU İŞLEMİ YÖNETECEK BİR KODLAMA GEREKİR.
      Bir dosya içerisinde Application.Ontime metodu ile bir zamanlama ile gün kontrol edilir ve istenen işlemler yapılabilir. Uygulama açılır ama görünmeden arka planda çalışabilir.
      Bunları tabi VBA denetimi gerektirir.
      ua-cam.com/video/yF9Z2a0oWwg/v-deo.html
      Vba:
      ua-cam.com/play/PL3dc_-B83C8B1Dn8mAdLByM8whbXKbaob.html
      vba eğitim:
      ua-cam.com/play/PL3dc_-B83C8Dr4YobYrfaQ0b6Tz6SQ4dt.html
      VBA KİTAP
      ua-cam.com/play/PL3dc_-B83C8Ar8yY_gQhYS3v5krI8lZ1E.html

    • @ergnkry
      @ergnkry 8 місяців тому

      @@farukcubukcu hocam çok teşekkür ederim ilginize, saygılar

  • @sefaoguz9370
    @sefaoguz9370 2 роки тому +1

    .HTMLBody = RangetoHTML(Rng) sarı yanıyor. Nasıl düzeltebilirim

    • @farukcubukcu
      @farukcubukcu  2 роки тому +1

      Merhaba, bu fonksiyon hazır bir çözüm biliyorsunuz. Onu kullanıyoruz.
      NOrmalde modülün en altına eklenen bir fonksiyon.
      farklı kaynaklar da bulup deneyin.
      Bir de koddaki hataları bulmak için biliyorsunuz
      Debug işlemi yapmak gerekir. F8 ile kodu adım adım işletin.

  • @erdogankarakullukcu2266
    @erdogankarakullukcu2266 Рік тому

    sayın hocam excelden pdf e çevirdiğim bir dosyayı gönder butonu ile hızlıca gönderebiliyormuyum.

  • @seham061
    @seham061 3 роки тому

    hocam anlatımınız için teşekkür ederim. tek sayfada farklı hüsreleri nasıl seçebilirim. örneğin a6:x6 hücreleri ile a14:x14 hücreleri gibi

    • @farukcubukcu
      @farukcubukcu  3 роки тому

      faruk@farukcubukcu.com mail adresim. Sormak istediklerinizi varsa az bir veri dosyası ve detaylı anlatımla gönderin. Zamanım ölçüsünde bakarım.

  • @xeart
    @xeart 2 роки тому

    teşekkürler faruk bey,
    cc kısmına mail atacak hesabın adresini otomatik olarak nasıl ekleyebiliriz?

    • @farukcubukcu
      @farukcubukcu  2 роки тому +2

      Merhaba,
      Sabit bir hücreden alınacaksa
      .CC =Range("a1").Value

  • @muratgunay48
    @muratgunay48 Рік тому

    Hocam outlook'a köprü olarak formül yazabilir miyiz? Mesela en basiti =BUGÜN() gibi. Ya da bir excel dosyasının hücresini bağlayabilir miyiz?
    Teşekkür ederim.

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba, bilemiyorum ama outlook'ta bir mail faklı kaydet ile msg dosyası olarak kaydedilirse ona link verilebilir.

  • @Busra.Demirel
    @Busra.Demirel 2 роки тому

    merhaba,
    ben excel sayfasında bulunan her kişiye aynı mesajı ayrı maillerde göndermek istiyorum nasıl yapabilirim.

    • @farukcubukcu
      @farukcubukcu  2 роки тому

      Merhaba, videoda bir kişiye atılıyor. Kodu bir blok gibi düşünüp döngü yapısı oluşturup ( for next ) sayfadaki hücrelerden alarak yapmak gerekir.
      Çok sayıda kişiye topluca mail atmak ya da izinsiz mail atmak sorun olur onu affınıza sığınarak hatırlatmak isterim.

  • @sukrucankaya8875
    @sukrucankaya8875 2 роки тому

    Hocam merhaba, tek mail ile 100 alıcıya excel göndermek istiyoruz diyelim ancak her alıcının sadece kendisi ile ilgili kısmı görmesini nasıl sağlayabiliriz ?
    Örneğin 10 farklı birimde 10'ar kullanıcı var ve 100 kişiyi bu exceli attığımızda excele giren kullanıcının kendi birimi dışında bir alan görmemesini istiyoruz?

    • @farukcubukcu
      @farukcubukcu  2 роки тому

      Merhaba, burada belirtilen bir içeriği sayfadaki bir alanı istenilen bir kişiye gönderme var.
      ayrı ayrı sayfa ya da alanlarda yazılı olanları yine bir grup kodu ile ayrılmış alıcı gruplarına gönderilebilir. Bir döngü içerisinde mail atılacak ve IF yapısı ile belirtilen bir gruba ve grup için belirtilen alanı.

  • @GIYIM38
    @GIYIM38 Рік тому

    merhaba hocam bi program geliştirmem gerekiyor örneğin 10 müşterim var AdSoyad,Mail,Sipariş No ve her kullanıcı için özel oluşturulmuş PDF dosyasını eklemek istiyorum mümkün müdür? örneğin her bir kullanıcıya ismi otomatik değişecek şekilde , "Merhaba Ahmet Yılmaz, İlgili pdf dosyanız aşağıdadır." gibi bi mail atmak istiyorum, sonrasında otomatık olarak yine "merhaba mehmet aslan, ilgili pdf dosyanız aşağıdadır." diyip isimleri ve yollanacak pdf dosyalarını değişecek şekilde oluşturmam lazım mümkün müdür?

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba,
      bu dediğiniz biraz mail merge işlemine benziyor.
      ua-cam.com/video/HetiyR3kpao/v-deo.html

    • @GIYIM38
      @GIYIM38 Рік тому

      @@farukcubukcu henüz çok yeniyim excel'e bana bu projemi yaparken yardımcı olma şansınız var mıdır hocam?

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba, şu anda online ders arasındayım. Baktım mesajınıza yanıtladım. Pek zamanım yok. Ama bu gönderdiğim linkteki gibi Word ortamında yazılan bir metni Excel'den adresleri alarak gönderebilirsiniz. Bu arada PDF yapamaz, onun için başka araçlar var sanıyorum. Biraz araştırmak gerekir.

    • @GIYIM38
      @GIYIM38 Рік тому

      @@farukcubukcu hocam pdf yapmaktan ziyade mesaja ek alta bi pdf koyup yollayamaz mıyız? belge şeklinde bi pdf yollamam gerekiyor :(

    • @farukcubukcu
      @farukcubukcu  Рік тому

      VBA ile yapılır sorun yok. Ben normal Excel'de mail merge ile olmaz dedim.
      Attach olarak istediğiniz dosyayı ekleyebilirsiniz. Bu videoda var.
      Ama onları her bir müşteri için oluşturmak nasıl olacak?

  • @cengiztolu8451
    @cengiztolu8451 2 роки тому

    Merhaba Hocam;
    Mailin altına jpg olarak imza nasıl ekleyebilirim

    • @farukcubukcu
      @farukcubukcu  2 роки тому

      Merhaba, yapmadım ama olabilir sanıyorum.
      Videoda anlatıldığı gibi veri alanı bir HTML sayfa yapılıp maile ekleniyor.
      Aynı şekilde bir klasörde duran jpg dosyası da bir html dosya içerisinde maile eklenebilir ya da Outllok programının imza klasöründe yer alan imza dosyası HTML formatında mail içerisine alınabilir.

    • @cengiztolu8451
      @cengiztolu8451 2 роки тому

      @@farukcubukcu Çok teşekür ederim Hocam;
      Bir de belirtilen zaman diliminde otomatik olarak yani ileri tarihli olarak gönderebiliyor muyuz ?

  • @gizlistoper
    @gizlistoper 3 роки тому

    Faruk Bey anlatımınız için teşekkürler.
    benim istediğim, sayfada yer alan *Değişken Bir Alanı* ve *Hücrede Belirtilmiş Değişken Konuyu* mail gövdesinde hazırlamak
    ve GÖNDER butonuna benim basmamla gitmesini sağlamak.
    bunu yapmam mümkün mü?

    • @farukcubukcu
      @farukcubukcu  3 роки тому

      konu olan yere ilgili sayfadan veri atanabilir:
      strSubject = sheets("örnek").Range("a1").value

    • @denizschecter
      @denizschecter 2 роки тому

      @@farukcubukcu Arkadaş onu sormamış hocam. Send komutunu devre dışı bırakalım. Outlook ekranı tüm diğer özellikleriyle makro çalıştıktan sonra karşımıza gelsin ve biz send e basarak gönderelim diyor. Ben de aynı konuyu henüz bulamadım. Yardımcı olursanız sevinirim.

    • @farukcubukcu
      @farukcubukcu  2 роки тому

      Merhaba, Application.ItemSend event (Outlook) ile olabilir bakmak gerekir. Bir event oluşturarak. En kısa zamanda bakmaya çalışırım.

  • @kemalylmaz361
    @kemalylmaz361 Рік тому

    Hocam merhaba
    Makro ile mail gönderirken alt alta yazmayı nasıl yapacağız yani şu şekilde;
    Merhaba.
    (Dosya)
    İyi günler.
    Şeklinde hocam

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba, konu kısmına (subject) mesaj yazıp dosyayı ekleyerek göndermek ise istediğiniz zaten o şekilde yapılıyor.

    • @kemalylmaz361
      @kemalylmaz361 Рік тому

      Yani hocam yazıyı alt satırdan devam ettirmek istiyorum

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba, bir de adres mektup birleştirme (mail merge) konusu var.
      istediğinizi bu şekilde yapılabilir mi
      Word'de adres mektup birleştirme (posta gönderileri) seçip E-posta iletileri seçilebilir.
      ua-cam.com/video/zE5JkZqH1ug/v-deo.html

    • @kemalylmaz361
      @kemalylmaz361 Рік тому

      Hocam bana bir mail adresi verirseniz sorumu daha net şekilde anlatabilirim. Teşekkürler

    • @farukcubukcu
      @farukcubukcu  Рік тому

      Merhaba, evet lütfen.
      faruk@farukcubukcu.com
      Konu, bir excel tablosundaki çok sayıda mail adresine bir dosyayı eklenti olarak ekleyip atmak mı?
      ya da detaylı bir şekilde anlatıp, adım adım yapmak istediğinizi anlatırsanız. Hangi veriler kullanılacak, vs açıklarsanız iyi olur.
      .