![]() |
Outlook İçin Hazırlanan Ama Çalışmayan Makro - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Genel Konular (https://accesstr.net/forum-genel-konular.html) +--- Forum: Farklı Konular Hakkında Sorular (https://accesstr.net/forum-farkli-konular-hakkinda-sorular.html) +--- Konu Başlığı: Outlook İçin Hazırlanan Ama Çalışmayan Makro (/konu-outlook-icin-hazirlanan-ama-calismayan-makro.html) |
Outlook İçin Hazırlanan Ama Çalışmayan Makro - tarkanaykın - 25/05/2022 merhaba arkadaşlar, Outlook 2007 kullanıyorum, amacım gönderilen iletilerin bir kopyasını otomatik olarak istediğim diske kaydetmek, bir makro buldum ve outlook üzerinde gerekli kuralları da oluşturabiliyorum ama hiç çalışma belirtisi yok, bu konuda yardımcı olabilecek varsa çok memnun olurum, teşekkürler. Public Sub SaveMailDisk(itm As Outlook.MailItem) On Error Resume Next Dim saveFolder As String saveFolder = "D:\OUTLOOK YEDEK\" 'Maillerin kaydedileceği dosya Dim dateFormat dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd HH-mm-ss") ' Mailin dosya adına alınma zamanını eklemek için Dim dosyaadi As String dosyaadi = saveFolder & "\[" & dateFormat & "] [" & itm.Sender.Name & "] [" & degistir(itm.Subject) & "].msg" itm.SaveAs dosyaadi ' Maili diske kaydeder. For Each objAtt In itm.Attachments 'Mail'deki ekleri diske kaydeder. objAtt.SaveAsFile saveFolder & "\[" & dateFormat & "] [" & itm.Sender.Name & "] [" & degistir(itm.Subject) & "] " & objAtt.DisplayName Set objAtt = Nothing Next End Sub Function degistir(yazi As String) 'Dosya adındaki geçersiz karakterleri temizler On Error Resume Next yk = "_" 'Geçersiz karakterin yerine ne koyacağız? yazi = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yazi, ":", yk), "*", yk), "\", yk), "/", yk), "<", yk), ">", yk), "|", yk), """", yk), "?", yk) degistir = yazi End Function RE: Outlook İçin Hazırlanan Ama Çalışmayan Makro - atoykan - 25/05/2022 Yedeklemek istediğiniz mailleri depolamak üzeri bir pst dosyası oluşturup istediğiniz diske kaydedin ve belirlediğiniz kriterlerdeki maillerin kopyalanması için kural yöneticisinden bir kural oluşturun bunun için haricen bir makro hazırlamaya ihtiyacınız yok. RE: Outlook İçin Hazırlanan Ama Çalışmayan Makro - tarkanaykın - 25/05/2022 Tamam teşekkürler sayın atoykan, aslinda zaten sıkıntı da orda , outlookun kuralları içinde, atıyorum masaüstüne kaydetme seçeneği yok, benim istediğim tam olarak; bir mesaj gönderildiği an o gönderilen dosyanın bi kopyası masaüstüne yerleştirilsin, neden çünkü gonderme isini kişinin kendisi yapmayacak, exceldeki bi makro yapacak, dolayısıyla kişinin o an o belgeden haberi olsun diye masaüstüne gelmesini istiyorum, yoksa belge otomatik olarak gönderilecek ama pc yi kullanan da bu dosyayı görmeyecek. Önerileriniz için teşekkür ederim, kolay gelsin. RE: Outlook İçin Hazırlanan Ama Çalışmayan Makro - atoykan - 25/05/2022 Maili otomatik gönderirken ilgili kullanıcıya mail gönderildiğine ilişkin bildirim amaçlı bir mail daha atmayı düşünün. Bilgilendirme mailine istinaden gönderilen maillerden kontrol edilebilir, böylece alan tasarrufu da sağlamış olursunuz. RE: Outlook İçin Hazırlanan Ama Çalışmayan Makro - tarkanaykın - 26/05/2022 tabi o da olabilir, hem yer tasarrufu açısından önemli bir yöntem, teşekkür ederim, yalnız ben şöyle bir makro buldum yabancı bir siteden, işimi de gördü hallettim istediğim oldu, çok teşekkür ederim emeği geçenlere. önce outlook'ta 'kural oluşturucu' dan ilgili ayarları yaptım (x adlı kişiden y konulu bir ileti gelirse ilgili makroyu (aşağıda) çalıştır) sonra bu makroyu o ayarların şartına bağladım ve sonuç çok iyi, ilgilenenler kullansın. Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String saveFolder = "C:\Users\pc\Desktop" For Each objAtt In itm.Attachments If InStr(objAtt.DisplayName, ".xlsx") Then objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName End If Set objAtt = Nothing Next End Sub |