Makro İle Şarta Göre Hesaplama

Katılım
7 Şubat 2021
Mesajlar
575
Excel Vers. ve Dili
2010, Türkiye
Merhabalar;
Eğer D15:AH15 hücreleri arasında herhangi bir hücrede AT yazılı ise AI15 hücresindeki veriyi AW15 ve AY15 hücresine yaz ve 10 ile çarp AX15 hücresine yaz
Eğer D15:AH15 hücreleri arasında herhangi bir hücrede AT yazılı değilse ise AI15 hücresindeki veriyi AY15 hücresine yaz.
NOT:Hesaplama işlemi D15:AH100 hücreleri arasındaki tüm satırlarda olacak.Formül ile oluyor. Fakat üzerinde değişiklik yapacağım için makro ile yapılmasını istiyorum.Birde bu işlem buton ile değilde hangi satırda işlem yaparsam o satırda makro hesaplama yapabilir mi? .Yardımcı olursanız sevinirim.
DOSYA LİNK: https://dosya.co/370ersvb80m7/Hesap.xlsx.html
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,691
Excel Vers. ve Dili
2021 Türkçe
Merhaba.

Aşağıdaki kodu "ÖZEL BÜTÇE-Kadrolu" sayfasının kod sayfasına kopyalyın.
D15:AH100 aralığında bir değişiklik yaptığınızda aynı satırdaki belirttiğiniz kısmın hesaplaması otomatik yapılır.

C:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D15:AH100")) Is Nothing Then
        If WorksheetFunction.CountIf(Range("D" & Target.Row & ":AH" & Target.Row), "AT") > 0 Then
            Range("AW" & Target.Row).Value = Range("AI" & Target.Row).Value
            Range("AY" & Target.Row).Value = Range("AI" & Target.Row).Value
            Range("AX" & Target.Row).Value = Range("AI" & Target.Row).Value * 10
        Else
            Range("AW" & Target.Row).Value = ""
            Range("AX" & Target.Row).Value = ""
            Range("AY" & Target.Row).Value = Range("AI" & Target.Row).Value
        End If
    End If
End Sub
Not: Eğer AI:AQ aralığındaki formüllerin de kod ile hesaplanmasını isterseniz onlar da yapılabilir.
 
Katılım
7 Şubat 2021
Mesajlar
575
Excel Vers. ve Dili
2010, Türkiye
Merhaba.

Aşağıdaki kodu "ÖZEL BÜTÇE-Kadrolu" sayfasının kod sayfasına kopyalyın.
D15:AH100 aralığında bir değişiklik yaptığınızda aynı satırdaki belirttiğiniz kısmın hesaplaması otomatik yapılır.

C:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D15:AH100")) Is Nothing Then
        If WorksheetFunction.CountIf(Range("D" & Target.Row & ":AH" & Target.Row), "AT") > 0 Then
            Range("AW" & Target.Row).Value = Range("AI" & Target.Row).Value
            Range("AY" & Target.Row).Value = Range("AI" & Target.Row).Value
            Range("AX" & Target.Row).Value = Range("AI" & Target.Row).Value * 10
        Else
            Range("AW" & Target.Row).Value = ""
            Range("AX" & Target.Row).Value = ""
            Range("AY" & Target.Row).Value = Range("AI" & Target.Row).Value
        End If
    End If
End Sub
Not: Eğer AI:AQ aralığındaki formüllerin de kod ile hesaplanmasını isterseniz onlar da yapılabilir.
Muzaffer bey çok teşekkür ederim emeğinize sağlık
 
Üst