formülü makroya çevirme

Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
değerli üstadlarım. ekteki dosyamda formülü makroya çevirmek istiyorum. A sutununda veri var ise I:L sutunları arasındaki hesaplamaları yapmayi istiyorum. bir tanesini makro kaydet ile yaptım ama diğerlerini yapamadım. yardımlarınız için teşekkür ederim.
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Sheet1 adlı sayfanın kod kısmına aşağıdaki kodları kopyalayıp çalıştırın.

Kod:
Sub Test()
    Dim Say As Long, Bak As Long
    Dim syfEndex As Worksheet
    Dim Donem As Long
    Set syfEndex = Worksheets("Endeks")
    Say = Cells(Rows.Count, "A").End(xlUp).Row
    For Bak = 2 To Say
        Donem = Year(Cells(Bak, "E")) * 100 + Month(Cells(Bak, "E"))
        If Donem <= syfEndex.Range("A2") Then
            Cells(Bak, "I") = syfEndex.Range("B198") / syfEndex.Range("B2")
        Else
            Cells(Bak, "I") = syfEndex.Range("B198") / syfEndex.Range("A:A").Find(what:=Donem, lookat:=xlWhole)(1, 2).Value
        End If
        Cells(Bak, "J") = Cells(Bak, "C") * Cells(Bak, "I")
        Cells(Bak, "K") = Cells(Bak, "D") * Cells(Bak, "I")
        Cells(Bak, "L") = (Cells(Bak, "J") - Cells(Bak, "K")) - (Cells(Bak, "C") - Cells(Bak, "D"))
    Next
End Sub
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
üstad çok teşekkür ederim ellerinize sağlık mükemmel çalışıyor. ancak çok özür dilerim "G ve H" sutunundaki hesaplamayı da yapabilir miyiz.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu deneyin.

Kod:
Sub Test()
    Dim Say As Long, Bak As Long
    Dim syfEndex As Worksheet
    Dim Donem As Long
    Set syfEndex = Worksheets("Endeks")
    Say = Cells(Rows.Count, "A").End(xlUp).Row
    For Bak = 2 To Say
        Cells(Bak, "G") = Format(Left(Cells(Bak, "A"), 3) + Bak / 1000, "0,00")
        Cells(Bak, "H") = Format(Left(Cells(Bak, "A"), 3), "0")
        Donem = Year(Cells(Bak, "E")) * 100 + Month(Cells(Bak, "E"))
        If Donem <= syfEndex.Range("A2") Then
            Cells(Bak, "I") = syfEndex.Range("B198") / syfEndex.Range("B2")
        Else
            Cells(Bak, "I") = syfEndex.Range("B198") / syfEndex.Range("A:A").Find(what:=Donem, lookat:=xlWhole)(1, 2).Value
        End If
        Cells(Bak, "J") = Cells(Bak, "C") * Cells(Bak, "I")
        Cells(Bak, "K") = Cells(Bak, "D") * Cells(Bak, "I")
        Cells(Bak, "L") = (Cells(Bak, "J") - Cells(Bak, "K")) - (Cells(Bak, "C") - Cells(Bak, "D"))
    Next
End Sub
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
üstad G sutununda formüldeki satır değeri gelmiyor.
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
üstadım şu satırı düzeltince sorun çözüldü :
Kod:
Cells(Bak, "G") = Format(Left(Cells(Bak, "A"), 3) + Bak / 1000, "000.000")
teşekkür ederim. sağlıklı günler dilerim.
 
Katılım
2 Temmuz 2009
Mesajlar
542
Excel Vers. ve Dili
office 2019 Türkçe
Altın Üyelik Bitiş Tarihi
28/12/2022
@Muzaffer Ali üstadım merhaba. uygulamada bir değişiklik oldu. o yüzden çalışmada da revize yapmamız gerekiyor. Data sayfasında J kolonunda bulunan formülün, hesapla makrosunda düzenlenmesi gerekiyor. yani hesapla makrosunda J sutunundaki kısımları yeniden yazmak gerekiyor. desteğiniz için şimdiden teşekkür ederim.
 

Ekli dosyalar

Üst