• DİKKAT

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

Verileri satırlar halinde gruplandırmak,

Katılım
10 Kasım 2016
Mesajlar
51
Excel Vers. ve Dili
Office365
Merhabalar,
Ekli dosyada hazırlanmış olan kur farklarını ilgili kodlara ve gruplara göre satırlara getirmek istiyorum.
Yani ekteki dosyadaki "Kur Farkı" sayfasında hesaplanmış tutarların,"Kayıtlar" sayfasına hesaplanma şekline göre gelmesini istiyorum.
"Kur Farkı" sayfasında B sütundaki kod "Kayıtlar" sayfasında A sütununda ki Kod alanına sırasıyla gelecek.
"Kayıtlar" sayfasındaki meblağ ise şu şekilde olmalı ;
"Kur Farkı" sayfasındaki ilgili kodun ilk rakamı 1,2 ise ve I ve J sutünlarından I (646 Gelir) sutunu dolu ise pozitif,eğer J (656 Gider) sütunu dolu ise ilgili rakamın negatif olarak gelmesi,
ilgili kodun ilk rakamı 3,4,5 ise ve I ve J sutünlarından I sutunu (646 Gelir) dolu ise negatif,eğer J (656 Gider) sütunu dolu ise ilgili rakamın pozitif olarak gelmesi,
ve son olarak koda denk gelen rakam 646-Gelir ise gelen her satırın altına yeni bir satır açılarak eğer koda 646 yazılıp ilgili tutarın negatif olması,
ve koda denk gelen rakam 656-Gider ise gelen her satırın altına yeni bir satır açılarak eğer koda 656 yazılıp ilgili tutarın pozitif olması gerekmektedir.

Ekteki dosyada "Kayıtlar" sayfasındaki bölümü yardımcı olması açısından örnek olması açısından manuel olarak her iki seçeneğe göre doldurdum.
İnşallah derdimi anlatabilmişimdir. Yardımcı olan olmayan herkese şimdiden teşekkürler.

Dosya Linki: http://www.dosya.tc/server9/nw6phv/KUR_FARKI_HESAPLAMA.xlsx.html
 
Merhaba.

Siz, KUR FARKI sayfasındaki gibi kayıtları (B, C, D, E ve H sütunu) elle yazıp tamamladıktan sonra,
bir düğmeye atanacak makro ile KAYITLAR sayfasındaki gibi bir liste mi elde etmek istiyorsunuz?
.
 
Tekrar merhaba.

Umarım isteğinizi yanlış anlamadım.
-- KUR FARKI sayfasına bir adet düğme/şekil/metin kutusu ekleyin.
-- Alt taraftan KUR FARKI sayfasının adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi seçin,
-- Açılan VBA ekranında sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
-- Sayfaya eklediğiniz düğme/şekil/metin kutusuna fareyle sağ tıklayıp MAKRO ATAyı seçin,
-- Açılan küçük ekranda KAMBIYO_KAR_ZARAR_KAYITLARI'nı fareyle seçip işlemi onaylayın.

Artık KUR FARKI sayfasındaki kayıt işlemleriniz tamamlanınca, sayfaya eklediğiniz düğme/şekil/metin kutusuna fareyle tıklarsanız
KAYITLAR sayfasında önce BORÇLU, sonra ALACAKLI kayıt olacak şekilde istenilen sonuç elde edilir.
.
Kod:
[B][COLOR="red"]Sub KAMBIYO_KAR_ZARAR_KAYITLARI()[/COLOR][/B]
Set kf = Sheets("[B]KUR FARKI[/B]"): Set k = Sheets("[B]KAYITLAR[/B]")
son = kf.Cells(Rows.Count, 2).End(xlUp).Row: k.Cells.Clear
If son < 7 Then Exit Sub
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
k.[A1] = "S.NO": k.[B1] = "KF NO": k.[C1] = "HESAP KODU": k.[D1] = "AÇIKLAMA": k.[E1] = "TUTAR"
k.[A1:E1].Font.Bold = True: k.[A1:E1].Interior.ColorIndex = 15: k.[A1:E1].Borders.LineStyle = xlContinuous

For sat = 7 To son
    If 0 + Left(kf.Cells(sat, 2), 1) < 3 And kf.Cells(sat, 7) > kf.Cells(sat, 8) Then
        borclu = kf.Cells(sat, 2): alacakli = "646-KAMBİYO KÂRLARI"
        btutar = kf.Cells(sat, 7) - kf.Cells(sat, 8)
        atutar = -1 * btutar
    ElseIf 0 + Left(kf.Cells(sat, 2), 1) < 3 And kf.Cells(sat, 7) < kf.Cells(sat, 8) Then
        borclu = "656-KAMBİYO ZARARLARI": alacakli = kf.Cells(sat, 2)
        btutar = kf.Cells(sat, 8) - kf.Cells(sat, 7)
        atutar = -1 * btutar
    ElseIf 0 + Left(kf.Cells(sat, 2), 1) > 2 And kf.Cells(sat, 7) < kf.Cells(sat, 8) Then
        borclu = kf.Cells(sat, 2): alacakli = "646-KAMBİYO KÂRLARI"
        btutar = kf.Cells(sat, 8) - kf.Cells(sat, 7)
        atutar = -1 * btutar
    ElseIf 0 + Left(kf.Cells(sat, 2), 1) > 2 And kf.Cells(sat, 7) > kf.Cells(sat, 8) Then
        borclu = "656-KAMBİYO ZARARLARI": alacakli = kf.Cells(sat, 2)
        btutar = kf.Cells(sat, 7) - kf.Cells(sat, 8)
        atutar = -1 * btutar
    End If
ksat = k.Cells(Rows.Count, "C").End(xlUp).Row + 1
k.Range(k.Cells(ksat, 3), k.Cells(ksat + 1, 3)).NumberFormat = "@"
k.Range(k.Cells(ksat, 5), k.Cells(ksat + 1, 5)).NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 "
    k.Cells(ksat, 1) = ksat - 1:            k.Cells(ksat + 1, 1) = ksat
    k.Cells(ksat, 2) = kf.Cells(sat, 1):    k.Cells(ksat + 1, 2) = kf.Cells(sat, 1)
    k.Cells(ksat, 3) = borclu:              k.Cells(ksat + 1, 3) = alacakli
    k.Cells(ksat, 4) = "KUR FARKI":         k.Cells(ksat + 1, 4) = "KUR FARKI"
    k.Cells(ksat, 5) = btutar:              k.Cells(ksat + 1, 5) = atutar
Next

k.Columns("A:E").AutoFit: k.Columns("A:B").HorizontalAlignment = xlCenter
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
k.Activate
MsgBox "İşlem tamamlandı, sonuçları kontrol ediniz.", vbInformation, "..::.. Ömer BARAN ..::.."
[B][COLOR="Red"]End Sub[/COLOR][/B]
.
 
Hayırlı akşamlar Üstat.
Makro tam istediğim şekilde olmuş.On numara çalışıyor.Elinize sağlık.Çok teşekkür ederim.
 
Geri
Üst