• DİKKAT

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

ToplaÇarpım Hk.

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,992
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Selamlar
Arkadaşlar
Aşağıdaki kod satırında ki R2:R10000 aralığı aslında A2:A10000 aralığı ben bunu yardımcı sütunla yaptım.

Yardımcı sütun kullanmadan A2:A10000 aralığını kod içinde metne çevirerek (Ay adı olarak) yapmak istiyorum.
Nasıl yapabilirim?

Saygılar

Kod:
 sonuc = s2.Evaluate("=sumproduct((R2:R10000=Q1)*(B2:B10000=P1)*(C2:C10000))")
 

Ekli dosyalar

Neden böyle bir uygulamaya ihtiyaç duyduğunuzu anlayamadım. İnputbox kullanarak veri girmek her zaman hataya müsaittir, yazım hataları makronun hata vermesine neden olur. Yerinizde olsam inputbox yerine veri doğrulama ya da listbox/combobox gibi çözümler denerdim.

İlla böyle olsun istiyorsanız R1 hücresinde aşağıdaki formülü kullanır ve makroda da bu hücreden sonuç alabilirsiniz:

=TOPLA.ÇARPIM((METNEÇEVİR(A2:A10000;"aaaa")=Q1)*(B2:B10000=P1)*C2:C10000)

Ya da dosyanızın mevcut halinde aşağıdaki kodları da kullanabilirsiniz:

PHP:
Sub DoluÇerçeve1_Tıklat()
Set s2 = Sheets("veri")
    Sec = InputBox("Ay İsmi Giriniz", "LÜTFEN")
    sec1 = InputBox("Ürün Adı Girinizi", "LÜTFEN")
    If Sec <> "" Then
        s2.Range("Q1") = Sec
    End If
    
    If sec1 <> "" Then
        s2.Range("P1") = sec1
    End If
    Select Case UCase(Replace(Replace(Sec, "ı", "I"), "i", "İ"))
        Case "OCAK": ay = 1
        Case "ŞUBAT": ay = 2
        Case "MART": ay = 3
        Case "NİSAN": ay = 4
        Case "MAYIS": ay = 5
        Case "HAZİRAN": ay = 6
        Case "TEMMUZ": ay = 7
        Case "AĞUSTOS": ay = 8
        Case "EYLÜL": ay = 9
        Case "EKİM": ay = 10
        Case "KASIM": ay = 11
        Case "ARALIK": ay = 12
    End Select
    sonuc = s2.Evaluate("=sumproduct((MONTH(a2:a10000)=" & ay & ")*(B2:B10000=P1)*(C2:C10000))")
    MsgBox s2.Range("Q1") & " Ayında" & vbCrLf & s2.Range("P1") & " Ürününden" & vbCrLf & sonuc & " Adet Satılmıştır.", vbInformation, "BİLGİ MESAJI"
End Sub
 
Selamlar
@YUSUF44 hocam öncelikle çok teşekkür ederim. Hocam doğruyu söylemek gerekirse Combobox ın Change olayı ile denedim yapamadım.

Saygılar
 
Selamlar

@YUSUF44 hocam sizin kodlarınızdan yararlanarak Combobox ile yaptım. Çok teşekkür ederim.

Saygılar

Kod:
Set s2 = Sheets("veri")
Set s1 = Sheets("ana")
    Sec = s1.ComboBox1.Value
    sec1 = s1.ComboBox2.Value
    If Sec <> "" Then
        s2.Range("Q1") = Sec
    End If
    
    If sec1 <> "" Then
        s2.Range("P1") = sec1
    End If
    Select Case UCase(Replace(Replace(Sec, "ı", "I"), "i", "İ"))
        Case "OCAK": ay = 1
        Case "ŞUBAT": ay = 2
        Case "MART": ay = 3
        Case "NİSAN": ay = 4
        Case "MAYIS": ay = 5
        Case "HAZİRAN": ay = 6
        Case "TEMMUZ": ay = 7
        Case "AĞUSTOS": ay = 8
        Case "EYLÜL": ay = 9
        Case "EKİM": ay = 10
        Case "KASIM": ay = 11
        Case "ARALIK": ay = 12
    End Select
    sonuc = s2.Evaluate("=sumproduct((MONTH(a2:a10000)=" & ay & ")*(B2:B10000=P1)*(C2:C10000))")
    MsgBox s2.Range("Q1") & " Ayında" & vbCrLf & s2.Range("P1") & " Ürününden" & vbCrLf & sonuc & " Adet Satılmıştır.", vbInformation, "BİLGİ MESAJI"
 
Ekli dosyada bir şeyler yapmaya çalıştım. Ben de bu vesileyle sql'de toplam alma özelliğini öğrenmiş oldum :)
 

Ekli dosyalar

Selamlar

Hocam aslında güzel olmuş ama sanki doğru sonuç vermiyor

Saygılar229645
 
Cepten baktığımdan kontrol edemem. Listbox change kodlarında if sorgusunu eksik yaptım muhtemelen. Sabah düzeltirim inşallah.
 
Yanlış hatırlamıyorsam şöyle düzeltebilirsiniz:

İf sorgusunda Total=0 ya da Total>0 diye sorgulamıştım. Orda Total yerine rs.fields("Total") yazarak deneyin.
 
Selamlar
Hocam dediğiniz yeri değiştirdim düzeldi.
teşekkür ederim. Elinize sağlık

Saygılar
 
Bende öyle bir hata vermiyor. Dosyada değişiklik yaptınız mı? Yaptıysanız hatalı haliyle paylaşır mısınız?
 
Selamlar
Hocam hiçbir değişiklik yapmadım. veri sayfası Tarih kısmında olmayan bir ay seçildiğinde yapıyor.
Listedeki 7 ve 8. ayları seçtiğimde hata vermiyor.

Saygılar
 

Ekli dosyalar

Yanlış hatırlamıyorsam şöyle düzeltebilirsiniz:

İf sorgusunda Total=0 ya da Total>0 diye sorgulamıştım. Orda Total yerine rs.fields("Total") yazarak deneyin.
Selamlar
Hocam hiçbir değişiklik yapmadım. veri sayfası Tarih kısmında olmayan bir ay seçildiğinde yapıyor.
Listedeki 7 ve 8. ayları seçtiğimde hata vermiyor.

Saygılar
Ben Total yerine rs.fields("Total") yazın demiştim ama siz Total>0 yerine yapmışsınız yani >0 kısmını silmişsiniz.
 
Selamlar

Evet hocam şimdi dediğiniz şekilde düzelttim hata vermedi .
Çok teşekkür ederim.

Saygılar
 
Geri
Üst