Soru Makro ile çarpma işlemi yapıp istenen yere yazdırma

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Merhaba..
Kendimce bir Gelir - Gider çizelgesi oluşturdum. Formüller ile çalışır vaziyette ama araya satır eklediğimde veya formüllü alana yanlışlıkla işlem yaptığımda hatalar oluyor. Bu çizelgemi Makro kullanarak yapabilirmiyiz…
G sütununda G3'ten itibaren BİRİM FİATI var. H sütunundaki ADET ile çarpılıp eğer J sütununda GELİR yazıyorsa çarpımın sonucu GELİR (L) sütununa, eğer J sütununda GİDER yazıyorsa çarpımın sonucu GİDER (K) sütununa yazılacak.. '=EĞER(J3="GİDER";G3*H3;0) ve '=EĞER(J3="GELİR";G3*H3;0) formülleri ile yapılanı makro ile istiyorum..
Sonrada '=EĞER(J3="";"";M2+L3-K3) formülü ile yapıp BAKİYE (M) sütununa yazdırdığım işlemi yapınca istediğim tamam olacak..
İnşaallah meramımı anlatabilmişimdir..
Saygılarımla...

 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,182
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
Sayfanın kod bölümüne;

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 And Target.Row >= 2 Then
sat = Target.Row
If Cells(Target.Row, "j") = "GELİR" Then Cells(sat, "L") = Cells(sat, "h") * Cells(sat, "g")
If Cells(Target.Row, "j") = "GİDER" Then Cells(sat, "k") = Cells(sat, "h") * Cells(sat, "g")
End If
End Sub

Ekleyerek deneyin.
(J sütununda işlem yaptıkça ilgili satırda işlem yapar.)

Yada yine sayfanın kod bölümüne;

Sub işlem()
Range("k2:L65536").ClearContents
For i = 2 To Range("j65536").End(xlUp).Row
If Cells(i, "j") = "GELİR" Then Cells(i, "L") = Cells(i, "h") * Cells(i, "g")
If Cells(i, "j") = "GİDER" Then Cells(i, "k") = Cells(i, "h") * Cells(i, "g")
Next i
End Sub

Ekleyerek bir butona bağlayın ve deneyin.
(istediğinizde çalıştıracağınız makro)

İyi çalışmalar.
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Sayın muygun..
İlginize ve bilginize teşekkürler..
Yalnız "Sonrada '=EĞER(J3="";"";M2+L3-K3) formülü ile yapıp BAKİYE (M) sütununa yazdırdığım işlemi yapınca istediğim tamam olacak..
İnşaallah meramımı anlatabilmişimdir..
" kısmınıda makro olsun istiyorum ama yazdığımı okuyunca eksik kelam ettiğimi anladım. Sizden ricam; kodlarınıza bu eklemeyi yapmanız, çok makbule geçecek..
Saygılarımla..
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,182
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;
2 Nolu açıklamalar doğrultusunda kodları;

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 And Target.Row >= 2 Then
sat = Target.Row
If Cells(sat, "j") = "GELİR" Then Cells(sat, "L") = Cells(sat, "h") * Cells(sat, "g")
If Cells(sat, "j") = "GİDER" Then Cells(sat, "k") = Cells(sat, "h") * Cells(sat, "g")
giderr = WorksheetFunction.Sum(Range("k2" & ":k" & sat))
gelirr = WorksheetFunction.Sum(Range("L2" & ":L" & sat))
Cells(sat, "m") = gelirr - giderr
End If
End Sub

Sub işlem()
Range("k2:L65536").ClearContents
For i = 2 To Range("j65536").End(xlUp).Row
If Cells(i, "j") = "GELİR" Then Cells(i, "L") = Cells(i, "h") * Cells(i, "g")
If Cells(i, "j") = "GİDER" Then Cells(i, "k") = Cells(i, "h") * Cells(i, "g")
giderr = WorksheetFunction.Sum(Range("k2" & ":k" & i))
gelirr = WorksheetFunction.Sum(Range("L2" & ":L" & i))
Cells(i, "m") = gelirr - giderr
Next i
End Sub

Şeklinde düzenleyin.
İyi çalışmalar.
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Sayın muygun..
İlginize ve bilginize tekrar teşekkürler..
Allah razı olsun çok makbule geçti..
Konu çözülmüştür..
Saygılarımla..
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Sayın muygun..
Tablomun 1.satırında başlık 2.satırında Alttoplam yapmak için ayrılmışlardı ama K2 ve L2 hücrelerinde işlem yapınca BAKİYE (M) sütununda hatalar oluyor.. Bakabilirmisiniz..
Saygılarımla..
 

policeman

Altın Üye
Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
Altın Üyelik Bitiş Tarihi
14-01-2025
Kodlardaki K2 ve L2 ibaresini K3 ve L3 olarak düzeltince problem kalmadı..
Tekrar tekrar teşekkürler Sayın muygun saygılarımla..
 
Üst