Ana içeriğe atla

Zirve paketinden Netle E-defter uygulamasına dönüşüm yapan excel macro kodu

Zirve muhasebeci paketinden Netle e-defter uygulamasına dönüşüm yapmak için aşağıdaki excel macro kod yardımcınız olabilir. İlgili paketten ilgili döneme ilişkin "fiş listesi" excel ortamına aktarılır. excel dosyası açılır ve ikinci sheet olarak "netle" adında bir boş sayfa eklenir. macro kodlarına aşağıdaki kod eklenir ve excel macro calistir yardımı ile "Netle-Defter" formatlarına uygun çıktı alınabilir. NotBuradaki kodlar örnek veri modeli için hazırlanmıştır. Her veride kesin ve tutarlı sonuçlar vermesi beklenmemektedir. transfer aşamasında yardımcı olması adına tasarlanmıştır.
Sub NetleOlarakDuzenle()
    
'tum fisleri gez ve netle ortamına aktar
Dim newIndex As Integer
Dim lastFisNo As String
Dim lastFisTar As String
Dim lastEntryComment As String
Dim borc As Double
Dim alacak As Double
Dim itemDesc As String
Dim ht
Dim dt

Set ht = CreateObject("System.Collections.Hashtable")
Set dt = CreateObject("System.Collections.Hashtable")
' j=1 : odeme turleri fis bazında belirleniyor...
' j=2 : belirlenen odeme turleri yerine yazılıyor
For J = 1 To 2
    newIndex = 2
    For I = 1 To 7000
        If (Sheet1.Cells(I, 11) = "Fiş Tarihi :") Then
            lastFisTar = Sheet1.Cells(I, 12) & Sheet1.Cells(I, 13)
            lastEntryComment = Sheet1.Cells(I - 2, 4) & Sheet1.Cells(I - 2, 5) & Sheet1.Cells(I - 2, 6) & Sheet1.Cells(I - 2, 7)
            If (lastEntryComment = "") Then
                lastEntryComment = Sheet1.Cells(I - 1, 4) & Sheet1.Cells(I - 1, 5) & Sheet1.Cells(I - 1, 6) & Sheet1.Cells(I - 1, 7)
            End If
        End If
        If (Sheet1.Cells(I, 11) = "Fiş No :") Then
            lastFisNo = Right("00000000" & Sheet1.Cells(I, 12) & Sheet1.Cells(I, 13), 8)
        End If
        heskod = Sheet1.Cells(I, 2)
        testPos = InStr(1, heskod, "-")
        
        If (heskod > "" And testPos > 0) Then
        
            If (J = 1) Then
                If (Left(heskod, 3) = "100") Then
                    If (CStr(ht(lastFisNo)) = "") Then
                        ht(lastFisNo) = "Nakit"
                    Else
                        ht(lastFisNo) = "" 'daha onceden bulunan degeri sıfırla, aynı anda iki odeme turu olamaz
                    End If
                End If
                If (Left(heskod, 3) = "102") Then
                    If (CStr(ht(lastFisNo)) = "") Then
                        ht(lastFisNo) = "Banka"
                    Else
                        ht(lastFisNo) = "" 'daha onceden bulunan degeri sıfırla, aynı anda iki odeme turu olamaz
                    End If
                End If
                If (Left(heskod, 3) = "309") Then
                    If (CStr(ht(lastFisNo)) = "") Then
                        ht(lastFisNo) = "KrediKarti"
                    Else
                        ht(lastFisNo) = "" 'daha onceden bulunan degeri sıfırla, aynı anda iki odeme turu olamaz
                    End If
                End If
            End If
            
            borc = Sheet1.Cells(I, 11)
            alacak = Sheet1.Cells(I, 12) + Sheet1.Cells(I, 13) + Sheet1.Cells(I, 14)
            itemDesc = Sheet1.Cells(I, 7) & Sheet1.Cells(I, 8)
            
            Dim abc() As String
            abc = Split(itemDesc, "-")
            ub = UBound(abc)
            
            'detail comment hazırlanıyor
            If (ub > 3) Then
                dts = ""
                For uindex = 3 To ub
                    dts = dts & " " & abc(uindex)
                Next
                Sheet2.Cells(newIndex, 16) = dts
            End If
            If (ub = 3) Then
                Sheet2.Cells(newIndex, 16) = abc(3)
            End If
            If (ub = 2) Then
                Sheet2.Cells(newIndex, 16) = abc(2)
            End If
            
            'dokuman turu anlasiliyor
            If (J = 1 And itemDesc > "") Then
                sourceDT = abc(0)
                aktifdt = CStr(dt(lastFisNo))
                currDt = ""
                If (sourceDT = "Fatura") Then
                     currDt = "Invoice"
                End If
                If (sourceDT = "Banka Ekstresi") Then
                    currDt = "Other"
                End If
                If (sourceDT = "Makbuz") Then
                    currDt = "Receipt"
                End If
                If (sourceDT = "Uc.Bord.") Then
                    currDt = "Other"
                End If
                
                If (currDt > "") Then
                    If (currDt = "Other" Or currDt = "Invoice" Or currDt = "Check") Then
                        If (ub > 3) Then
                            Sheet2.Cells(newIndex, 14) = "'" & abc(2)
                            Sheet2.Cells(newIndex, 15) = CDate(abc(1))
                        End If
                        If (ub = 3) Then 'doctype+tar+no
                            Sheet2.Cells(newIndex, 14) = "'" & abc(2)
                            Sheet2.Cells(newIndex, 15) = CDate(abc(1))
                        End If
                        If (ub = 2) Then 'doctype+no
                            If (InStr(1, abc(1), ".") > 0) Then
                                Sheet2.Cells(newIndex, 15) = CDate(abc(1))
                            Else
                                Sheet2.Cells(newIndex, 14) = "'" & abc(1)
                            End If
                        End If
                        
                        'dokuman tarihi halen boş ise, yevmiye tarihi ile aynı giriş yap
                        If (Sheet2.Cells(newIndex, 15) = "") Then
                            Sheet2.Cells(newIndex, 15) = CDate(lastFisTar)
                        End If
                        
                    End If
                    
                    If (aktifdt = "") Then
                        dt(lastFisNo) = currDt
                    Else
                        If (aktifdt <> currDt) Then
                           Err.Raise vbObjectError + WidthErrorNumber, "", "aynı fis icinde iki tur dokuman var - " & lastFisNo
                        End If
                    End If
                End If
            End If
            
            Sheet2.Cells(newIndex, 1) = "Murat Yetkin"
            Sheet2.Cells(newIndex, 2) = CDate(lastFisTar)
            Sheet2.Cells(newIndex, 3) = CDate(lastFisTar)
            Sheet2.Cells(newIndex, 4) = "Mahsup"
            Sheet2.Cells(newIndex, 5) = "'" & lastFisNo
            Sheet2.Cells(newIndex, 6) = lastEntryComment
            Sheet2.Cells(newIndex, 7) = heskod
            Sheet2.Cells(newIndex, 8) = "TRL"
            Sheet2.Cells(newIndex, 9) = borc + alacak
            If (borc > 0) Then
                Sheet2.Cells(newIndex, 10) = "D"
            Else
                Sheet2.Cells(newIndex, 10) = "C"
            End If
            If (J = 2) Then
              odemeTuru = CStr(ht(lastFisNo))
              If (odemeTuru > "" And lastEntryComment <> "Açılış Fişi") Then
                Sheet2.Cells(newIndex, 11) = "'" & odemeTuru
              End If
              
              dstr = CStr(dt(lastFisNo))
              If (dstr > "") Then
                Sheet2.Cells(newIndex, 12) = dstr
              End If
               
              If dstr = "Other" Then
                Sheet2.Cells(newIndex, 13) = abc(0)
              End If
              
            End If
            Sheet2.Cells(newIndex, 17) = "'" & Sheet1.Cells(I, 4)
            newIndex = newIndex + 1
        End If
    Next
Next

End Sub

Bu blogdaki popüler yayınlar

Zeki sistemler

Zeki sistemler: Yapay zeka tekniklerini kullanan sistemlerdir. Sistem: Ortak bir amaca hizmet etmek için bir araya gelmiş bir ya da birden fazla elemanın uyum içinde çalışmasıdır. Melez Zeki Sistemler: Bir ya da birden fazla zeki sistemin bir araya gelmesi ve uyum için çalışmasıdır. Neden melez sisteme ihtiyaç var? Birçok iyi sistem bir araya getirilerek daha iyi sistemler oluşturulabilir. Uzman sistemlerdeki kararlılık, Genetik algoritmaların rastgeleliği ve True/False olarak ifade edilemeyen ancak yine de çözüm beklenen durumlarda bulanık sistemlerin kullanılarak "Melez Sistemlerin" tasarlanması birçok soruna çözüm sağlayabilir. Üst Zeki Sistemler: İnsan zekasına biraz daha yaklaşmayı hedefleyen ve şuan üzerinde düşündüğüm, çok daha fazla kaynak okumamı gerektiren sistemlerdir. Bu sistemlerle insan zekasına biraz daha yaklaşılması hedeflenebilir. Üst ( Meta ) Zeki Sistem (ÜZS) ile aynı anda birden fazla yapay zeka tekniği ya da alt sistemler kullanılabilir. Görüntü tanıma t

Inposia olarak «e-İrsaliye özel entegratörlük test sürecini» başarıyla tamamladık.

Göksel Üçer - Netle - Netle by Avalara

  Merhaba Arkadaşlar, Zaman çok hızlı geçiyor, biraz geç kalmış olabilirim ve Urla'daki kablosuz ağ üzerinden bu mesajımı da paylaşmak istemedim 😊 Netle'ye geçtiğim ilk yılları hatırlıyorum. Temmuz 2011 döneminde her şey bir anda olmuştu. Yönetici pozisyonundan à şirket sahibi olmak gibi durum değişikliği genelde uzun sürer, planlı olur ve stratejiler belirlenerek yapılırdı ama böyle olmadı. Hayatın bize getirdiklerine razı geldik. Her şey çok hızlı gelişti. Bir anda şirket sahibi olmuş ve diğer kurucu ortaklarımla çalışmaya başlamıştım.  Farklı hedefler, farklı çözümler ve farklı gereksinimler hep vardı ve önemlisi de bunları besleyen, büyüten, gerçekleştiren çok sıkı-yakın-dostlarım oldu. Birlikte yazdık, birlikte hayal ettik, birlikte geliştirdik ve birlikte farklı paradigmaların ulusal yazılımlarına kazanımlarını sağladık. İki ana kolda, aynı omurgada (middle-ware) tek bir şirket stratejisi ile bunu yapmak tabii ki kolay olmadı. Elde olmayan nedenlerden dolayı beklenmeyen