• DİKKAT

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

makroları nasıl birleştirebilirim

Katılım
12 Ekim 2010
Mesajlar
52
Excel Vers. ve Dili
2007 türkçe
ustalar tek tıklama ile çalışan bir makrom var bu makronun altına başka bir makro ilave etmek istiyorum bunu nasıl yapabilirim tuşa astığımda hepsi çalışacak şekilde nasıl ayarlayabilirim

Kod:
[B]mevcut makro[/B]

   Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
For a = Sheets.Count To 1 Step -1
ad = Sheets(a).Name
If ad <> "Report" And ad <> "hesap" And ad <> "Ekle" And ad <> "total" Then Sheets(a).Delete
Next
On Error Resume Next
Set sh = Sheets("sonuc")
If sh Is Nothing Then
Sheets("report").Copy _
after:=Sheets(Sheets.Count)
ActiveSheet.Name = "sonuç"
Set S1 = Sheets("sonuç")
Set S2 = Sheets("ekle")
For a = 1 To S2.[b65536].End(3).Row
If S2.Cells(a, "a") <> "" Then
c = c + 1
sonn = 0
deger = S2.Cells(a, "a")
ilk = WorksheetFunction.Match(deger, S1.[a:a], 0)
sonn = WorksheetFunction.CountIf(S1.[a:a], deger) + ilk
End If
S1.Rows(sonn).Insert Shift:=xlDown
S1.Cells(sonn, "d").NumberFormat = S2.Cells(a, "d").NumberFormat
S1.Cells(sonn, "d") = S2.Cells(a, "d")
S1.Cells(sonn, "e").NumberFormat = S2.Cells(a, "e").NumberFormat
S1.Cells(sonn, "e") = S2.Cells(a, "e")
If c = 1 Then
S1.Cells(sonn, "a") = deger
c = 0
End If
sonn = sonn + 1
Next
End If
End Sub

[B]eklenecek makro[/B]

 Dim S1 As Worksheet, S2 As Worksheet, Satır As Long
 
    Set S1 = Sheets("bbb")
    Set S2 = Sheets("aaa")
 
    Satır = Evaluate("=MAX((" & S2.Name & "!A1:A1000=""WTG30"")*(ROW(1:1000)))")
 
    If Satır > 0 Then
        S1.Range("C1:D1").Copy
        S2.Cells(Satır + 7, "D").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
        Application.CutCopyMode = False
    End If
 
    Set S1 = Nothing
    Set S2 = Nothing
End Sub
 

Ekli dosyalar

Son düzenleme:
Merhaba,

Bir makro içinden diğer makroları çağırabilirsiniz. Örnek olması açısından yapıyı veriyorum.

Call Fonksiyonu mutlaka gerekli değil, sadece A_Makrosu demenizde yeterli olur.

Kod:
Private Sub CommandButton1_Click()
 
Kodlarınız
.
.
.
Call A_Makrosu
Call B_Makrosu
Call C_Makrosu
 
End Sub

Kod:
Sub A_Makrosu()
.
.
.
 
End Sub

Kod:
Sub B_Makrosu()
.
.
End Sub

Kod:
Sub C_Makrosu()
.
.
.
End Sub
 
sn. asubsubaru

kullandığınız makrolar arttığı zaman call komutu işlemi çok yavaşlatıyor. başıma geldiğinden biliyorum. bu durumda;

eklenecek makronun üzerindeki end sub yazısını sona eklerseniz de sorununuzu çözmüş olursunuz diye düşünüyorum.
yanlız dikkat etmeniz gereken husus ekleyeceğiniz makro başka bir sayfada çalışacaksa sheet("sayfa adı").select komutunu yazmayı unutmayın ve çalışmazsa eklediğiniz makronun adının başına ve sonda ki end sub yazısının başına ' işaretini koymayı deneyin. module sonunda sadece ana makronun end sub ı kalsın.

ben de amatörüm ama yardımcı olabilmişimdir umarım.

örnek:

sub ana_makro()

yazdığınız makrolar

'sub ikinci_makro()

gerekli ise sheet("sayfa adı").select

yazdığınız komutlar

'end sub

'sub üçüncü_makro()

gerekli ise sheet("sayfa adı").select


yazdığınız komutlar

'end sub

end sub
 
' işareti koymak işe yaradı teşekkürler ilgilenen herkeze
 
Geri
Üst