• DİKKAT

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

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

Katılım
1 Eylül 2007
Mesajlar
387
Excel Vers. ve Dili
2003 Türkçe
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...

 
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.
 
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..
 
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.
 
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..
 
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..
 
Kodlardaki K2 ve L2 ibaresini K3 ve L3 olarak düzeltince problem kalmadı..
Tekrar tekrar teşekkürler Sayın muygun saygılarımla..
 
Geri
Üst