Soru Outlook Saat Aralıklı Mail Araması Hk.

Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Merhaba,

Outlook üzerinde belirli tarihlerdeki belirli saatler arasında gelen mailleri aramak istiyorum. Ayarları kurcaladığımda bulamadım. Farklı bir yöntemi var mıdır diye sizlere de sormak istedim.

Örneğin; 01 - 31 Ocak 2022 tarihleri arasında 09:00 - 12:00 arasında Gelen/Giden mailler neler diye arama yapabilir miyim?

Tarihten bağımsız sadece ilgili saatler arasında Gelen/Giden maillerde olabilir.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba, Microsoft Office outlook'ta arama:

* Ctrl+Shift+F (gelişmiş arama kısayolu)
* Gelişmiş sekmesi
* Alan > Tarih/Saat alanları
* Alma tarihi > Koşul > Aralık
* Değer :
>01.01.2022 09:00 ve <31.01.2022 12:00
* Listeye ekle
* Şimdi bul
 
Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Necati bey,
Verdiğiniz bilgi çok faydalı. Ancak değer aralığı saat kısmına dikkat etmiyor.
01.01.2022 09:00'dan öncekileri ve 31.01.2022 12:00'den sonrakiler gelmiyor. Ama arasındaki tarihlerde yer alan tüm saat aralıklarındaki mailleri getiriyor.
Benim sadece o tarihler arasındaki 09:00 - 12:00 arasında gelen mailler örneği gibi sorgulamam gerekiyor.
 
Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Excelde formatları ayarlayıp tek tek gün gün gün de girebilirim. Ama toplu olarak arama ölçüt listesine bunu ekleyemem sanırım.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
2007 Ms outlookta sadece saat çalışmıyor. Diğer versiyonlarda nasıl, deneme imkanı olan arkadaşlar yazarlarsa memnun olurum.
Hem tarih hem de saat eklemeniz gerekir.
Ancak makro ile sadece istenilen saat aralığındaki maillerin filtrelendiği örnekler var. Makro konusuna yabancı değilseniz ekleyebilirim.
 
Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Temel düzeyde makro bilgim var. Outlok üzerinden hiç makrolu bir çalışma yapmadım. Yardımcı olabilirseniz gerçekten çok sevinirim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Outlook Gelen Kutusu Ana Penceresinde
Başlık satırında mouse Sağ Click
Görünüm Ayarları
Sütunlar
237366

Buradaki Alınam Saatini eklerseniz istediğiniz kısmen olur. Şöyleki mailler ancak bu sütunu aktif ettiğiniz saat itibariyle saat verileriyle beraber kaydedilecektir. Önceki mailler için bir işe yaramaz.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Bir modül ekleyin ve içine şunu yapıştırın.
Tarih ve saat aralığını düzenleyin. Mailler "Alma saati" isimli kategori olarak etiketlenecek.

Kod:
Public Sub FindMailbyTime()
'Klasördeki mailleri kategorili olarak işaretler
'Böylece istenilen filtreyi elde edersiniz.
    Dim objOL As Outlook.Application
    Dim objItems As Outlook.Items
    Dim objFolder As Outlook.MAPIFolder
    Dim obj As Object
 
    Set objOL = Outlook.Application
    Set objFolder = objOL.ActiveExplorer.CurrentFolder
    Set objItems = objFolder.Items
    
    For Each obj In objItems
    If obj.MessageClass = "IPM.Note" Then

'Önce buradaki tarihleri düzenleyin
    If obj.ReceivedTime >= DateValue("01.01.1999") And obj.ReceivedTime <= DateValue("30.10.1999") Then

'Önce buradaki saatleri düzenleyin
    If Hour(obj.ReceivedTime) >= "10" And Hour(obj.ReceivedTime) < 12 Then
    
     With obj
     .Categories = "Alma Saati"
     .Save
     End With
    
    End If
    End If
    End If
    
    Next
 
    Set obj = Nothing
    Set objItems = Nothing
    Set objFolder = Nothing
    Set objOL = Nothing
End Sub
* İşaretlenen kategori etiketlerini iptal etmek için:
* Ctrl+A
* sağ tık
* kategorilere ayır
* Tüm kategorileri temizle
 
Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Evet dediğiniz gibi oluyor. Maalesef işime yaramıyor ama.
Son 10 yılda çalışma saati dışında gelen mailleri bulmam lazım aslında. Hatta sadece haftasonuna gelen mailleri çıkabileceğim bir yöntem de olsa hiç fena olmaz :)
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Bir de şöyle dener misiniz. İki adet kodu da kopyalayın. Yıl aralığı makro içinde düzenlenecek. Saat aralığı "inputbox" dan girilecek.
Haftasonu kontrolü fonksiyon olarak eklendi.
Kod:
Public Sub KategoriHaftasonu()

'Klasördeki mailleri haftasonu kategorili olarak işaretler
'Böylece istenilen filtreyi elde edersiniz.

    Dim objOL As Outlook.Application
    Dim objItems As Outlook.Items
    Dim objFolder As Outlook.MAPIFolder
    Dim obj As Object
    Dim bas As Date, son As Date

    Set objOL = Outlook.Application
    Set objFolder = objOL.ActiveExplorer.CurrentFolder
    Set objItems = objFolder.Items

    bas = InputBox(vbCrLf & vbCrLf & "Şu saatten Önce", , "8")
    son = InputBox(vbCrLf & vbCrLf & "Şu saatten sonra", , "18")

    For Each obj In objItems
    If obj.MessageClass = "IPM.Note" Then
'Önce buradaki tarihleri düzenleyin
    If obj.ReceivedTime >= DateValue("01.01.2012") And obj.ReceivedTime <= DateValue("21.06.2022") Then

If IsWeekend(obj.ReceivedTime) Then
If Hour(obj.ReceivedTime) < bas Or Hour(obj.ReceivedTime) > son Then
    
     With obj
     .Categories = " Alma Saati"
     .Save
     End With
 
End If
End If
    End If
    End If

    Next
    Set obj = Nothing
    Set objItems = Nothing
    Set objFolder = Nothing
    Set objOL = Nothing

End Sub

Public Function IsWeekend(InputDate As Date) As Boolean
    Select Case Weekday(InputDate)
        Case vbSaturday, vbSunday
            IsWeekend = True
        Case Else
            IsWeekend = False
    End Select
End Function
 
Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Necati Bey,
Haftasonu kontrollü makroyu çalıştırabildim. Haftasonu için saatten bağımsız olduğu için 12 < 12 değerlerini girdiğimde tüm haftasonu olanları getirdi. Tam da istediğim sonucu aldım.

İlk gönderdiğiniz kod ile de sadece haftaiçi ve çalışma saati dışında olanlar için yani 17:00 - 07:00 arası gelen mailleri filtrelemek istedim. Ancak sadece 12:00 - 07:00 arası gelenleri işaretledi. Formülde mi bir şey var emin olamadım. Makro içeriğini aşağıda paylaşıyorum.



Bu arada aynı makrolar göndermiş mailler içinde çalışır mı yoksa formüldeki "ReceivedTime" olan alanları "SendTime" olarak mı değiştirmem gerekir.

Kod:
Public Sub FindMailbyTime()
'Klasördeki mailleri kategorili olarak işaretler
'Böylece istenilen filtreyi elde edersiniz.
    Dim objOL As Outlook.Application
    Dim objItems As Outlook.Items
    Dim objFolder As Outlook.MAPIFolder
    Dim obj As Object

    Set objOL = Outlook.Application
    Set objFolder = objOL.ActiveExplorer.CurrentFolder
    Set objItems = objFolder.Items
   
    For Each obj In objItems
    If obj.MessageClass = "IPM.Note" Then

'Önce buradaki tarihleri düzenleyin
    If obj.ReceivedTime >= DateValue("01.01.2000") And obj.ReceivedTime <= DateValue("01.01.2023") Then

'Önce buradaki saatleri düzenleyin
    If Hour(obj.ReceivedTime) >= "17" And Hour(obj.ReceivedTime) < 7 Then
   
     With obj
     .Categories = "Mesai Sonrası"
     .Save
     End With
   
    End If
    End If
    End If
   
    Next

    Set obj = Nothing
    Set objItems = Nothing
    Set objFolder = Nothing
    Set objOL = Nothing
End Sub
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Gönderme tarihi olarak "SentOn" komutu kullanılıyor. Ben yaptığım denemede "SentOn" kullanmaya gerek olmadığını gördüm. "ReceivedTime" ile hem alma tarihini, hem de gönderme tarihini veriyor.
Haftaiçi günleri için de son gönderdiğim kodu sadece fonksiyonu değiştirerek kullanabilirsiniz.

Hafta içi günleri için fonksiyon:
Rich (BB code):
Public Function IsWeekend(InputDate As Date) As Boolean
    Select Case Weekday(InputDate)
        Case Is <> vbSaturday, vbSunday
            IsWeekend = True
        Case Else
            IsWeekend = False
    End Select
End Function
 
Son düzenleme:
Katılım
30 Ocak 2012
Mesajlar
45
Excel Vers. ve Dili
Microsoft Office LTSC Standard 2021 Türkçe
Necati Bey,
Şimdi tam olarak istediğim filtrelemeye ulaştım. Çok ama çok teşekkür ederim. Benim için oldukça önemli bir çalışma oldu.
 
Katılım
20 Şubat 2007
Mesajlar
648
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,

Ben makroyu çalıştırdım fakat 3 mail tek buldu yardımcı olabilir misiniz ?
Merhaba,
Maalesef benim Outlook programım bozuldu, epeydir kullanamıyorum. Microsoftun 2007'ye desteği de kalktı. Yani artık Outlook makrolarını deneme imkanım olmuyor, kendim denemeden yazmak da doğru olmuyor.
 
Katılım
15 Ağustos 2024
Mesajlar
5
Excel Vers. ve Dili
excel ve outlook
dilerseniz yeni outlook kurulumu için destek sağlayabilirim sizde makro ile destek olursunuz
 
Katılım
15 Ağustos 2024
Mesajlar
5
Excel Vers. ve Dili
excel ve outlook
dilerseniz yeni outlook kurulumu için destek sağlayabilirim sizde makro ile destek olursunuz
Merhaba,
Maalesef benim Outlook programım bozuldu, epeydir kullanamıyorum. Microsoftun 2007'ye desteği de kalktı. Yani artık Outlook makrolarını deneme imkanım olmuyor, kendim denemeden yazmak da doğru olmuyor.
 
Katılım
15 Ağustos 2024
Mesajlar
5
Excel Vers. ve Dili
excel ve outlook
Belki ihtiyacı olan olur mesai sonrası gönderilen tüm mailleri a katagorisine ekliyor çalışıyor denedim.



Sub FilterEmailsAndAddCategory()
Dim olNamespace As Outlook.Namespace
Dim olFolder As Outlook.Folder
Dim olItem As Object
Dim mail As Outlook.MailItem
Dim receivedTime As Date
Dim startDate As Date
Dim endDate As Date

startDate = #7/1/2023#
endDate = #8/19/2024#

Set olNamespace = Application.GetNamespace("MAPI")
Set olFolder = olNamespace.GetDefaultFolder(olFolderInbox)

On Error Resume Next

For Each olItem In olFolder.Items
If TypeOf olItem Is MailItem Then
Set mail = olItem
receivedTime = mail.ReceivedTime

If receivedTime >= startDate And receivedTime <= endDate Then
Dim mailHour As Integer
Dim mailMinute As Integer
mailHour = Hour(receivedTime)
mailMinute = Minute(receivedTime)

If (mailHour < 8 Or (mailHour = 8 And mailMinute < 30)) Or (mailHour > 18 Or (mailHour = 18 And mailMinute > 30)) Then
' Mesai saatleri dışındaki maillere kategori ekle
mail.Categories = mail.Categories & ";a"
mail.Save
ElseIf Weekday(receivedTime, vbMonday) > 5 Then
' Cumartesi veya Pazar günü gönderilen maillere kategori ekle
mail.Categories = mail.Categories & ";a"
mail.Save
End If
End If
End If
Next olItem

On Error GoTo 0
End Sub
 
Üst