• DİKKAT

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

Macro ile matematik işlemleri

Katılım
6 Kasım 2006
Mesajlar
176
Excel Vers. ve Dili
türkçe
Macro ile sayfada matematik işlemleri yardım lütfen
L=J2*K2*4*1,2*I2
M=(C2*D2*2+E2*F2*2+G2*H2*2)*I2*1,2
AE=(L2+M2)*N2*1
AF=(AE2+O2+P2+Q2+R2+S2+T2+U2+V2)
AM=AF2+AG2+AH2+AI2+AJ2+AK2
AN=AM2/AL2
İşlemlerini macro ile 2. satırdan başlayıp sutunna yapmak istiyorum.
Eklediğim dosyada 2. satırda formül halinde var sarı renk sütunlarda yazdığım işlemleri yapmak istiyorum.Şöyle anlatayım L sütünuna J2*K2*4*1,2*I2 formülünü uygulamak istiyorum.Bu konuda bilgisi olan arkadaşlar yardımcı olursanız çok sevinirim teşekkürler.
 

Ekli dosyalar

Son düzenleme:
Tüm Satıra mı uygulanacak..(65536 mı ?)
 
Bunu Dene

Sub Hesapla()
[L2] = [J2] * [K2] * 4 * (1.2) * [I2]
[M2] = (([C2] * [D2] * 2) + ([E2] * [F2] * 2) + ([G2] * [H2] * 2)) * [I2] * (1.2)
[AE2] = ([L2] + [M2]) * [N2] * 1
[AF2] = [AE2] + [O2] + [P2] + [Q2] + [R2] + [S2] + [T2] + [U2] + [V2]
[AM2] = [AF2] + [AG2] + [AH2] + [AI2] + [AJ2] + [AK2]
[AN2] = [AM2] / [AL2]

Range("L2:M2").Select
Selection.AutoFill Destination:=Range("L2:M65536"), Type:=xlFillDefault
Range("L2:L65536").Select
Range("AE2:AF2").Select
Selection.AutoFill Destination:=Range("AE2:AF65536"), Type:=xlFillDefault
Range("AE2:AF65536").Select
Range("AN2:AM2").Select
Selection.AutoFill Destination:=Range("AN2:AM65536"), Type:=xlFillDefault
Range("AN2:AM65536").Select
Range("A2").Select
End Sub

Burada Formülü nasıl makroya çevirdiğim açık görülüyor.
Kırmızı alanlar formüllerin
Diğer taraf aşağıya doğru kopyala komutu..
 
Mustafa bey bu şekilde oldu ama digerlerine yapamadım
Kod:
Sub Hesapla() 'L=J2*K2*4*1,2*I2
For i = 2 To Range("l65536").End(3).Row
Range("l" & i).Value = Range("j" & i).Value * Range("k" & i).Value * 4 * 1.2 * Range("ı" & i).Value
Next i
End Sub

'M=(C2*D2*2+E2*F2*2+G2*H2*2)*I2*1,2
'AE = (L2 + M2) * N2 * 1
'AF = (AE2 + O2 + P2 + Q2 + R2 + S2 + T2 + U2 + V2)
'AM = AF2 + AG2 + AH2 + AI2 + AJ2 + AK2
'AN = AM2 / AL2
 
Döngü ile yapalım Kardeşim

A sütunu 1 den küçükse ise işlem yapmaz

Sub Hesapla()
Range("L2:M" & Rows.Count).ClearContents
Range("AE2:AF" & Rows.Count).ClearContents
Range("AM2:AN" & Rows.Count).ClearContents
mm = 2
For MSTF = 2 To Sheets("Sayfa1").Cells(65536, "A").End(xlUp).Row
If Cells(mm, "a") > 0 Then
Cells(mm, "L") = Cells(mm, "J") * Cells(mm, "K") * 4 * (1.2) * Cells(mm, "I")
'Buraya Diğer Formüllerini yaz
End If
mm = mm + 1
Next
End Sub

Bunu dene bakalım..
 
Son düzenleme:
Kod:
Sub Hesapla()
For i = 2 To Range("l65536").End(3).Row
Range("l" & i).Value = Range("j" & i).Value * Range("k" & i).Value * 4 * 1.2 * Range("ı" & i).Value 'L=J2*K2*4*1,2*I2
Range("am" & i).Value = Range("af" & i).Value + Range("ag" & i).Value + Range("aı" & i).Value + Range("aj" & i).Value + Range("ak" & i).Value 'AM = AF2 + AG2 + AH2 + AI2 + AJ2 + AK2
Range("m" & i).Value = (Range("c" & i).Value * Range("d" & i).Value * 2 + Range("e" & i).Value * Range("f" & i).Value * 2 + Range("g" & i).Value * Range("h" & i).Value * 2) * Range("ı" & i).Value * 1.2 'M=(C2*D2*2+E2*F2*2+G2*H2*2)*I2*1,2
Range("ae" & i).Value = (Range("l" & i).Value + Range("m" & i).Value) * Range("n" & i).Value * 1 'AE = (L2 + M2) * N2 * 1
Range("af" & i).Value = Range("ae" & i).Value + Range("o" & i).Value + Range("p" & i).Value + Range("q" & i).Value + Range("r" & i).Value + Range("s" & i).Value + Range("t" & i).Value + Range("u" & i).Value + Range("v" & i).Value 'AF = (AE2 + O2 + P2 + Q2 + R2 + S2 + T2 + U2 + V2)
Range("an" & i).Value = (Range("am" & i).Value / Range("al" & i).Value) 'AN = AM2 / AL2

Next i
End Sub
bu şekilde oldu ama bu kezde run-time error '6'overflow hatası verdi
 
Kardeş Kur sütunu boş olunca hata aldım
Kur sütunu boş ise hesaplama yapma komutu ile düzelttim.
Bu durumda
A sütunu ve AL sütunundan biri boş ise hesaplama yapmayacaktır.

Yeni kod aşağıda

Sub Hesapla()
Range("L2:M" & Rows.Count).ClearContents
Range("AE2:AF" & Rows.Count).ClearContents
Range("AM2:AN" & Rows.Count).ClearContents
mm = 2
On Error Resume Next
For MSTF = 2 To Sheets("Sayfa1").Cells(65536, "A").End(xlUp).Row
If Cells(mm, "a") > 0 And Cells(mm, "al") > 0 Then
Cells(mm, "L") = Cells(mm, "J") * Cells(mm, "K") * 4 * (1.2) * Cells(mm, "I")
Cells(mm, "M") = ((Cells(mm, "c") * Cells(mm, "d") * 2) + (Cells(mm, "e") * Cells(mm, "f") * 2) + (Cells(mm, "g") * Cells(mm, "h") * 2)) * Cells(mm, "I") * (1.2)
Cells(mm, "AE") = (Cells(mm, "L") * Cells(mm, "M")) * Cells(mm, "N")
Cells(mm, "AF") = Cells(mm, "AE") + Cells(mm, "O") + Cells(mm, "P") + Cells(mm, "Q") + Cells(mm, "R") + Cells(mm, "S") + Cells(mm, "T") + Cells(mm, "U") + Cells(mm, "V")
Cells(mm, "AM") = Cells(mm, "AF") + Cells(mm, "G") + Cells(mm, "H") + Cells(mm, "I") + Cells(mm, "J") + Cells(mm, "K")
Cells(mm, "AN") = Cells(mm, "AM") / Cells(mm, "AL")
End If
mm = mm + 1
Next
End Sub
 
Mustafa bey ilginize teşekkürler evet hesap yaptı ama hatalı sonuçlar veriyor
hatalı olanlar
ae=4.31
ae=9.81
am=15.70
an=7.13 şeklinde gerçek cevaplar.
 
Kod:
Sub Hesapla()
For i = 2 To Range("l65536").End(3).Row
If Cells(i, 1) <> "" Then
Range("l" & i).Value = Range("j" & i).Value * Range("k" & i).Value * 4 * 1.2 * Range("ı" & i).Value 'L=J2*K2*4*1,2*I2
Range("am" & i).Value = Range("af" & i).Value + Range("ag" & i).Value + Range("aı" & i).Value + Range("aj" & i).Value + Range("ak" & i).Value 'AM = AF2 + AG2 + AH2 + AI2 + AJ2 + AK2
Range("m" & i).Value = (Range("c" & i).Value * Range("d" & i).Value * 2 + Range("e" & i).Value * Range("f" & i).Value * 2 + Range("g" & i).Value * Range("h" & i).Value * 2) * Range("ı" & i).Value * 1.2 'M=(C2*D2*2+E2*F2*2+G2*H2*2)*I2*1,2
Range("ae" & i).Value = (Range("l" & i).Value + Range("m" & i).Value) * Range("n" & i).Value * 1 'AE = (L2 + M2) * N2 * 1
Range("af" & i).Value = Range("ae" & i).Value + Range("o" & i).Value + Range("p" & i).Value + Range("q" & i).Value + Range("r" & i).Value + Range("s" & i).Value + Range("t" & i).Value + Range("u" & i).Value + Range("v" & i).Value 'AF = (AE2 + O2 + P2 + Q2 + R2 + S2 + T2 + U2 + V2)

Range("an" & i).Value = (Range("am" & i).Value / Range("al" & i).Value) 'AN = AM2 / AL2
End If
Next i
End Sub
bu şekilde oluyor ama sadece 2. satırda yaptı tüm sayfada nasıl yaparım.
 

Ekli dosyalar

Son düzenleme:
Geri
Üst