• DİKKAT

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

makroyla topla çarpım

Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
merhabalar

forumda bazı örnekler var ama hepsi tek sütun için çalışmalar. ekteki dosyamda göreceğiniz gibi 2007 Eğitim kaydı sayfasından topla çarpım metoduyla alınan veriler (etkinlik değerlendirme notları) matris sayfasında listeleniyor. Yalnız liste uzun ve eğitim sayısı fazla olduğundan dosya yavaş çalışıyor. Makroyla tüm sütunları içerecek şekilde topla çarpımı nasıl yapabilirim?
 
Aşağıdaki adreste topla.çarpım işleminin makro ile yapılmış bir örneği var. Belki size fikir verebilir.

http://www.excel.web.tr/showthread.php?t=40516&highlight=topla.%E7arp%FDm

vermiş olduğunuz linkteki dosyayı inceledim, istenen isimden kaç tane olduğunu veriyor. benim yapmak istediğimse, eğitim kayıtları sayfasında bulunan kayıtları topla çarpım ile tarayıp matris sayfasında oluşturduğum tabloyu makro haline getirerek hızlandırmak.burada fark her çalışanın aldığı her eğitime ait notu tek tabloda görmek. bunu yapabilirmiyiz?
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Sub AKTAR()
    Set S1 = Sheets("2007-EĞİTİM KAYDI")
    Set S2 = Sheets("Matris")
    SON = S1.[A65536].End(3).Row
    S2.Select
    [D3:Y65536].ClearContents
    For X = 3 To [B65536].End(3).Row
    For Y = 4 To 25
    Cells(X, Y) = Evaluate("SUMPRODUCT(--('2007-EĞİTİM KAYDI'!H2:H" & SON & "=" & Cells(X, 2).Address(0, 0) & "),--('2007-EĞİTİM KAYDI'!G2:G" & SON & "=" & Cells(2, Y).Address(0, 0) & "),('2007-EĞİTİM KAYDI'!L2:L" & SON & "))")
    Next
    Next
    Set S1 = Nothing
    Set S2 = Nothing
    MsgBox "İŞLEMİNİZ TAMAMLANMIŞTIR.", vbInformation
End Sub
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Sub AKTAR()
    Set S1 = Sheets("2007-EĞİTİM KAYDI")
    Set S2 = Sheets("Matris")
    SON = S1.[A65536].End(3).Row
    S2.Select
    [D3:Y65536].ClearContents
    For X = 3 To [B65536].End(3).Row
    For Y = 4 To 25
    Cells(X, Y) = Evaluate("SUMPRODUCT(--('2007-EĞİTİM KAYDI'!H2:H" & SON & "=" & Cells(X, 2).Address(0, 0) & "),--('2007-EĞİTİM KAYDI'!G2:G" & SON & "=" & Cells(2, Y).Address(0, 0) & "),('2007-EĞİTİM KAYDI'!L2:L" & SON & "))")
    Next
    Next
    Set S1 = Nothing
    Set S2 = Nothing
    MsgBox "İŞLEMİNİZ TAMAMLANMIŞTIR.", vbInformation
End Sub

yazdığınız kod mükemmel bir biçimde çalıştı, çok teşekkür ederim sayın cost control. ancak Cells(X, 2).Address(0, 0) ve Cells(2, Y).Address(0, 0) bu kodlarda ne yaptığınız anlayamadım, açıklayabilirmisiniz?
 
Sayın COST_CONTROL yerine ben bilgilendireyim.

Cells(X, 2).Address(0, 0)

Döngüde X değerine denk gelen satır numarası ile 2 nolu kolonun adresi.

Yani
Cells(X, 2).Address(0, 0)
X=3 ise

B3 hücresi referansını alır.

Address(1, 1) olsaydı
$B$3 (satır ve sütun sabitlenirdi) olurdu

Cells(2, Y).Address(0, 0) tam tersi

2 satır ile y' değişkenine denk gelen kolon numarasının adresi.

Y=3 ise
C2 refaransı alır.

Sub a()
For x = 1 To 5
aaa = Cells(x, 2).Address(1, 1)
Next
End Sub

kodlarını yazıp F8 ile çalıştırıp.
aaa'nın aldığı adreslere bakınız.
 
vermiş olduğunuz cevap için çok teşekkür ederim, çok bilgilendirici oldu inanın.
 
Geri
Üst