• DİKKAT

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

Çözüldü Bakiye Hesaplama Makrosu

Katılım
17 Aralık 2008
Mesajlar
780
Excel Vers. ve Dili
Microsoft 365
Merhaba;

Ekli dosyamda E sütunundaki bakiye sütununu doldurmak için formül oluşturdum.
Bunu kod ile yapabilmemiz mümkün mü ?
 

Ekli dosyalar

Merhaba.

Kod ile mutlaka yapılır. Ama ben bakiye formülünüzü gördüm. Ve çok daha basit daha kullanışlı bir formül önerebilirim. Sanırım muhasebe/finans işiyle ilgilenmektesiniz.
 
çoketopla fonksiyonu ile yapılmakta. Tarih Hesap Kodu Hesap Adı vb şekilde istediğin gibi ssıralama yapabilirsin. Hata almazsın. Eğer ile uğraşmaya gerek kalmaz.

=ÇOKETOPLA(C$2:C2;B$2:B2;B2)-ÇOKETOPLA(D$2:D2;B$2:B2;B2)

Ekli dosyada eğermetinse fonksiyonu ile alternatif bir formül var. Bunu da geliştirebilirsin.
 

Ekli dosyalar

Çoketopla iyiymiş.

İşyerindeki dosyamda 700.000 satır için bakiye formülü yapmıştım, sizden çoketopla ile yeni bir tane daha öğrendim.
Bu formülleri dosyaya uyguladığımda yavaşlık olacağını düşündüğüm için kod arayışına girmiştim.
Sonucu yarın göreceğim artık
 
Yediyüzbin satırlık her excel dosyası kasar. Ben sadece excel sayfasında ssıralama yaptığın zaman bozulmayacak alternatif bir formül sundum. Özelliikle karrışık sıralı muavinde bakiye kontrolü için yararlı olur. Ancak yüksek satırlı excellerde ciddi kasma yapar.
 
Kod ile daha hızlı hesaplama yapılır.
 
Selam
Deneyiniz

Kod:
Sub BakiyeHesapla()
Dim ws As Worksheet
Dim lr, i As Long
Set ws = Sheets("Sayfa1")

lr = ws.Range("A1048576").End(xlUp).Row

For i = 2 To lr
      ws.Cells(i, "E") = _
      "=IF(AND(RC[-3]=R[1]C[-3],RC[-3]<>R[-1]C[-3]),RC[-2]-RC[-1],IF(AND(RC[-3]=R[1]C[-3],RC[-3]=R[-1]C[-3]),R[-1]C+RC[-2]-RC[-1],IF(AND(RC[-3]<>R[1]C[-3],RC[-3]=R[-1]C[-3]),R[-1]C+RC[-2]-RC[-1])))"
Next i
End Sub
 
Teşekkür ederim, elinize sağlık
 
Geri
Üst