• DİKKAT

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

outlooktan bilgi alma

Katılım
15 Ağustos 2006
Mesajlar
33
Excel Vers. ve Dili
2002 ingilizce
Merhaba arkadaslar,

Excel sayfama outlooktaki bir mailin body kismini nasil cekebilirim. Mail txt formatinda. Mümkün mü böyle birsey?

Maili sabit diske txt dosyasi olarak kaydetmek ve sonra da excele import etmek bir cözüm, ama binlerce mail var. Tek tek diske aktarmak olanaksiz. Bir fikri olan vardir umarim.

Kisacasi ya excel direk outlooktan maillerin bodylerini cekmeli ya da mailleri önce harddiske kaydetmenin yolunu bulmaliyim, ya da baska bir fikir..

Kolay gelsin
 
Merhaba;

MS Outlook kullanıyorsanız, aşağıdaki kod, sizin Inbox-Gelen Kutusu içinde, Subject - Konu kısmında test yazan tüm mesajların gövdesini yani, içeriğini aktif Excel sayfasına işler.

Herhangibir referans eklenmesine gerek yoktur.

Kod:
Sub Test()
    '
    ' Raider ® - 22/09/2006
    '
    Dim OutApp As Object, OutFolder As Object
    Dim MyMail As Object, MailItems As Object
    Dim i As Long, j As Long
    
    Cells.ClearContents
    Set OutApp = CreateObject("Outlook.Application")
    Set OutFolder = OutApp.GetNamespace("MAPI").GetDefaultFolder(6)
    Set MailItems = OutFolder.Items
    
    For Each MyMail In MailItems
        If LCase(MyMail.Subject) = "test" Then
            i = i + 1
            For j = 1 To Len(MyMail.body)
                If Mid(MyMail.body, j, 1) = Chr(10) Then
                    i = i + 1
                Else
                    Cells(i, 1) = Cells(i, 1) + Mid(MyMail.body, j, 1)
                    Cells(i, 1) = Replace(Cells(i, 1), Chr(13), Empty)
                End If
            Next
        End If
    Next
    MsgBox "Konusu - (Subject) ''test'' olan tüm e-maillerin içeriği sayfaya işlendi"
End Sub
 
Sn Haluk;

Bu kodlar excel ortamında çalıştırıldığında her karakterde;
---------------------------------------------------------------------
"Bu proğram Outlook' ta depoladığınız e-posta adreslerine ulaşmaya çalışıyor.
......................
...........................Virüs olabilir................
....................."
---------------------------------------------------------------------

diye Uyarı mesajı veriyor.


Kodları Outlook ortamında yazarak;

ilgili konuda e-mail geldiğinde; Otomatik olarak belirlenen bir kapalı excel dosyasına yazdırılması sağlanabilir mi?

İyi Çalışmalar dilerim...
 
Merhaba,

Bahsettiğiniz uyarı mesajı, kullandığınız antivürüs yazılımından kaynaklanıyor herhalde. Bence, antivürüs programınızın ayarlarını gözden geçirin...
 
Sn Haluk İlginize teşekkürler,

2. olarak sorduğum;

Kodları Outlook ortamında yazarak;

ilgili konuda e-mail geldiğinde; Otomatik olarak belirlenen bir kapalı excel dosyasına yazdırılması sağlanabilir mi?

bu öğrenmek istemiştim.


bu hususta yardımcı olabilirmisiniz.

Teşekkürler, İyi Çalışmalar ...
 
Haluk Bey,

Makronuz kusursuz calisiyor, cok tesekkürler.

Fakat excelin bir maili indirmesi 1 dakika sürüyor. Benim maillerim ise binden fazla. Bu süreyi kisaltmanin bir yolu var mi acaba.

Aksamdan yüklemeye baslayip sabaha kadar acik birakmak istedim, ama outlookta tamer42'nin dedigi gibi bir uyari mesaji cikiyor ve excelin outlooktan veri cekmesine en fazla 10 dakika izin verebiliyorum. Her 10 dakkikada bir, yani her 10 mailde bir uyari mesaji cikiyor.

Ne yapabilirim? Islemi hizlandirabilir miyim, veya outlook mesajini kaldirabilir miyim?
 
Ne yapabilirim? Islemi hizlandirabilir miyim, veya outlook mesajini kaldirabilir miyim?


Hızlandırmak için, her mail'in içeriği tek bir hücreye yazdırılabilir.

Bahsettiğiniz mesaj, Antivirüs programından kaynaklanıyorsa .... kodu çalıştırırken Antivirüs programınızı geçici olarak devre dışı bırakın.

Kod:
Sub Test()
    '
    ' Raider ® - 26/09/2006
    '
    Dim OutApp As Object, OutFolder As Object
    Dim MyMail As Object, MailItems As Object
    Dim i As Long, j As Long
    Dim Temp As Variant
    
    Cells.ClearContents
    Set OutApp = CreateObject("Outlook.Application")
    Set OutFolder = OutApp.GetNamespace("MAPI").GetDefaultFolder(6)
    Set MailItems = OutFolder.Items
    
    For Each MyMail In MailItems
        If LCase(MyMail.Subject) = "test" Then
            i = i + 1
            Temp = MyMail.body
            Temp = Replace(Temp, Chr(13), Empty)
            Cells(i, 1) = Left(Temp, Len(Temp) - 1)
        End If
    Next
    MsgBox "Konusu - (Subject) ''test'' olan tüm e-maillerin içeriği sayfaya işlendi"
End Sub
 
Cok tesekkür ederim Haluk Bey,

Mesaj outlookun kendisinden geliyor. Antivirüs programi yüzünden degil sanirim.

Ama gerek de kalmadi zaten. Son yolladiginiz kod isi birkac saniyede bitiriyor.

Elinize saglik

Saygilarimla
Murat
 
selam

bunu excell formatında yüklemeniz mümkün mü incelesek :roll:
 
Merhaba;

aşağıdaki kodda bir alt satıra geçmek için Chr(10) kuralını işletiyoruz,

veriler sütun olarak yazılı olması durumunda bir sütundan diğerine geçmek için nasıl bir şart yazabiliriz.

TARİH SÜRÜCÜ HIZ ADRES
..... .....




Kod:
Sub Test()
    '
    '     
    '
                If Mid(MyMail.body, j, 1) = Chr(10) Then
                    i = i + 1

    '
    '     

 End Sub

iyi çalışmalalr.
 
"Mymail" değişkeni

Yukarıdaki kodlarda "Mymail" değişkenine atama yapılmamış, ve çalıştıramadım. Yardımcı olur musunuz, acaba hata bu yüzden mi?
 
Merhaba arkadaşlar, bu kodu belli mail adresleri için süzülmüş haliyle aktarmak mümkün mü acaba?
Excel satırlarına da 1.satıra ilgili mailadresi 2. satıra mesaj içeriğini(body) aktarmak istiyorum.
 
Geri
Üst