• DİKKAT

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

Liste oluşturma

Katılım
27 Mart 2008
Mesajlar
26
Excel Vers. ve Dili
Excel 2003 Tr
İyi günler üstadlar,

Aşağıdaki gibi bir listeyi oluşturmamız mümkün mü acaba?
cevaplar ve yardımlarınız için şimdiden teşekkür ederim.

Elimdeki liste ;

Hesap Kodu Evrak No Evrak Tarihi Açıklama Tutar

120.00.1706 410476 07.04.2017 KARMA KIRTASİYE 56,18
612.00.001 410476 07.04.2017 KARMA KIRTASİYE 47,61
191.01.003 410476 07.04.2017 KARMA KIRTASİYE 8,57
120.00.1706 410476 07.04.2017 KARMA KIRTASİYE 25,95
612.00.003 410476 07.04.2017 KARMA KIRTASİYE 24,03
191.01.002 410476 07.04.2017 KARMA KIRTASİYE 1,92
120.00.0487 50733 08.04.2017 EROL TİCARET 5,44
610.00.001 50733 08.04.2017 EROL TİCARET 5,04
191.01.002 50733 08.04.2017 EROL TİCARET 0,4
120.00.0487 50733 08.04.2017 EROL TİCARET 283,2
610.00.002 50733 08.04.2017 EROL TİCARET 240
191.01.003 50733 08.04.2017 EROL TİCARET 43,2

Olmasını istediğim liste ;

07.04.2017 KARMA KIRTASİYE 410476 71,64 10,49 82,13
08.04.2017 EROL TİCARET 50733 245,04 43,6 288,64
 
Örnek dosyanızı eklerseniz çok hızlı çözüm alabilirsiniz
 
120.00.1706 410476 07.04.2017 KARMA KIRTASİYE 56,18 tek hücrede mi? yoksa ayrı ayrı hücrelerde mi? Bide çıktısını istediğiniz şey 07.04.2017 KARMA KIRTASİYE 410476 71,64 10,49 82,13 Bu rakamlar bir yerden mi geliyor?
 
120.00.1706 410476 07.04.2017 KARMA KIRTASİYE 56,18 tek hücrede mi? yoksa ayrı ayrı hücrelerde mi? Bide çıktısını istediğiniz şey 07.04.2017 KARMA KIRTASİYE 410476 71,64 10,49 82,13 Bu rakamlar bir yerden mi geliyor?

üstadım excel de ayrı sütunlardaydı ama buraya kopyalayınca tek sütuna atmış.
 
aynı tarih ve fatura numaraları evrakları matrah bölümüne 6 ile başlayan hesabın toplamına, kdv bölümüne 191 ile başlayan hesabın toplamını, genel toplam bölümüne 120 ile başlayan hesabın toplamını atması lazım.
 
Yapılması zor bir işlem midir bir arkadaş bilgi verse çok makbule geçer.
 
Korhan bey yardımınız için çok teşekkürler. Ancak şöyle bir durum oluştu. bazen kdv hesabı olmuyor. siz yan tarafa bir başlık açmışsınız.matrah ve genel toplam olup kdv olmadığı zaman hem o kayıt hem de sonrasında ki kayıtları sizin örneğe göre yapamadım. bazen de liste sizin yanda eklediğiniz sırada olmuyor sistemden aldığım dökümde. sıralama yapmakta tam anlamıyla sizin ekledğiniz başlıklara uydurmak zor.çok kayıt var. vaktinizi çok almayacaksa kdv olamayan satırların da olduğu örnek dosyayı ekledim. şimdiden teşekkürler.

https://drive.google.com/file/d/0B4hURjAF15OoUEZEcXdFYkhXcjg/view?usp=sharing
 
Merhaba,

Son eklediğiniz dosyada;

İDEALİST BİLİŞİM A.Ş. isimli firmanın 218720 nolu evrak hareketinde tarih farklılığı var. 4. ve 7. aya işlemleri var. Siz bunu listede tek satırda göstermişsiniz.

Tarihlerdeki bu değerler gerçekten bu şekilde mi? Yoksa siz dosyayı eklerken hatalı bir işlem mi yaptınız?
 
üstadım dedğiniz gibi aktarırken ufak bir hata olmuş. doğrusu 3 kalemde 09.04.2017.
yoğunluktan ne yaptığımızı bile bilmiyoruz.
 
Ekli dosyayı deneyin. (Makrolu çalışma)

Kod:
Option Explicit
Sub deneme()
Dim a(), b(), d As Object, Krt As Variant
Dim i As Long, Say As Long, Son As Long
Set d = CreateObject("scripting.dictionary")
Sheets("Sayfa1").Select
Son = Cells(Rows.Count, 1).End(3).Row
a = Range("A5:E" & Son).Value
ReDim b(1 To UBound(a), 1 To 6)
For i = 1 To UBound(a)
    Krt = a(i, 3) & a(i, 4)
    If Not d.exists(Krt) Then
        Say = Say + 1
        d(Krt) = Say
        b(Say, 1) = a(i, 3)
        b(Say, 2) = a(i, 4)
        b(Say, 3) = a(i, 2)
    End If
    If Left(a(i, 1), 3) >= 600 Then
        b(d(Krt), 4) = b(d(Krt), 4) + a(i, 5)
    End If
    If Left(a(i, 1), 3) < 600 And Left(a(i, 1), 3) > 120 Then
        b(d(Krt), 5) = b(d(Krt), 5) + a(i, 5)
    End If
    If Left(a(i, 1), 3) <= 120 Then
        b(d(Krt), 6) = b(d(Krt), 6) + a(i, 5)
    End If
    Next i
    
    Range("G8:L" & Rows.Count).ClearContents
    If Say > 0 Then
        [G8].Resize(Say, 6) = b
    End If
MsgBox "İşlem tamam.....", vbInformation
End Sub

http://s9.dosya.tc/server2/j7ry8z/fatura_liste.xls.html
 

Ekli dosyalar

Üstadım benim excel seviyesi başlangıç sayılır mı bilmiyorum :) elinize sağlık ama formülden anlamadığım için hata nerede bilemiyorum. muhasebe kodlarının mantığı,listenin karışıklığı falan oturup karşılıklı şöyle şöyle olmalı diye yaparak çözülecek bir durum gözüküyor.
ziyenttin bey in makrosu ilk listede hatasız oldu ama sonra çok kayıtın olduğu listede hata verdi.
hepinize teşekkürler hayırlı Ramazanlar inşallah.
 
6 ile başlıyanları GENEL TOPLAM;120 İle başlayanları MATRAH;191 İle başlayanları KDV olarak Diğer bilgilerinide kontro ederek topla şeklinde, bazıları sizde var görünürken listede görünmüyor.Örneğin Nurettin Çetintaşta 120 ile başlayan görünmüyor.Değerleri nasıl buldunuz anlamdım.Sorunuzun çözülmesi dileğiyle.Hayırlı Ramazanlar .
 
6 ve 7 ile başlayanlar matrah, 191-391 kdv hesapları, 100-108-120-320 ile başlayanlar ise genel toplam. eyvallah sağolasınız.
 
6 ve 7 ile başlayanlar matrah, 191-391 kdv hesapları, 100-108-120-320 ile başlayanlar ise genel toplam.

Hesap kodu şartlarına göre aşağıdaki gibi deneyiniz.

Kod:
Sub deneme1()
Dim a(), b(), d As Object, Krt As Variant
Dim i As Long, Say As Long, Son As Long
Set d = CreateObject("scripting.dictionary")
Sheets("Sayfa2").Select
Son = Cells(Rows.Count, 1).End(3).Row
a = Range("A2:E" & Son).Value
ReDim b(1 To UBound(a), 1 To 6)
For i = 1 To UBound(a)
    Krt =[COLOR="Red"]a(i, 2) &[/COLOR] a(i, 3) & a(i, 4)
    If Not d.exists(Krt) Then
        Say = Say + 1
        d(Krt) = Say
        b(Say, 1) = a(i, 3)  'TARİH
        b(Say, 2) = a(i, 4)  'AÇIKLAMA
        b(Say, 3) = a(i, 2)  'EVRAK NO
    End If
    If Left(a(i, 1), 1) = 6 Or Left(a(i, 1), 1) = 7 Then
        b(d(Krt), 4) = b(d(Krt), 4) + a(i, 5)   'MATRAH
    End If
    If Left(a(i, 1), 3) = 191 Or Left(a(i, 1), 3) = 391 Then
        b(d(Krt), 5) = b(d(Krt), 5) + a(i, 5)   'KDV
    End If
    If Left(a(i, 1), 3) = 100 Or Left(a(i, 1), 3) = 108 Or Left(a(i, 1), 3) = 120 Or Left(a(i, 1), 3) = 320 Then
        b(d(Krt), 6) = b(d(Krt), 6) + a(i, 5)   'GENEL TOPLAM
    End If
    Next i
    Range("G2:L" & Rows.Count).ClearContents
    If Say > 0 Then
        [G2].Resize(Say, 6) = b
    End If
MsgBox "İşlem tamam.....", vbInformation
End Sub

NOT : Bu kod sayfa2 de tabloya göre dir.
 
Son düzenleme:
Üstadım sadece şu hata kaldı. aynı tarihte ama farklı fatura ile aynı kişiden alınan alımları birleştiriyor. tarihi değiştirince sorun kalmıyor. 23.07.2016 tarihinde ki 30681 ve 30682 nolu fatura tutarlarını 30681 olarak toplayıp listeliyor. çözümü var mıdır acaba.
 
Geri
Üst