outlooka görev atama

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,662
Excel Vers. ve Dili
Microsoft 365 Tr-64
Verilen harici linkteki işleme uygun bir tablo yerine, farklı içerik ve formatlara sahip bir tablo kullanmışsınız.
Özellikle C-D-E-F-G sütunlarınızın formatlarını örneğe uydurabilirsiniz.

CheckBox eklemek silmek yerine daha pratik bir yol izlenebilir. Mesela K sütununda Ekle / Eklendi / "Boş" gibi (boşluk) 3 seçenekli bir veri doğrulama koyabilirsiniz. (Tablonuzun formatını düzeltince K sütununu da en son sütun olarak düzeltebilirsiniz)

Harici linkteki tabloya uygun olarak bahsettiğim sütunun 8. sütuna denk gelecek şekilde ayarlarsanız orjinal kodlara 3 ilave satırla bu işi yapabileceğiniz düşünüyorum. Eklediğim 3 satır ve revize attığım 1 satırı kodların içinde yanına ifade yazarak belirttim

C++:
Sub AddAppointments()
'Update by Extendoffice 20180608
    Dim I As Long
    Dim xRg As Range
    Dim xOutApp As Object
    Dim xOutItem As Object
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = Range("A2:H" & Range("A" & Rows.Count).End(xlUp).Row) ' Tablo alanınızı revize ettim
    For I = 1 To xRg.Rows.Count
        If xRg.Cells(I, 7).Value <> "EKLE" Then GoTo Devam1 'Eklediğim Satır
        Set xOutItem = xOutApp.createitem(1)
        Debug.Print xRg.Cells(I, 1).Value
        xOutItem.Subject = xRg.Cells(I, 1).Value
        xOutItem.Location = xRg.Cells(I, 2).Value
        xOutItem.Start = xRg.Cells(I, 4).Value
        xOutItem.Duration = xRg.Cells(I, 5).Value
        If Trim(xRg.Cells(I, 6).Value) = "" Then
            xOutItem.BusyStatus = 2
        Else
            xOutItem.BusyStatus = xRg.Cells(I, 6).Value
        End If
        If xRg.Cells(I, 7).Value > 0 Then
            xOutItem.ReminderSet = True
            xOutItem.ReminderMinutesBeforeStart = xRg.Cells(I, 7).Value
        Else
            xOutItem.ReminderSet = False
        End If
        xRg.Cells(I, 7).Value = "EKLENDİ" 'Eklediğim Satır
        xOutItem.Body = xRg.Cells(I, 8).Value
        xOutItem.Save
        Set xOutItem = Nothing
Devam1: 'Eklediğim Satır
    Next
    Set xOutApp = Nothing
End Sub
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
Ömer Faruk Bey üstadım merhaba. orjinal linkteki örnekten tek farkı tarih sütunu eklendi. onu da tekrar atanmasından kaçınmak için kolaylık olacağını düşündüm. ikinci tarih sutununu çıkarıp sizin kodları eklediğimde makro çalışmadı. kodları sutun numaralarına göre tek tek kontrol ettiğimde bazı hatalar buldum düzelttim ancak yine çalışmadı. ilginiz için teşekkür eder sağlıklı günler dilerim.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,662
Excel Vers. ve Dili
Microsoft 365 Tr-64
Deneme yapmamıştım. Kodların da çalıştığını varsaymıştım.
Bir kaç yerde düzeltme ve ekleme yaptım. Sayfa formatını aşağıdaki şekilde düzenledim
Çokça test etmedim ancak ilk görevi ekledi hatta süresi geçti diye Outlook hemen uyarı verdi.
Geliştirmek mümkün.

230326


C++:
Sub AddAppointments()
'Update by Extendoffice 20180608
    Dim i As Long
    Dim xRg As Range
    Dim xOutApp As Object
    Dim xOutItem As Object
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutItem = xOutApp.CreateItem(olAppointmentItem)
    Set xRg = Range("A2:H" & Range("A" & Rows.Count).End(xlUp).Row)
    For i = 1 To xRg.Rows.Count
        If xRg.Cells(i, 8).Value <> "EKLE" Then GoTo Devam1 'Eklediğim Satır
        Set xOutItem = xOutApp.CreateItem(1)
        Debug.Print xRg.Cells(i, 1).Value
        xOutItem.Subject = xRg.Cells(i, 1).Value
        xOutItem.Location = xRg.Cells(i, 2).Value
        xOutItem.Start = xRg.Cells(i, 3).Value
        xOutItem.Duration = xRg.Cells(i, 4).Value
        If Trim(xRg.Cells(i, 5).Value) = "" Then
            xOutItem.BusyStatus = 2
        Else
            xOutItem.BusyStatus = xRg.Cells(i, 5).Value
        End If
        If xRg.Cells(i, 6).Value > 0 Then
            xOutItem.ReminderSet = True
            xOutItem.ReminderMinutesBeforeStart = xRg.Cells(i, 6).Value
        Else
            xOutItem.ReminderSet = False
        End If
        xRg.Cells(i, 8).Value = "EKLENDİ" 'Eklediğim Satır
        xOutItem.Body = xRg.Cells(i, 7).Value
        xOutItem.Save
        Set xOutItem = Nothing
Devam1: 'Eklediğim Satır
    Next
    Set xOutApp = Nothing
End Sub
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
Üstad sorunsuz çalışıyor. teşekkür ederim ellerinize sağlık. iyi hafta sonları dilerim.
 

Ekli dosyalar

Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
Deneme yapmamıştım. Kodların da çalıştığını varsaymıştım.
Bir kaç yerde düzeltme ve ekleme yaptım. Sayfa formatını aşağıdaki şekilde düzenledim
Çokça test etmedim ancak ilk görevi ekledi hatta süresi geçti diye Outlook hemen uyarı verdi.
Geliştirmek mümkün.

Ekli dosyayı görüntüle 230326


C++:
Sub AddAppointments()
'Update by Extendoffice 20180608
    Dim i As Long
    Dim xRg As Range
    Dim xOutApp As Object
    Dim xOutItem As Object
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutItem = xOutApp.CreateItem(olAppointmentItem)
    Set xRg = Range("A2:H" & Range("A" & Rows.Count).End(xlUp).Row)
    For i = 1 To xRg.Rows.Count
        If xRg.Cells(i, 8).Value <> "EKLE" Then GoTo Devam1 'Eklediğim Satır
        Set xOutItem = xOutApp.CreateItem(1)
        Debug.Print xRg.Cells(i, 1).Value
        xOutItem.Subject = xRg.Cells(i, 1).Value
        xOutItem.Location = xRg.Cells(i, 2).Value
        xOutItem.Start = xRg.Cells(i, 3).Value
        xOutItem.Duration = xRg.Cells(i, 4).Value
        If Trim(xRg.Cells(i, 5).Value) = "" Then
            xOutItem.BusyStatus = 2
        Else
            xOutItem.BusyStatus = xRg.Cells(i, 5).Value
        End If
        If xRg.Cells(i, 6).Value > 0 Then
            xOutItem.ReminderSet = True
            xOutItem.ReminderMinutesBeforeStart = xRg.Cells(i, 6).Value
        Else
            xOutItem.ReminderSet = False
        End If
        xRg.Cells(i, 8).Value = "EKLENDİ" 'Eklediğim Satır
        xOutItem.Body = xRg.Cells(i, 7).Value
        xOutItem.Save
        Set xOutItem = Nothing
Devam1: 'Eklediğim Satır
    Next
    Set xOutApp = Nothing
End Sub
Ömer Bey Merhaba,,,
Sütunlarda mevcut olan "Durum ve Hatırlatma" ne anlama geliyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,662
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sorunuzun direkt cevaplarını Microsoft Outlook uygulamanızda yeni görev ekleyek görebilirsiniz.
 
Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
Sorunuzun direkt cevaplarını Microsoft Outlook uygulamanızda yeni görev ekleyek görebilirsiniz.
Outlook malesef tabletimde yüklü değil. Bİlgi amaçlı sormuştum. Cevabınız için teşekkürler.
 
Üst