• DİKKAT

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

birden çok makroyu birlikte çalıştırma

Katılım
28 Haziran 2011
Mesajlar
7
Excel Vers. ve Dili
2016
Merhabalar,

İşim gereği aylık 200 civarı standar yazı ve dosya ekleyen mail atmam gerekiyor. outlook içine makro yazarak standart hale getirdim. ama sıkıntı şu; makroların hepsini birlikte çalıştıramıyorum. yani ben bir kere çalıştır dediğimde hepsinin çalışması ve tüm maillerin gönderilmesini istiyorum.

aşağıda örnek çalıştırdığım bir makro var:

Kod:
Sub bhs_rtet()
Dim app As Outlook.Application
Dim posta As Outlook.MailItem
Dim StrBody As String
Set app = CreateObject("Outlook.Application")
Set posta = app.CreateItem(olMailItem)
With posta
    .To = "edemiralp@bayindirhastanesi.com.tr"
    .CC = ""
    .BCC = ""
    .Subject = "Temmuz 2011 Klinik Performans Analizi"
    .HTMLBody = "" & "<br>" & _
               "Sorumlusu olduğunuz BHS ve BHK Radyolojik Tetkik kliniklerinin Temmuz 2011 performans analizi ekte sunulmuştur." & "<br>" & _
               "" & "<br>" & _
               "" & "<br>" & _
               "Saygılarımızla," & "<br>" & _
               "" & "<br>" & _
               "Planlama Bölümü" & "<br><br><br><br><br><br>"
    .Attachments.Add "Z:\KLINIK PERFORMANS\2011\BHS\TEMMUZ 2011\BHS  ESKİ FOTMAT\BHS RADYOLOJİ.xls"
    .Attachments.Add "Z:\KLINIK PERFORMANS\2011\BHK\TEMMUZ 2011\BHK  ESKİ FOTMAT\BHK RTET.xls"
    .Send
End With
End Sub


Sub bhs_urol()
Dim app As Outlook.Application
Dim posta As Outlook.MailItem
Dim StrBody As String
Set app = CreateObject("Outlook.Application")
Set posta = app.CreateItem(olMailItem)
With posta
    .To = "edemiralp@bayindirhastanesi.com.tr"
    .CC = ""
    .BCC = ""
    .Subject = "Temmuz 2011 Klinik Performans Analizi"
    .HTMLBody = "" & "<br>" & _
               "Sorumlusu olduğunuz BHS ve BHK Üroloji kliniklerinin Temmuz 2011 performans analizi ekte sunulmuştur." & "<br>" & _
               "" & "<br>" & _
               "" & "<br>" & _
               "Saygılarımızla," & "<br>" & _
               "" & "<br>" & _
               "Planlama Bölümü" & "<br><br><br><br><br><br>"
    .Attachments.Add "Z:\KLINIK PERFORMANS\2011\BHS\TEMMUZ 2011\BHS  ESKİ FOTMAT\BHS ÜROLOJİ.xls"
    .Attachments.Add "Z:\KLINIK PERFORMANS\2011\BHK\TEMMUZ 2011\BHK  ESKİ FOTMAT\BHK ÜROL.xls"
    .Send
End With
End Sub


Sub bhk_acil()
Dim app As Outlook.Application
Dim posta As Outlook.MailItem
Dim StrBody As String
Set app = CreateObject("Outlook.Application")
Set posta = app.CreateItem(olMailItem)
With posta
    .To = "edemiralp@bayindirhastanesi.com.tr"
    .CC = ""
    .BCC = ""
    .Subject = "Temmuz 2011 Klinik Performans Analizi"
    .HTMLBody = "" & "<br>" & _
               "Sorumlusu olduğunuz BHK Acil Servis kliniğinin Temmuz 2011 performans analizi ekte sunulmuştur." & "<br>" & _
               "" & "<br>" & _
               "" & "<br>" & _
               "Saygılarımızla," & "<br>" & _
               "" & "<br>" & _
               "Planlama Bölümü" & "<br><br><br><br><br><br>"
    .Attachments.Add "Z:\KLINIK PERFORMANS\2011\BHK\TEMMUZ 2011\BHK  ESKİ FOTMAT\BHK ACİL.xls"
    .Send
End With
End Sub

yukarıda 3 ornegi olan makrolardan yaklaşık 200 tane var. makroyu çalıştırdığımda hepsinin aynı anda yada sırayla ama tek komutla çalışması mümkün mü.

konu ile ilgili yardımlarınızı bekliyorum. şimdiden teşekkürler
 
Merhaba


Makronuzun sonuna diğer çalıştıracağınız makronun ismini yazınız.

Sub bhs_rtet()

....
...
bhs_urol

end sub


sub bhs_urol
......
.....

makro adı

end sub

veya


sub Makrolar()

1. makro ismi
2.makro ismi
3.
4.
....
...
...

End sub
 
Çok teşekkür ederim Zafer bey. Hızlı bir şekilde sorunumu çözdüğünüz için ayrıca teşekkür ederim.
Peki onlarca makronun ismini liste halinde yazmadan yapma şansımız var mıdır acaba? Yanlış anlamayın beğenmediğimden değil. :)
 
Merhaba

Aşağıdaki kodları makroların bulunduğu kitabın modül sayfasına yapıştırınız.
sonra boş bir sayfa aktif iken aşağıdaki makroyu çalıştırınız.
Sayfaya çalıştığınız kitaptaki bütün makroların isimleri liste halinde yazılacaktır.
GetTheList yazan satırı silin
makroları çalıştıracağız sıraya göre düzenleyin

Kod:
Sub GetTheList()
    Dim N&, Count&, MyList(200)
    Dim Component As VBComponent
    For Each Component In ActiveWorkbook.VBProject.VBComponents
        With Component.CodeModule
            Count = .CountOfDeclarationLines + 1
            Do Until Count >= .CountOfLines
            c = c + 1
                MyList(N) = .ProcOfLine(Count, _
                vbext_pk_Proc)
                Count = Count + .ProcCountLines _
                (.ProcOfLine(Count, vbext_pk_Proc), vbext_pk_Proc)
 
                 Cells(c, 1) = MyList(N)
 
            Loop
        End With
        Next
        End Sub

sonra

Aşağıdaki kodları modüle yapıştırın

Kod:
Sub run1()
sat = Cells(65000, 1).End(xlUp).Row
For i = 1 To sat
isim = Cells(i, 1)
run isim
Next
End Sub

GetTheList makrosunu sadece bir kere çalıştırın, sonradan ilave yapılan makroları makro listesinin altına veya arasına yapıştırın.

Markoların hepsini çalıştırmak için her seferinde Run1 makrosunu çalıştırın.
a1'de yazan makrodan başlayarak son dolu hücredeki makro ismine göre makrolar sırayla çalışacaktır.

Arama motoruna mail yazıp aratırsanız toplu mail atmak ile ilgili örnekler bulabilirsiniz.
 
Geri
Üst