• DİKKAT

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

İstenilen Dosyaları Bulup İşaretleme

Katılım
22 Ekim 2012
Mesajlar
311
Excel Vers. ve Dili
Office 2016 Türkçe
Herkese merhaba,

Elimde eksiksiz çalışan dosyama bir şey eklemek istiyorum. Şöyle ki;
Excel ile çağırdığım dosyaların ilk dört harfine göre arama yaparak yanında bulunan sütuna X işareti koysun.

Ekte ayrıntısı daha açık olarak görülmektedir. Amaç dizinde bulunan dosyaları çağırarak bir çok firmalara email gönderebiliyorum. Aynı anda aynı firmanın bir çok dosyası olabilir. Dosyaların isimleri firma adına göre verilmektedir.

Buraya kadar işlemler eksiksiz yapılıyor. Sadece ilave etmek istediğim şey; küçük bir makro ekleyerek 4 harfe göre firma bulup B sütununa X işareti koysun.

Bütün arkadaşlara saygılar.
 

Ekli dosyalar

Merhaba.

Umarım yanlış anlamadım.

Önce Mail sayfasının kod bölümündeki,
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
kodunun içinde yer alan, Call Toplu_Mail_Gönder satırını silip yerine aşağıdaki iki satırı yapıştırın.
Kod:
[FONT="Arial Narrow"]    Call SEC_GONDER
    Cancel = True[/FONT]
Aşağıdaki kod'u da Modülde bulunan Toplu_Mail_Günder kodlarının altına yapıştırın.

Böylece tek tek belge seçip, e-posta adresi seçip e-posta göndermek yerine,
sadece firma ismine çift tıklayıp bu işi tamamlayabilirsiniz.
Belge adı arama işi, F sütunundaki firma adının ilk dört karakterine göre yapılıyor tabii ki.
.
Kod:
[FONT="Arial Narrow"][B][COLOR="Blue"]Sub SEC_GONDER()[/COLOR][/B]
Set WF = Application.WorksheetFunction
aranan = Mid(Cells(ActiveCell.Row, "F").Value, 1, 4)
If WF.CountIf(Range("A:A"), aranan & "*") > 0 Then
    Range("B:B, E:E").ClearContents
        For sat = 1 To [A65536].End(3).Row
            If WF.CountIf(Cells(sat, 1), aranan & "*") > 0 Then Cells(sat, 2) = "X"
        Next
    Cells(ActiveCell.Row, "E") = "X": Cells(ActiveCell.Row + 1, "E") = "X"
Call Toplu_Mail_Gönder
    Range("B:B, E:E").ClearContents
    MsgBox ActiveCell.Value & vbLf & _
           " firmasına ilgili belgeler e-posta ile gönderildi", vbInformation, "FİLOSE"
Else
    MsgBox "Seçilen firmaya gönderilecek belge YOK." & vbLf & _
            "Masaüstündeki POSTA klasörünü kontrol edin.", vbCritical, "FİLOSE"
End If
[B][COLOR="blue"]End Sub[/COLOR][/B][/FONT]
 
Son düzenleme:
Sayın Ömer Bey,

Ellerinize sağlık istediğimiz gibi oldu. Seçimleri F sütunundaki firma adlarına çift tıklayınca otomatik yapıyor. Yani B veya E sütununa X işareti manuel olarak hiç koymuyorum. Kendi 4 harfe göre bakarak gönderiyor.

Tekrar teşekkür eder sağlık ve huzur dolu günler diliyorum.

Hoşçakalın
 
Sayın Ömer Bey,

Ellerinize sağlık istediğimiz gibi oldu. Seçimleri F sütunundaki firma adlarına çift tıklayınca otomatik yapıyor. Yani B veya E sütununa X işareti manuel olarak hiç koymuyorum. Kendi 4 harfe göre bakarak gönderiyor.

Tekrar teşekkür eder sağlık ve huzur dolu günler diliyorum.

Hoşçakalın
Tekrar merhaba.

Bilgisayarımda Outlook kurulu olmadığından gönderme olayını deneyememiştim ancak
siz X işareti eklenenleri sorunsuz gönderebiliyorum deyince, kodları ona göre düzenlemiştim.

İhtiyacın karşılandığına sevindim,
iyi çalışmalar dilerim. Trabzon'a selam olsun.
.
 
Ömer Bey Merhaba,

Hiçbir sorun yoktur. Ellerine sağlık. Mesleğim gereği her ay birçok firmalara birçok mail gönderiyorum. Klasör içine onları kayıt ederken firma adlarını kullanıyorum.
Bu makro ile de firma adına tıkladığımda sorunsuz email gönderiyor. Sayenizde zaman kazancım çok fazla oldu.

Trabzon içinde Aleyküm Selam diyorum. Saygı ve sevgiyle kalın.
İyi çalışmalar dilerim.
 
Bir de fikir söyleyeyim.
Gönderdiğiniz e-postalara ilişkin bir veri tabanı, liste oluşturuyorsunuzdur umarım.
(gönderilme zamanı, gönderilen dosya adı, gönderilen firma .... gibi)

Kodlarda buna ilişkin bir şey hatırlamıyorum.

Bir veri tabanı oluşmalı ki;
-- mükerrer gönderme olmasın,
-- gönderilmesi gerekip gönderilmeyen var mıdır gibi kontrol yapılabilsin.
-- belki gönderilen belgeler POSTA klasörü gibi (GÖNDERİLEN klasörü olabilir) başka bir yere taşınabilir ki
bu sayede esas olan POSTA klasörünün boş olmasıdır denilip, oradan hareketle
işlemlere devam edebilin.
.
 
Çok doğru Ömer Bey, posta klasörünü her ay gönderdikten sonra içindekileri GİDEN klasörüne manuel olarak atıyorum.

Burada dediğiniz gibi POSTA klasörün içindekileri KESİN GİTMİŞSE, GİDEN klasörüne atsın ve tarihini yazsın olarak olabilirdi.

İstekler bitmez Ömer Bey, yeterince yardımlarınız oldu zaten. Sizden ve diğer arkadaşlardan burada zengin bilgi paylaşılıyor. Bunu daima saygı hürmetle karşılıyorum. Ne mutlu ki; yürekleri paylaşmayı zevk edinenlere.

Herkese saygılar sunar, elleriniz dert görmesin.
 
Ömer Bey Merhaba,

F Sütunundaki hücreye çift tıklayıp email ekranı geliyor ve eklenecek dosyaları da ekliyor. Ancak daha önce imza olarak ayarladığım ekran değil de boş beyaz ekran geliyor.

İmza ekranını manuel ben ekliyorum. Ama outlookda YENİ email dediğimde sorun yok İMZA tasarım ekranım geliyor. Excelden gönderdiğimde ise İMZA ekranını eklemiyor. Sorun ne olabilir acaba?

Saygılar sunarım.
 
Merhaba.

Daha evvel de söylediğim gibi, bilgisayarımda OUTLOOK kurulu olmadığından deneme şansım yok
o yüzden söyleyeceklerim tamamen fikirden ibaret olacak.

Toplu Mail Gönder makrosunun alt kısmına doğru aşağıdaki kısmında kırmızı işaretli satırın
sol başına tek tırnak ekleyerek veya o satırı silerek bir deneyin isterseniz.
.
Kod:
[FONT="Arial Narrow"]    With xlMail
        .To = Kime
        .Subject = " === E-TEBLİGAT Bilgilendirme === "
 [COLOR="Red"]       .Body = ""[/COLOR]
        For Z = 1 To say[/FONT]
 
Merhaba Ömer Bey,
.Body="" komutunu silmek sorunu çözmedi. Küçük bir bilgi paylaşmak istiyorum. Outlook üzerinde YENİ E-POSTA dediğimizde kayıtlı imza ile açılıyor da, excel ile gönderdiğimizde kayıtlı imza gelmiyor.

Sanki excel üzerinden gönderdiğimiz ve Outlook ile YENİ E-POSTA kısa yolu farklı pencereyi açıyor gibi. Yani YENİ E-POSTA penceresi diye tıklandığında iki farklı yerden okunuyor gibi. Ömer Bey naçizane aklıma bu geldi.

Saygılar sunarım.
 
Yada; With xlMail bu komutun yerine başka bir şey mi yazılmalıdır?
Ömer Bey, bu basit bilgileri verdiğim için lütfen acemiliğime sayın. Bilginize müdahale gibi bir niyetim asla yoktur.

Saygılar,
 
Merhaba.
Söylediğim gibi hiç yaptığım bir şey değil, deneme şansım da yok, sadece fikrimi söylüyorum.

Bir de aşağıdaki gibi (kırmızı ve mavi kısmı tamamen kaldırarak ve tek tek ekleyerek) deneyin isterseniz.

.Body = "" & vbNewLine & xlMail.Body
 
Merhaba,
Önce .Body = "" & vbNewLine bunu denedim.
Sonra .Body = "" & xlMail.Body denedim olmadı.

Ömer Bey tekrar çok teşekkür ederim. Önemli bir eksiklik değil.
Elinize sağlık, hoşçakalın.
 
Geri
Üst