• DİKKAT

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

formülü makroya çevirme

abdullahss

Altın Üye
Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
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

Sonucu yazdıracağınız hücreyi [a1] olarak varsayarsak;
If [u4] > 0.8 Then [a1] = ([u4] - 0.8) * 2 Else [a1] = "Prim Yok"
 
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:
bu formülü nasıl macro ile yapabilirim yardımcı olabilirmisiniz.


c14=C12*C13*4*1,2*C11
 
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.
 
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
 
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]
 
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:
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]
 
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:
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:
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
 
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
 
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.
 
Geri
Üst