Araç Servis Takip Programı (AST-v.2) foruma eklenmiştir. 
http://www.excelce.net/forum/index.php?topic=1656.0

Gönderen Konu: Dış işlemler ile makro çalıştırmak  (Okunma sayısı 35390 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Dış işlemler ile makro çalıştırmak
« : 03 Ocak 2011, 09:13:14 »
Merhaba Arkadaşlar,

Excelde makroları buton, bazı işlemlem ve komutlar ile çalıştırabiliyoruz.

Ancak makroları çalıştırmak için diğer dış işlemleri araştırıyorum.
İlk olarak Mic. Outlooka gelen bir maille excel çalışmamızdaki makroyu çalıştıra bilmemiz mümkün mü?

Yardım ve fikirlerinizi bekliyorum.


Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #1 : 03 Ocak 2011, 09:52:01 »
Merhaba Hüseyin Bey.

MsOutlook'un ThisOutlookSession'una aşağıdaki kodları yazıp, yeni mail geldiğinde dilediğiniz Excel kitabını açtırabilirsiniz.

Kod: [Seç]
Private Sub Application_NewMail()
Dim OUT As NameSpace
Set OUT = Outlook.GetNamespace("MAPI")
Dim Gelenler As Outlook.MAPIFolder
Set Gelenler = OUT.GetDefaultFolder(olFolderInbox)
If Gelenler.Items(Gelenler.Items.Count).Subject = "Deneme" Then
    Set Excelce = Application.CreateObject("Excel.Application")
    Excelce.Visible = True
    Set Kitap = Excelce.Workbooks.Open("C:\Documents and Settings\bulent.ozturk\Desktop\Kitap1.xls")
    Excelce.Run "Kitap1.xls!Makro1"

    'Diğer işlemler...
    'Excel'i kapatmak isterseniz
    Excelce.Quit
   End If
End Sub
« Son Düzenleme: 03 Ocak 2011, 11:20:24 Gönderen: Bülent Öztürk »
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #2 : 03 Ocak 2011, 11:00:41 »
İlginiz ve paylaşımınız için teşekkürler Bülent Bey,

Kodları McOutlook' a uygulattım. İlk denemelerimde
Kod: [Seç]
If Gelenler.Items(Gelenler.Items.Count).Subject = "Deneme" Thensatırında hatalar vermişti.

Ancak şimdiki denemlerimde işlemi hiç çalıştırmıyor. Son denememde dosya yolunu değiştirmeden denedim çalışmadı, hatada vermedi.

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #3 : 03 Ocak 2011, 11:10:17 »
Hüseyin Bey,

Alıntı
If Gelenler.Items(Gelenler.Items.Count).Subject = "Deneme" Then

komut satırı ile Gelen Kutusu (Inbox)'nun son öğesini Gelenler.Items.Count ile bulup,
Gelenler.Items'in index'ine yazıp, Subject ile başlığına bakma şartını IF ile koyarak, başlığın Deneme olması halinde belirtilen kodların çalışmasını sağlıyoruz.

Yukarıdaki kodları Application_NewMail olayına yazdığımız için de her yeni mail geldiğinde Outlook'un kodları çalıştırmasını sağlamış olduk.

Kodları deneyip gönderdiğim için ben çalışmasında sorun yaşamadım.

Tekrar deneyip, hata verdiğinde resmini ekler misiniz?
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #4 : 03 Ocak 2011, 11:32:22 »
Bülent Bey, kodları ilk uyguladığımda hata uyarısı alıyordum, şimdi öyle bir hata uyarısıda vermiyor. Sanırım işlemi hiç tetiklemiyor.




Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #5 : 03 Ocak 2011, 11:39:07 »
Siz hangi şarta bağlı olarak kodun çalışmasını istiyorsunuz?

Outlook içinden kodu, F8 ile adım adım çalıştırıp deneyin...

Kod: [Seç]
Set Kitap = Excelce.Workbooks.Open("C:\Documents and Settings\bulent.ozturk\Desktop\Kitap1.xls")   
Excelce.Run "Kitap1.xls!Makro1"

Dosya adı, yolu ve makro adlarını uyarlamayı unutmayın.
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #6 : 03 Ocak 2011, 11:59:22 »
Bülent Bey,
Şartlara uygun en son gelen mail ile işlemi çalıştırmalı.
Kodları şu şekilde düzenleyerek uygulattım. Hataya gidince sarı ile belirttiğim satıra gidiyor.

Deneme başlıklı bir mail atıyorum, ekteki hatayı veriyor. Hatayı kapatıp Deneme1 başlıklı bir mail daha atıyorum, işlem çalışıyor.   :hımm

Alıntı
Private Sub Application_NewMail()
Dim OUT As NameSpace
Set OUT = Outlook.GetNamespace("MAPI")
Dim Gelenler As Outlook.MAPIFolder
Set Gelenler = OUT.GetDefaultFolder(olFolderInbox)
If Gelenler.Items(Gelenler.Items.Count).Subject = "Deneme" Then
    Set Excelce = Application.CreateObject("Excel.Application")
    Excelce.Visible = True
    Set Kitap = Excelce.Workbooks.Open("D:\Kitap1.xls")
    Excelce.Run "Kitap1.xls!Sayfa1.Makro1"

    'Diğer işlemler...
    'Excel'i kapatmak isterseniz
    Excelce.Quit
   End If
End Sub


« Son Düzenleme: 03 Ocak 2011, 12:11:28 Gönderen: Hüseyin Çoban »

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #7 : 03 Ocak 2011, 12:27:55 »
Gelen Kutusu içinde sadece 1 adet mail varken mi sorun oluyor?
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #8 : 03 Ocak 2011, 12:32:23 »
Deneme mailini alınca hata veriyor, hatayı kapatıyorum.
Deneme1 veya Deneme2 diye tekrar mail atınca işlemi çalıştırıyor.

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #9 : 03 Ocak 2011, 13:58:07 »
Şu şekilde dener misiniz?

Alıntı
Private Sub Application_NewMail()
Dim OUT As NameSpace
Set OUT = Outlook.GetNamespace("MAPI")
Dim Gelenler As Outlook.MAPIFolder
Set Gelenler = OUT.GetDefaultFolder(olFolderInbox)
On Error GoTo bir
If Gelenler.Items(Gelenler.Items.Count).Subject = "Deneme" Then
    Set Excelce = Application.CreateObject("Excel.Application")
    Excelce.Visible = True
    Set Kitap = Excelce.Workbooks.Open("C:\Documents and Settings\bulent.ozturk\Desktop\Kitap1.xls")
    Excelce.Run "Kitap1.xls!Makro1"
    'Excel'i kapatmak isterseniz
    Excelce.Quit
End If
Exit Sub
bir:
If Gelenler.Items(1).Subject = "Deneme" Then
    Set Excelce = Application.CreateObject("Excel.Application")
    Excelce.Visible = True
    Set Kitap = Excelce.Workbooks.Open("C:\Documents and Settings\bulent.ozturk\Desktop\Kitap1.xls")
    Excelce.Run "Kitap1.xls!Makro1"
    'Excel'i kapatmak isterseniz
    Excelce.Quit
End If
End Sub
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #10 : 03 Ocak 2011, 14:06:50 »
Bülent Bey, aynı hata kodunu verdi. Ancak yine arkasından Deneme1 diye mail atınca işlemi çalıştırdı.  :hımm

Alıntı
If Gelenler.Items(1).Subject = "Deneme" Then

satırında hata verdi.

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #11 : 03 Ocak 2011, 14:18:05 »
Bir de şöyle deneyelim:

Alıntı
Private Sub Application_NewMail()
Dim OUT As NameSpace
Set OUT = Outlook.GetNamespace("MAPI")
Dim Gelenler As Outlook.MAPIFolder
Set Gelenler = OUT.GetDefaultFolder(olFolderInbox)
On Error GoTo bir
If Gelenler.Items(Gelenler.Items.Count).Subject = "Deneme" Then
    Set Excelce = Application.CreateObject("Excel.Application")
    Excelce.Visible = True
    Set Kitap = Excelce.Workbooks.Open("C:\Documents and Settings\bulent.ozturk\Desktop\Kitap1.xls")
    Excelce.Run "Kitap1.xls!Makro1"
    'Excel'i kapatmak isterseniz
    Excelce.Quit
End If
Exit Sub
bir:
On Error Resume Next
If Gelenler.Items(1).Subject = "Deneme" Then
    Set Excelce = Application.CreateObject("Excel.Application")
    Excelce.Visible = True
    Set Kitap = Excelce.Workbooks.Open("C:\Documents and Settings\bulent.ozturk\Desktop\Kitap1.xls")
    Excelce.Run "Kitap1.xls!Makro1"
    'Excel'i kapatmak isterseniz
    Excelce.Quit
End If
End Sub

(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #12 : 03 Ocak 2011, 14:24:15 »
Bülent Bey, gene aynı işlemler ile çalışıyor.
Siz denediğinizde ilk deneme başlıklı mail ile işlemi çalıştırıyor mu ?

Çevrimdışı Bülent Öztürk

  • Excelce.Net Yönetici
  • *
  • İleti: 1413
  • Puan +19/-0
  • Cinsiyet: Bay
  • Türkçe Konuşup Excelce Yazıyoruz...
    • Bülent Öztürk
  • Ad Soyad: Bülent Öztürk
  • Doğum Yılınız: 1976
  • İl / İlçe: İstanbul / Çorlu
  • İşletim Sisteminiz: Win.10
  • Mesleğiniz: Bilgi Teknolojileri
  • Office Versiyonunuz: 2016
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #13 : 03 Ocak 2011, 15:12:19 »
Gelen kutusunda mail varken denedim, sorunsuz çalıştı.

Mailleri taşıyıp denedim, hata verdi.
Sonra diğer kodu yazınca hata vermedi.


Kodları Application_NewMailEx  olayına taşıyıp dener misiniz?
(Ücretli program talepleriniz için iletişime geçebilirsiniz, excelvbprogram@gmail.com)

Çevrimdışı Hüseyin Çoban

  • Excelce.Net Yönetici
  • *
  • İleti: 182
  • Puan +11/-0
  • Cinsiyet: Bay
  • Ad Soyad: Hüseyin Çoban
  • İl / İlçe: Denizli
  • İşletim Sisteminiz: Windows 7 - 64 bit
  • Mesleğiniz: Ü.Tğm.
  • Office Versiyonunuz: Office 2007 TR
Ynt: Dış işlemler ile makro çalıştırmak
« Yanıtla #14 : 03 Ocak 2011, 15:35:50 »
Bende de gelen kutusunda bir tane Deneme başlıklı mail olduktan sonra,
içerisinde Deneme geçen bir başlık yazıp gönderince çalıştırıyor işlemi.