Yevmiye Defteri

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
iyi günler; kullandığım makroyu revize etmek istiyorum. Şöyle ki, hesap kod' unun karşısındaki isminde listeleme de yer alması şeklinde, örnek dosyayı yüklüyorum. Teşekkürler.
Kod:
Sub yevmiye_duzenle()
   sonsatir = Cells(Rows.Count, "B").End(3).Row + 1
   Range("F5:M" & sonsatir).ClearContents
  
   satir = 4
   For i = 4 To sonsatir
     maddeno = Cells(i, "A").Value
      tarihaciklama = Cells(i, "B").Value
     If Cells(i, "B").Value = "T O P L A M" Then Exit Sub


      If Left(maddeno, 1) = "-" Then
        madde = Replace(Replace(maddeno, " ", ""), "-", "")
        tarih = sayiayir(tarihaciklama)
        althesap = ""
        anakod = ""
        GoTo son
     End If
    
     If InStr(maddeno, " ") > 0 Then
        althesap = maddeno
        GoTo son
     End If
    
     If 0 + maddeno > 0 Then
        anakod = maddeno
        althesap = ""
     End If
    
son:
     If althesap <> "" And maddeno = "" Then
        satir = satir + 1
        aciklama = Cells(i, "B").Value
        borc = Cells(i, "C").Value
        alacak = Cells(i, "D").Value
        
        Cells(satir, "F").Value = madde
        Cells(satir, "G").Value = tarih
        Cells(satir, "H").Value = anakod
        Cells(satir, "I").Value = althesap
        Cells(satir, "J").Value = tarihaciklama
        Cells(satir, "K").Value = aciklama
        Cells(satir, "L").Value = borc
        Cells(satir, "M").Value = alacak
        borc = ""
        alacak = ""
        aciklama = ""
        tarihaciklama = ""
     End If
   Next i
End Sub

Function sayiayir(sadecesayistr)
  liste = "0123456789."
  For k = 1 To Len(sadecesayistr)
    harf = Mid(sadecesayistr, k, 1)
    If InStr(liste, harf) > 0 Then
       sayi = sayi & harf
    End If
  Next k
  sayiayir = sayi
End Function
 

Ekli dosyalar

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,892
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Şablon sabitse, hesap isminin altında her zaman açıklama varsa.
Bu değişiklik ile olabilir.

satir = 4
For i = 4 To sonsatir
maddeno = Cells(i, "A").Value
tarihaciklama = Cells(i - 1, "B").Value
If Cells(i, "B").Value = "T O P L A M" Then Exit Sub
.
 
Üst