• DİKKAT

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

Etopla makrosunda değişilik ve ilave yapılması

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,677
Excel Vers. ve Dili
Excel 2010 32 bit
merhabalar,
Öncelikle forumdaki uzmanlarımızın ve tüm üyelerimizin Bayramını kutlar sağlık esenlikler dilerim.
Aşağıdaki kod uzmanlarımız tarafından yapılan bir çalışma idi.
Kendime uyarlamaya çalışıyorum.
Kodumuz ETOPLA işlevini makro ile yapıyor.Mevcut dosyamda formül olarak çalıştığında çok kasıyor.
İhtiyacım;
1.En son makrodan satırının çalışmasından sonra çekilen verilerden H Sutununda toplama çıkarma yapmak.Yani H=I+J+K-L formülünün makrosu, bu makro H6 hücresinden başlayacak.
2.With Range satırında ;ÖRNEK J6:J10 diye veri çekilecek alan belirtmişim.
Bunu belirtmesek de D6 dan aşağıya doğru sadece dolu olan hücrelerde bu makroları çalıştırsak...
Çok memnun olurum:)
Yardımlarınızı bekler hayırlı geceler dilerim.


Option Explicit

Private Sub Worksheet_Activate()
With Range("j6:j10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(doru!c:c,d6,doru!f:f)"
.Value = .Value
End With
With Range("k6:k10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(sipariş!c:c,d6,sipariş!f:f)"
.Value = .Value
End With
With Range("L6:L10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(satışlar!a:a,d6,satışlar!b:b)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
.Value = .Value
End With
With Range("ı6:ı10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
.Value = .Value
End With


End Sub
 
Merhaba Korhan hocam,
Forumdasınız herhalde!
Çalıştığım kod sizin çalışmanız idi. Yardımcı olabilirseniz sevinirim.
Bayramınız mubarek olsun.
Selametle kalın
 
Merhaba,
Yukarıdaki bütün soruları araştırıp aşağıdaki gibi revize ederek çözdüm.
Fakat iki sorunu aşamadım.
Makro başladığında h6:l65536 hücrelerini sildiriyorum.
1-Makro bitiyor tekrar 2 nci defa tekrar makro çalışıyor bu her zaman olmuyor, bazen oluyor.bunu önleyemedim.
2-Aynı sahifede 2 pıvot table var ben sadece pıvottable5 yenilendiğinde makro çalışsın istiyorum.
Yardımcı olursanız sevinirim.
Tşk.
Option Explicit

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)

[h6:l65536].ClearContents
With Range("j6:j10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(doru!c:c,d6,doru!f:f)"
.Value = .Value
End With
With Range("k6:k10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(sipariş!c:c,d6,sipariş!f:f)"
.Value = .Value
End With
With Range("L6:L10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(satışlar!a:a,d6,satışlar!b:b)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
.Value = .Value
End With
With Range("ı6:ı10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
.Value = .Value
End With
With Range("h6:h10" & Cells(Rows.Count, 1).End(3).Row)
.Formula = "=SUMIF(doru!c:c,d6,doru!f:f)+SUMIF(sipariş!c:c,d6,sipariş!f:f)+SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!b:b)"
.Value = .Value
End With
End Sub
 
Son düzenleme:
Merhaba
Çalışma dosyanızın bir örneğini 2003 formatında ekleyebilirmisiniz
 
Son düzenleme:
Merhaba,
Öncelikle Mubarek Kurban bayramınız mubarek olsun.
Dosyayı ekledim.Bu çalışma benim için önemli sizlerin yardımı ile yaptığım bu proğramda ön muhasebe proğramı kullamadan resmi fatura dahil bütün işlerimi yapıyorum.
Etopla işlevi veri çok olduğu için bilgisayarı çok kasıyor.O ndenle makrolu çözüme ihtiyaç duydum.
Yardımlarınız için teşekkür ederim.Fakat ben hemen çıkacağım cevabınıza yarın bakabileceğim.
Çok teşekkür ederim.
Selamtle kalın.
 

Ekli dosyalar

Merhaba,

Dosyanızda VBA şifresi var. Bu durumda nasıl inceleyeceğiz.
 
Çok çok özür dilerim.Dosyayı gönderip evden çıktıktan sonra aklıma geldi.
Kusura bakmayın.Şifre "kemal"
 
Merhaba,

Aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
    Dim Son
    
    If InStr(1, Target, "Table5") > 0 Then
    
        [h6:l65536].ClearContents
        
        Son = Cells(Rows.Count, "D").End(3).Row
        
        With Range("j6:j" & Son)
            .Formula = "=SUMIF(doru!c:c,d6,doru!f:f)"
            .Value = .Value
        End With
        
        With Range("k6:k" & Son)
            .Formula = "=SUMIF(sipariş!c:c,d6,sipariş!f:f)"
            .Value = .Value
        End With
        
        With Range("L6:L" & Son)
            .Formula = "=SUMIF(satışlar!a:a,d6,satışlar!b:b)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
            .Value = .Value
        End With
        
        With Range("ı6:ı" & Son)
            .Formula = "=SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
            .Value = .Value
        End With
        
        With Range("h6:h" & Son)
            .Formula = "=SUMIF(doru!c:c,d6,doru!f:f)+SUMIF(sipariş!c:c,d6,sipariş!f:f)+SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!b:b)"
            .Value = .Value
        End With
    End If
End Sub
 
Sn.Korhan Bey,
Rabbim yar ve yardımcınız olsun.
Forumdaki ustadlarımızın bu bayram günü bile vakit ayırıp yardımcı olmaları her türlü takdire şayandır.
Hakkınızı helal ediniz.
Süper çalışıyor.
Selametle kalın.
 
Merhaba Korhan bey,
Aynı sahifede PıvotTable6 var.
Bu pıvot table6 için yapmış olduğunuz çalışmanın sutun verilerini değiştirerek ayrı olarak çalıştırdım ,çalışıyor ;
fakat pıvottable 6 yı güncellediğimde diğer pıvot table da etkilenip sanki pıvot table 5 i de güncelleştirmişim gibi verileri yeniliyor.
Her iki pıvot table ı bağımsız çalıştırabilmemiz için nasıl bir ekleme veya değişiklik yapmak gerekiyor.
Teşekkür ederş hayırlı günler dilerim.
Selametle kalın.
 
Önceki önerdiğim kodu siliniz ve aşağıdaki kodu deneyiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Son
 
    On Error GoTo Devam
 
    If Intersect(Target, Range("B:F")) Is Nothing Then Exit Sub
 
    If ActiveCell.Column < 7 And InStr(1, ActiveCell.PivotTable, "Table5") > 0 Then
        Application.EnableEvents = False
 
        [h6:l65536].ClearContents
 
        Son = Cells(Rows.Count, "D").End(3).Row
 
        With Range("j6:j" & Son)
            .Formula = "=SUMIF(doru!c:c,d6,doru!f:f)"
            .Value = .Value
        End With
 
        With Range("k6:k" & Son)
            .Formula = "=SUMIF(sipariş!c:c,d6,sipariş!f:f)"
            .Value = .Value
        End With
 
        With Range("L6:L" & Son)
            .Formula = "=SUMIF(satışlar!a:a,d6,satışlar!b:b)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
            .Value = .Value
        End With
 
        With Range("ı6:ı" & Son)
            .Formula = "=SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!j:j)"
            .Value = .Value
        End With
 
        With Range("h6:h" & Son)
            .Formula = "=SUMIF(doru!c:c,d6,doru!f:f)+SUMIF(sipariş!c:c,d6,sipariş!f:f)+SUMIF(gelen!c:c,d6,gelen!d:d)-SUMIF(satışlar!a:a,d6,satışlar!b:b)"
            .Value = .Value
        End With
    End If
 
Devam: Application.EnableEvents = True
End Sub
 
Sn.Korhan bey,
Çok teşekkür ederim.
Emeğinize sağlık, hakkınızı helal ediniz.
Selametle kalın.
 
Geri
Üst