• DİKKAT

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

Makro da Topla.Çarpım formülü

Katılım
22 Temmuz 2006
Mesajlar
186
Excel Vers. ve Dili
2003
Arkadaşlar herkese kolay gelsin.

TOPLA.ÇARPIM((Sayfa1!A2:A3000=Sayfa2!A2)*(Sayfa1!C2:C3000)) Bu Formülü sayfa2 de f2:F3000 kadar tüm satıra yazıyorum ve sayfa çok yavaşlıyor. Bende bunu makro ile yapmak istiyorum .

Yardımlarınızı bekliyorum .
 
Merhaba

Aşağıdaki kodları kendinize göre uyarlayınız.
veya örnek bir dosya ekleyiniz.

Kod:
Sub TOPLACARP()
satır = Sheets("SAYFA1").Cells(65536, 1).End(xlUp).Row
For A = 2 To satır
SEC1 = sheets("sayfa2").Cells(A, 1)
Sheets("SAYFA2").Cells(A, 6) = Evaluate("SUMPRODUCT((SAYFA1!A2:A3000=""" & SEC1 & """)*(SAYFA1!C2:C3000))")
Next

End Sub
 
Son düzenleme:
Merhaba

İkinci bir alternatif


Kod:
Sub topla()
Set s1 = Sheets("sayfa1")
Set s2 = Sheets("sayfa2")

For y = 1 To s2.Cells(65536, 1).End(xlUp).Row
sayac = 0

For i = 1 To s1.Cells(65536, 1).End(xlUp).Row

If s2.Cells(y, 1) = s1.Cells(i, 1) Then
say = s1.Cells(i, 3)
sayac = sayac + say
End If

Next
s2.Cells(y, 5) = sayac
Next

End Sub
 
Sayın Zafer

Bende toplaçarpım kullanarak başka bir dış dosyadan veri alıyorum. Yalnız veri aldığım dosya kapalı olunca formülü yazdığım hücreler BAŞV! hatası veriyor, nasıl düzeltebilirim acaba????
 
Merhaba


Hatanın sebebi veri aldığınız dosyayı bulamamasından geliyordur.Veri aldığınız dosyanın ismini değiştirdinizmi.
 
Bende toplaçarpım kullanarak başka bir dış dosyadan veri alıyorum. Yalnız veri aldığım dosya kapalı olunca formülü yazdığım hücreler BAŞV! hatası veriyor, nasıl düzeltebilirim acaba????

Düzeltemezsiniz çünkü TOPLA.ÇARPIM fonksiyonu kapalı dosyalarda çalışmaz.
 
Cevaplarınız için sağolun. Bu cevap beni biraz üzdü, istediğimi yapamadım çünkü.Toplaçarpımın mantığında çalışıpda kapalı bir excel dosyasından veri alabilmemin bir yolu var mı acaba???
 
Cevaplarınız için sağolun. Bu cevap beni biraz üzdü, istediğimi yapamadım çünkü.Toplaçarpımın mantığında çalışıpda kapalı bir excel dosyasından veri alabilmemin bir yolu var mı acaba???

VBA ile yapılır elbette, ama fonksiyonlarla yapılabilirmi bunu söylemek için dosyanızı eklemeniz gerekir.
 
Sayın leventm

Dosyayı ekledim. Yalnız eklediğim dosyadaki varolan "Data" sayfasını, bu dosyadan ayırıp yeni bir kitap olarak kaydettim.Bu şekilde dosya boyutunu azalttım. Ama daha öncede belirttiğim gibi Data.xls kapalı olunca toplaçarpım çalışmıyor.Bu konuda yardımlarınızı bekliyorum, şimdiden ilginize teşekkürler...
 
Merhaba Arkadaşlar

Kapalı dosyadan VBA ile veri çekme konusunda tıkandım kaldım, lütfen yardım ediiiinnnn!!!????
 
Elimde bir fonksiyon var.. Bulunca sizle paylaşacağım :(

--Kullandığım fonksiyon, kapalı dosyadan DÜŞEYARA imiş :(---
Yardımcı olamadım üzgünüm..
 
Son düzenleme:
Selamlar,

Bu işlem için şu şekilde çözüm işinize yarayabilir. Bu iki dosyayı aynı klasör içine yerleştirin. Daha sonra "Liste" isimli sayfanıza bir buton ekleyip bu butona bastığınızda "Data" isimli dosyayı açıp verileri makro ile alıp dosyayı tekrar kapatabilirsiniz. Belki size fikir verebilir.
 
İstediğiniz için önce dosyayı açan kodlar ilave edilir sonrada veriler alınır ve dosya tekrar kapatılır. Aşağıdaki linkte böyle bir örnek mevcuttur, inceleyin. Eğer netice almazsanız tekrar üzerinden gideriz.

http://www.excel.web.tr/showthread.php?t=19453
 
Merhaba arkadaşlar

Çalıştığım sisteme göre çalışan dosya prototipini ekledim. İçinde tüm açıklamalar var. Benim yapmak istediğim kapalı bir dosyadan toplaçarpımla veya eşdeğer bir fonksiyonla tanımlı alanlara istediğim verileri süzmek. Ama dosya kapalı olduğundan BAŞV# hatasıyla karşılaşıyorum. Ama şöylede bir durum var. Veri alacağım dosya açık bile olsa boyutu çok büyük olduğundan (3,5-4 MB) toplaçarpım hesaplama yaparken dosya kilitlenebiliyor.Toplaçarpım formülünü makro ile kullanmak istemekteki amacım daha hızlı çalışmayı sağlayabilmekti.Eğer bunun daha başka yolları varsa (ki sizden yardım isteme amacım bu konudaki görüşlerinizi almaktı) bunları hayata geçirmek.Haluk beyin veritabanı ile ilgili yazılarını inceledim, ancak hepsi userform üzerinden dbaseye kayda yönelik çalışmalardı. Benim dosyamda ise bir userform kullanımı yok. Buna yönelik bir çalışma forumda bulamadım.

Umarım yeterli bilgi verebilmişimdir, yardımlarınız için şimdiden teşekkür ederim.
 
Son düzenleme:
Sayın Moderatörlerim, Arkadaşlarım

Çok mu zor birşey sordum acaba? Yukarıda anlattığım olayın yapılabilmesi mümkün mü acaba? Eğer değilse aynı mantıkta başka bir yol önerebilirmisiniz?
 
Bu dosyanızda bir Pivot Table (Özet Tablo) ile verilerinizi çekin. O zaman hacmi büyük olan veri dosyanızı açmadan verileri özet olarak almış olacaksınız. Sonra gerekiyorsa bu özet verilerle formüllerinizi oluşturun.

Dosyalarınızın birer küçük örneklerini ekleyebilirseniz belki üzerinden gitmek mümkün olabilir.
 
Çok mu zor birşey sordum acaba? Yukarıda anlattığım olayın yapılabilmesi mümkün mü acaba? Eğer değilse aynı mantıkta başka bir yol önerebilirmisiniz?

Sn ockucukay

Sorunuzun cevabı zor değil ama dosyanızdaki bilgiler yetersiz, öncelikle veri alınacak dosyanında küçük bir örneğini ekleyip, hangi sütuna hangi veri hangi kriterlere göre alınacaktır. Dosyanızdaki formüllerden mantığı bizlerin anlaması çok kolay değil. Bu detayları verirseniz çözüm bulmak kolaylaşacaktır.
 
Merhaba Arkadaşlar

İstediğiniz gibi dosyaları ekledim.Sayın yurttaşın söylediği pivot table olayınıda deneyeceğim. İlginize çok teşekkür ederim, cevaplarınızı bekliyorum..
 
Sayın yurttaşın söylemiş olduğu pivot table olayını denedim, tüm verileri birden çektiği için dosya boyutu çok büyük oldu ve yine kilitlendi. Buna paralel olarak benim aklıma başka bir yol geldi. Acaba ana sayfada verdiğim süzme kriterlerine göre verileri sql databaseden otomatik olarak çekebilecek bir pivot table yapılabilirmi?

Örnek: Parça no, Bölüm adı, Başlangış tarihi ve Bitiş tarihi verildiği zaman (mesela bir şarta bağlı bir makro çalışmış olsun) makro çalışacak ve ilgili şartları sağlayan bir pivot table oluşturacak. Böylece dosya gereksiz verilerle şişmemiş olacak.

Böyle birşey yapılabilir mi arkadaşlar, bu konuda yardımlarınızı bekliyorum.
 
Geri
Üst