formülü makroya çevirme

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
aşagıdaki eger formülünü macroya nasıl çevirebiliriz

=EĞER(U4>0,8;(U4-0,8)*2;"Prim Yok")

Cells(sat, "v") = (Cells(sat, "u") > 80) * 2
 

Ekli dosyalar

Katılım
5 Aralık 2007
Mesajlar
635
Excel Vers. ve Dili
Office 2007
Altın Üyelik Bitiş Tarihi
08-05-2021
Sonucu yazdıracağınız hücreyi [a1] olarak varsayarsak;
If [u4] > 0.8 Then [a1] = ([u4] - 0.8) * 2 Else [a1] = "Prim Yok"
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
teşekkürler sizin yardımınızla çözdüm
Kod:
If Cells(sat, "u") > 0.8 Then Cells(sat, "v") = (Cells(sat, "u") - 0.8) * 2 Else Cells(sat, "v") = "Prim Yok"
 
Son düzenleme:

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
bu formülü nasıl macro ile yapabilirim yardımcı olabilirmisiniz.


c14=C12*C13*4*1,2*C11
 
Katılım
20 Temmuz 2012
Mesajlar
61
Excel Vers. ve Dili
2007
Merhaba, alttaki gibi kullanabilirsiniz ondalıklı sayılarda hatalı sonuç verebilir.
Kod:
range("c14").value=range("c12").value*range("c13").value*4*1,2*range("c11").value
Onun içinde cdbl() içine alabilirsiniz. Ancak hücreler boşsa hata verecektir.

Kod:
range("c14").value=cdbl(range("c12").value)*cdbl(range("c13").value)*4*1,2*cdbl(range("c11").value)
Hata vermesini engellemek için satırın üstüne "on error resume next" kodunu ekleyin. Hata vermeyecek ama işlemde yapmayacaktır.
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
bende bu şekilde denedim hata verdi sizin dediğiniz gibi deneycem birde

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b1:d40]) Is Nothing Then Exit Sub
sat = Target.Row
Range("C14") = (Range("c12") + Range("c13")) * 4 * 1.2 * Range("C11")
End Sub
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
2. verdiğiniz örnek oldu teşekkür ederim
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
bu kodda hata nerde yapıyorum acaba

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [b1:d40]) Is Nothing Then Exit Sub
sat = Target.Row
Range("C14") = (Range("c12") + Range("c13")) * 4 * 1.2 * Range("C11")
End Sub
[/quote]
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
makro ile hücrede topla,böl,çarp

Yapmam gereken
c14=C12*C13*4*1,2*C11
c15=(C5*C6*2+C7*C8*2+C9*C10*2)*C11*1,2
c17=(C14+C15)*C16*1
c26=TOPLA(C17:C25)
c27=C26*B27
Yaptığım
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("b1:d35")) Is Nothing Then Exit Sub
Range("C14").Value = (Range("c12").Value * Range("c13").Value) * 4 * 1.2 * Range("C11").Value
Range("c15").Value = ((Range("c5").Value) + (Range("c6").Value) * 2 + (Range("c7").Value) + (Range("c8").Value) * 2 + (Range("c9").Value) + (Range("c10").Value) * 2) * (Range("c11").Value) * 1.2
Range("c17").Value = ((Range("c14").Value) + (Range("c15").Value)) * (Range("c16").Value) * 1
Range("c26").Value = (Range("17").Value) + (Range("c18").Value) + (Range("c19").Value) + (Range("c20").Value) + (Range("c21").Value) + (Range("c22").Value) + (Range("c23").Value) + (Range("c24").Value) + (Range("c25").Value)
Range("c27").Value = (Range("26").Value) * (Range("c27").Value)
End Sub
Ama olmadı tekrar yol göstermeniz mümkünmüdür.
 
Son düzenleme:

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
Kod:
Yapmam gereken
c14=C12*C13*4*1,2*C11
c15=(C5*C6*2+C7*C8*2+C9*C10*2)*C11*1,2
c17=(C14+C15)*C16*1
c26=TOPLA(C17:C25)
c27=C26*B27
Yaptığım
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("b1:d35")) Is Nothing Then Exit Sub
Range("C14").Value = (Range("c12").Value * Range("c13").Value) * 4 * 1.2 * Range("C11").Value
Range("c15").Value = ((Range("c5").Value) + (Range("c6").Value) * 2 + (Range("c7").Value) + (Range("c8").Value) * 2 + (Range("c9").Value) + (Range("c10").Value) * 2) * (Range("c11").Value) * 1.2
Range("c17").Value = ((Range("c14").Value) + (Range("c15").Value)) * (Range("c16").Value) * 1
Range("c26").Value = (Range("17").Value) + (Range("c18").Value) + (Range("c19").Value) + (Range("c20").Value) + (Range("c21").Value) + (Range("c22").Value) + (Range("c23").Value) + (Range("c24").Value) + (Range("c25").Value)
Range("c27").Value = (Range("26").Value) * (Range("c27").Value)
End Sub
[/code]Ama olmadı tekrar yol göstermeniz mümkünmüdür.
Merhaba Kodlarınızı şu şekilde değiştirip denermisiniz
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("b4:b35, c4:c13, c16:c16,c18:c25,c27,c32")) Is Nothing Then Exit Sub
   On Error Resume Next
Range("C14").Value = (Range("c12").Value * Range("c13").Value) * 4 * 1.2 * Range("C11").Value
Range("c15").Value = ((Range("c5").Value + Range("c6").Value) * 2 + (Range("c7").Value + Range("c8").Value) * 2 + (Range("c9").Value + Range("c10").Value) * 2) * Range("c11").Value * 1.2
Range("c17").Value = (Range("c14").Value + Range("c15").Value) * Range("c16").Value * 1
Range("c26").Value = (Range("c17").Value + Range("c18").Value + Range("c19").Value + Range("c20").Value + Range("c21").Value + Range("c22").Value + Range("c23").Value + Range("c24").Value + Range("c25").Value)

Range("c27").Value = (Range("26").Value * Range("c27").Value)

End Sub[/QUOTE]
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
ilğinize teşekkürler Numan bey malesef olmadı On Error Resume Next dediğimizde hatayı görmezden geliyor hesaplama hataları başlıyor
 
Son düzenleme:

numan şamil

Destek Ekibi
Destek Ekibi
Katılım
27 Ocak 2011
Mesajlar
1,231
Excel Vers. ve Dili
Ofis 2013 Türkçe
ilğinize teşekkürler Numan bey malesef olmadı On Error Resume Next dediğimizde hatayı görmezden geliyor hesaplama hataları başlıyor
Merhaba
Hesaplamalardaki "C" sutunundaki hücrelerde yazılan rakkamların hepsinin , olması örn = 0,14 gibi dikkat etmelisiniz 0.14 olmamalı
Hesaplamada olması gerekenleri Hücrelere manuel girip örnek dosya eklermisiniz mümkünse 2003 formatında
Ayrıca ekli dosyayı incelermisiniz
 

Ekli dosyalar

Son düzenleme:

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
Numan bey hata vermiyor işlem yapıyor yanlış işlem yapıyor ama sonuçlar farklı çıkıyor örnekte yazdım doğrusunu
 

Ekli dosyalar

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
konu bayağı ilgi çekmiş ama hala çözemedik
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
böyle yaptım oda olmadı
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("b4:b35, c4:c13, c16:c16,c18:c25,c27,c32")) Is Nothing Then Exit Sub
   
Range("c14").Formula = "=c12*c13 * 4*1,2 * C11"
Range("c15").Formula = "=(((c5*c6)*2) +((c7*c8*) 2) +((c9*c10)*2))*C11*1,2  "
Range("c17").Formula = "=(C14+C15)*C16*1"
Range("c26").Formula = "=(C17+c18+c19+c20+c21+c22+c23+c24+c25)"
Range("c27").Formula = "=C26*B27"
End Sub
 
Katılım
2 Mart 2005
Mesajlar
556
Excel Vers. ve Dili
Office 2013 Türkçe
Sayın abdullahss,
Eklediğiniz örnekte bazı yerlerde çarpma yerine toplama yaptırmışsınız.O yüzden hatalı işlem yapıyordu.Son haliyle bir sıkıntı yok gibi.Kontrol eder misiniz?

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("b4:b35, c4:c14,c15:c16,c18:c25,c27,c32")) Is Nothing Then End

Range("C14").Value = (Range("c12").Value * Range("c13").Value) * 4 * 1.2 * Range("C11").Value
Range("c15").Value = ((Range("c5").Value * Range("c6").Value) * 2 + (Range("c7").Value * Range("c8").Value) * 2 + (Range("c9").Value * Range("c10").Value) * 2) * Range("c11").Value * 1.2
Range("c17").Value = (Range("c14").Value + Range("c15").Value) * Range("c16").Value * 1
Range("c26").Value = WorksheetFunction.Sum(Range("C17:C25")) '(Range("c17").Value + Range("c18").Value + Range("c19").Value + Range("c20").Value + Range("c21").Value + Range("c22").Value + Range("c23").Value + Range("c24").Value + Range("c25").Value)

Range("c27").Value = (Range("C26").Value * Range("b27").Value)

End Sub
 

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Altın Üyelik Bitiş Tarihi
05-04-2026
sayın bedersu
çok teşekkür ederim pes etmek üzereydim imdada yetiştiniz.Ayrıca konuda yardımcı olan diğer arkadaşlarada çok teşekkürler.
 
Üst