• DİKKAT

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

İçerikteki Formül Makroya uyarlanabilir mi?

Katılım
6 Mayıs 2020
Mesajlar
205
Excel Vers. ve Dili
Microsoft Office 365 E3
Merhaba,

Aşağıda yazılı olan formülün makro olarak yazı mı var mıdır? Var ise uyarlayabilirseniz çok sevinirim. Uyarlanan kod kaynağım olur umarım o kaynaktan yola çıkarak başka kodlamalar yapmaya da çalışırım inşallah.

=TOPLA.ÇARPIM(ALTTOPLAM(9;KAYDIR('EK SAYFA'!$AB$3;SATIR('EK SAYFA'!$AB$3:'EK SAYFA'!$AB$49998)-SATIR('EK SAYFA'!$AB$3);))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998="YUVARLAK")*('EK SAYFA'!$T$3:'EK SAYFA'!$T$49998="SERVİS")*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998="BOŞALTMA")*1)

Yardımcı olmaya çalışan saygıdeğer üyelere şimdiden teşekkür eder, iyi günler dilerim.
 
Bunun yerine örnek dosya paylaşsanız ve dosyada ne yapmak istediğinizi belirtseniz daha uygun olur.
 
Yusuf Bey öncelikle geri dönüşünüz için teşekkür ederim.

Göndereceğim örnek dosyadaki başlıklar ve ifadeleri ben uydurdum lakin formülü de uydurduğum başlıklara göre düzenledim.
İlk Sayfadaki boyalı alanlar formülün ilişkili olduğu alanlar. Biraz karışık duruyor lakin. Yıllık bazda Rapor sayfasında hesaplama yapmasını istiyorum.
Formülle bunları hesaplattırıyorum ama çok kasıyor. Yardımcı olabilirseniz mutlu olurum.

Hayali dosyayı ekte aktarıyorum. Umarım işinizi görür.
 

Ekli dosyalar

Özetlemem gerekirse;

Adetleri istenilen durumlara göre hesaplatmak.

Ocak ayında YUVARLAK çeşidi SERVİS çalışma şekli ile BOŞALTMA operasyonu gerçekleştirmiş. İlgili ay itibariyle toplamda bu işlemden kaç adet yapılmışsa C5 hücresine yazılmış.

Bunu 6 ana başlıkta 22 alt başlıkta ve 12 ay boyunca ilgili ayların hücrelerine yazıyordum. Her hücreye ilgili formülleri tek tek yazıyordum.
Anlatabildim umarım. Orjinal tablo ile birebir aynı kullanımda. Tekrardan teşekkür ederim.
 
Düzeltme yapacağım. Adet toplamı değil. Ağırlık toplamı olacak.

ilk 4 Ana başlık ve Alt Başlıkları = Ağırlık toplamından hesaplanıyor.

5. Başlıktaki (Yamuk)
1. Alt Başlık (Adet Boşaltma) = Adet toplamı olacak.
2. Alt Başlık (Kayıtsız Misafir Boşaltma) = Kayıtsız Misafir Toplamı olacak.
3. Alt Başlık (Adet Doldurma) = Adet toplamı olacak.
4. Alt Başlık (Kayıtsız Misafir Doldurma) = Kayıtsız Misafir Toplamı olacak.

6. Başlıktaki (Kişi)
1. Alt Başlık (Boşaltma) = Misafir Toplamı olacak.
2. Alt Başlık (Doldurma) = Misafir Toplamı olacak.
 
Bayağı uzun bir işlem olacaksa çok fazla vakit alacaksa hiç uğraşmayın Yusuf Bey. Ben böyle idare ederim.
 
Farklı hücrelerde farklı formüller olacağından çözüm bulmak biraz uzun sürebilir. Ancak ben çözüm ararken oluşturduğum makro kodu maalesef hata verdi ve hatanın nedenini de bir türlü bulamadım. Eğer hata vermeseydi istediğiniz şekilde düzenleme yapabilirdim muhtemelen.

Kısacası yapamadım maalesef :(
 
Yusuf Bey ilgilenmeniz yeterli. Vakit ayırıp denediğiniz için teşekkür ederim. Formüllü sistemle yoluma devam edeyim :)

Sağlıcakla kalın.
 
Merhaba,
Formüller ile hesaplamalarınızı makro ile yaptırıp dosyanızın kasmasını önleyebilirsiniz. İnceleyin ve formüllerinizi kontrol edin. Dosyanız ekte.
Kod:
Sub formuller()
Application.ScreenUpdating = False
With Range("D5:O8")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$AB$3,ROW('EK SAYFA'!$AB$3:'EK SAYFA'!$AB$49998)-ROW('EK SAYFA'!$AB$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$4)*('EK SAYFA'!$T$3:'EK SAYFA'!$T$49998=$C5)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$B5)*1)"
    .Value = .Value
End With

With Range("D11:O14")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$AB$3,ROW('EK SAYFA'!$AB$3:'EK SAYFA'!$AB$49998)-ROW('EK SAYFA'!$AB$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$10)*('EK SAYFA'!$T$3:'EK SAYFA'!$T$49998=$C5)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$B5)*1)"
    .Value = .Value
End With

With Range("D17:O20")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$AB$3,ROW('EK SAYFA'!$AB$3:'EK SAYFA'!$AB$49998)-ROW('EK SAYFA'!$AB$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$16)*('EK SAYFA'!$T$3:'EK SAYFA'!$T$49998=$C5)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$B5)*1)"
    .Value = .Value
End With

With Range("D23:O26")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$AB$3,ROW('EK SAYFA'!$AB$3:'EK SAYFA'!$AB$49998)-ROW('EK SAYFA'!$AB$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$22)*('EK SAYFA'!$T$3:'EK SAYFA'!$T$49998=$C5)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$B5)*1)"
    .Value = .Value
End With

With Range("D29:O29")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$X$3,ROW('EK SAYFA'!$X$3:'EK SAYFA'!$X$49998)-ROW('EK SAYFA'!$X$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$28)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$C29)*1)"
    .Value = .Value
End With

With Range("D30:O30")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$AA$3,ROW('EK SAYFA'!$AA$3:'EK SAYFA'!$AA$49998)-ROW('EK SAYFA'!$X$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$28)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$C29)*1)"
    .Value = .Value
End With

With Range("D31:O31")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$X$3,ROW('EK SAYFA'!$X$3:'EK SAYFA'!$X$49998)-ROW('EK SAYFA'!$X$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$28)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$C29)*1)"
    .Value = .Value
End With

With Range("D32:O32")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$AA$3,ROW('EK SAYFA'!$AA$3:'EK SAYFA'!$AA$49998)-ROW('EK SAYFA'!$X$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$28)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$C29)*1)"
    .Value = .Value
End With


With Range("D35:O36")
    .Formula = "=SUMPRODUCT(SUBTOTAL(9,OFFSET('EK SAYFA'!$Y$3,ROW('EK SAYFA'!$Y$3:'EK SAYFA'!$Y$49998)-ROW('EK SAYFA'!$Y$3),))*('EK SAYFA'!$B$3:'EK SAYFA'!$B$49998=D$1)*('EK SAYFA'!$R$3:'EK SAYFA'!$R$49998=$B$34)*('EK SAYFA'!$W$3:'EK SAYFA'!$W$49998=$B35)*1)"
    .Value = .Value
End With

Application.ScreenUpdating = True
MsgBox "Islem Tamam"

End Sub
 

Ekli dosyalar

Ben olsam ÖZET TABLO (PIVOT TABLE) kullanırdım.

Tabloyu oluşturduktan sonra güncelleme işlemi saniyeler içinde gerçekleşecektir. Aynı zamanda sürükle-bırak ile dilediğiniz gibi şekillendirebilirsiniz.

Dilimleyici kullanarak farklı görünümler elde edebilirsiniz.

Yani geliştirmek sizin elinizde...
 

Ekli dosyalar

Mutlu ve Korhan Bey,

Öncelikle teşekkür ederim. Şimdi bakabildim. En kısa sürede uyarlamaya çalışıp dönüş yapacağım. İlginiz, alakanız için teşekkür eder, mutlu günler dilerim.
 
Mutlu ve Korhan Bey,

İkisi ilede çalışabilirim. Ayırdığınız vakit için teşekkür ederim.
Uyarladığımda sıkıntı yaşamadım. Elinize sağlık, sağlıcakla kalın.
 
Geri
Üst