• DİKKAT

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

Excel'de Farklı Para Birimlerini Ayrı Ayrı Toplama

Katılım
3 Mayıs 2006
Mesajlar
112
Merhaba;

C Sütunundan her hangi bir veri seçtiğimizde, H sütununda yer alan hangi para biriminden var ise onunla ilgili toplamları sarı renkli alanlara toplamasını istiyorum.
Bu olmaz ise I sütununa H sütunundaki para birimlerinin simgelerini getirmek istiyorum.
https://we.tl/t-EvFFIZ24Wa
 
Merhaba.
Paylaşım yaptığınız site üyelik istiyor, dosya.co gibi üyelik istemeyen bir yerde paylaşırsanız daha iyi olur.
 

deneyiniz

C1 hücresine Proje seçimi için açılır liste ekledim.
C1’den proje seçince, sarı alanlardaki toplamlar para birimine göre otomatik güncelleniyor.
Doğrudan C sütunundaki herhangi bir hücreye tıklayınca çalışması için VBA/makro gerekir; mevcut dosyada makrosuz çözüm olarak bunu kurdum.
 
Merhaba.
Paylaşım yaptığınız site üyelik istiyor, dosya.co gibi üyelik istemeyen bir yerde paylaşırsanız daha iyi olur.
Bildirim için teşekkür ederim Dikkate alacağım
Merhaba;

C Sütunundan her hangi bir veri seçtiğimizde, H sütununda yer alan hangi para biriminden var ise onunla ilgili toplamları sarı renkli alanlara toplamasını istiyorum.
Bu olmaz ise I sütununa H sütunundaki para birimlerinin simgelerini getirmek istiyorum.
https://we.tl/t-EvFFIZ24Wa
Öncelikle desteğiniz için teşekkür ederim Muzaffer Bey,
Yalnız tabloya yeni veriler eklediğimde toplamaya dahil etmiyor. Ana tabloda aşağıda doğru sürekli veri girilecek. Sanırım "Yardımcı" sayfasında ana tablodaki verilerin sayısı kadar para birimleri üzerinden ilerliyor formülünüz. Aslında H sütunundaki tutarların para birimlerini ayrı bir sütuna çıkartabilirsek "Yardımcı" sayfanızdaki para birimlerine deste sağlamış olur muyuz?
 
Kod ile çözüm işinizi görürse örnek dosya ektedir.
Miktar ve Birim Fiyatı değiştiğinde kod otomatik çalışır.
 

Ekli dosyalar

Son düzenleme:
Merhaba.
Paylaşım yaptığınız site üyelik istiyor, dosya.co gibi üyelik istemeyen bir yerde paylaşırsanız daha iyi olur.
Bildirim için teşekkür ederim Dikkate alacağım
Merhaba;

C Sütunundan her hangi bir veri seçtiğimizde, H sütununda yer alan hangi para biriminden var ise onunla ilgili toplamları sarı renkli alanlara toplamasını istiyorum.
Bu olmaz ise I sütununa H sütunundaki para birimlerinin simgelerini getirmek istiyorum.
https://we.tl/t-EvFFIZ24Wa
Öncelikle desteğiniz için teşekkür ederim Muzaffer Bey,
Yalnız tabloya yeni veriler eklediğimde toplamaya dahil etmiyor. Ana tabloda aşağıda doğru sürekli veri girilecek. Sanırım "Yardımcı" sayfasında ana tablodaki verilerin sayısı kadar para birimleri üzerinden ilerliyor formülünüz. Aslında H sütunundaki tutarların para birimlerini ayrı bir sütuna çıkartabilirsek "Yardımcı" sayfanızdaki para birimlerine deste sağlamış olur muyuz?
Kod ile çözüm işinizi görürse örnek dosya ektedir.
Miktar ve Birim Fiyatı değiştiğinde kod otomatik çalışır.

Kod ile çözüm işinizi görürse örnek dosya ektedir.
Miktar ve Birim Fiyatı değiştiğinde kod otomatik çalışır.
Merhaba Muzaffer Bey,
I sütununa para birimlerini "el" ile seçmek süreci hem zorlaştırır hem de hata riskini arttırır. Örnek vermek gerekirse; H sütunundaki değer mesela dolar cinsinden. Ama I sütunundan para birimini dolar haricinden bir para birimi seçtiğimiz vakit ana toplam da yanlış olur. Çünkü sisteminiz I sütunundaki para birimleri üzerinden ilerliyor. I sütununa para birimleri el ile değil de otomatik olarak gelse bu işi çözmüş oluruz.
Ne dersiniz?
 
Merhaba,
Alternatif olsun VBA ile

Sayfa adını Sağ tıklayın Açılan menüden Kod Görüntüle tıklayın açılan pencereye kodları ekleyiniz.

C sütununda Proje adı yazan herhangi bir hücreyi tıklamanız suretiyle kodlar çalışacaktır.

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim SonSatir As Long
    Dim i As Long
    Dim Sayac As Long
    Dim SatirNo As Long
    Dim ProjeArray() As Long
   
    Dim ToplamTL As Double
    Dim ToplamUSD As Double
    Dim ToplamEUR As Double
   
    Dim HucreDeger As Variant
    Dim Bicim As String
    Dim ArananDeger As String
   
    ' Sonuçları temizle
    Me.Range("I2").Value = 0
    Me.Range("J2").Value = 0
    Me.Range("K2").Value = 0
    Me.Range("L2").Value = ""

    On Error GoTo Cikis
   
    ' Aynı anda birden fazla hücre seçildiyse çık
    If Target.CountLarge > 1 Then Exit Sub
   
    ' Sadece C sütununda çalışsın
    If Intersect(Target, Me.Columns("C")) Is Nothing Then Exit Sub
   
    ' 2. satırdan küçükse çık
    If Target.Row < 2 Then Exit Sub
   
    ' Boş hücreyse çık
    If Trim$(CStr(Target.Value)) = "" Then Exit Sub
   
    ArananDeger = Trim$(CStr(Target.Value))
    SonSatir = Me.Cells(Me.Rows.Count, "C").End(xlUp).Row
   
    ToplamTL = 0
    ToplamUSD = 0
    ToplamEUR = 0
    Sayac = 0
   
    ' C sütununda aynı değere sahip satırları ProjeArray içine at
    For i = 2 To SonSatir
        If Trim$(CStr(Me.Cells(i, "C").Value)) = ArananDeger Then
            Sayac = Sayac + 1
            ReDim Preserve ProjeArray(1 To Sayac)
            ProjeArray(Sayac) = i
        End If
    Next i
   
    ' Bulunan satırların H sütunundaki değerlerini biçimine göre topla
    If Sayac > 0 Then
        For i = 1 To Sayac
            SatirNo = ProjeArray(i)
            HucreDeger = Me.Cells(SatirNo, "H").Value
            Bicim = Me.Cells(SatirNo, "H").NumberFormatLocal
           
            If IsNumeric(HucreDeger) And Not IsEmpty(HucreDeger) Then
               
                ' USD biçimi
                If InStr(1, Bicim, "[$$-", vbTextCompare) > 0 Then
                    ToplamUSD = ToplamUSD + CDbl(HucreDeger)
               
                ' EUR biçimi
                ElseIf InStr(1, Bicim, "[$€-", vbTextCompare) > 0 Then
                    ToplamEUR = ToplamEUR + CDbl(HucreDeger)
               
                ' TL biçimi
                ElseIf InStr(1, Bicim, ChrW(8378), vbTextCompare) > 0 Then
                    ToplamTL = ToplamTL + CDbl(HucreDeger)
                End If
               
            End If
        Next i
    End If
   
    ' Sonuçları yaz
    Me.Range("I2").Value = ToplamTL
    Me.Range("J2").Value = ToplamUSD
    Me.Range("K2").Value = ToplamEUR
    Me.Range("L2").Value = ArananDeger
   
    ' Sonuç hücrelerinin biçimi
    Me.Range("I2").NumberFormatLocal = ChrW(8378) & "#.##0,00"
    Me.Range("J2").NumberFormatLocal = "[$$-en-US]#.##0,00"
    Me.Range("K2").NumberFormatLocal = "[$€-x-euro2] #.##0,00"

Cikis:
End Sub
 
Sayın @gokaytasci ben sadece 1 tane dosya paylaştım.
4 numaralı mesajı kontrol ediniz.
Sanırım sizin istediğinizi karşılıyor ama kod ile yapılmıştır.

Diğer mesajlar ve dosyalar bana ait değil.
 
Linkteki konular faydalı olabilir...

Not: Dosyalara erişim için Altın üyelik gerekir.

 
Ek olarak paylaştığım linklerde kullanılan bir tekniği açıklamak isterim...

Örnek dosyanızı açınız.
Dosyanızı Farklı Kaydet diyerek "Makro İçerebilen Excel Çalışma Kitabı" formatında kayıt ediniz.
I5 hücresini seçiniz.
Formüller sekmesinden AD YÖNETİCİSİ bölümünü açınız.
YENİ seçeneğine tıklayınız.
Açılan pencerede ilk kutuya PB yazınız. (Ben PARA BİRİMİ ni sembolize eden isim tanımladım. Siz kurallara uygun farklı isimler kullanabilirsiniz.)
En alttaki kutuya ise bu formülü yapıştırınız. =SOLDAN(AL.HÜCRE(53;'17.02.2026'!H5);1)
TAMAM diyerek işlemi tamamlayınız.
I5 hücresi aktifken =PB yazınız. Sonra alta doğru formülü sürükleyiniz.

Bu adımdan sonra H sütunundaki hücrelerin para birimleri karşınıza gelmesi gerekir.

I1 hücresine yeni TL sembolünü yazınız. ₺

I2 hücresine bu formülü uygulayınız.

=ETOPLA($I$5:$I$1000;I1;$H$5:$H$1000)

Sonra bu hücreyi kopyalayınız. Yan hücreleri seçerek özel yapıştır-formülleri diyerek formülleri yapıştırınız.

Bu şekilde para birimlerine göre sonuçları alabilirsiniz.

AD TANIMLAMA kısmında kullanılan fonksiyon ExecuteExcel4Macro fonksiyonudur.

Linkte fonksiyonun parametreleri hakkında bilgiler bulunuyor.

 
Geri
Üst