makroda kod değişimi

Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
merhaba arkadaşlar aşağıdaki kod sorunsuz işimi goruyor ama biraz ufak sıkıntım var söyle anlatıyım bi tane sayfam var csutununda m3 h sutununda m2 I sutununda toplamm3 var k sutununda fire ve l sutunundada verim var ben buraya bilgileri girdikce userformdan otomatik olarak sayfa ya giriyor ve tüm işlemleri yapior sorunsuz olarak aşağıdaki kodda

Sub aaa()
For a = 1 To Sheets.Count
If Sheets(a).Name = "Anasayfa" Then GoTo 10
syf = Sheets(a).Name
Sheets(syf).Select
son = Cells(65536, 1).End(xlUp).Row

For i = son To 5 Step -1

If WorksheetFunction.CountIf(Range("b5:b" & i), Cells(i, 2)) = 1 Then

isim = Cells(i, 2).Value
deger = Cells(i, 3).Value
toplam = Evaluate("SUMPRODUCT((" & syf & "!b5:b55000=""" & isim & """)*(" & syf & "!I5:I55000))")
Cells(i, 11) = toplam - deger
Cells(i, 12) = toplam / deger
End If
Next
10 Next
End Sub


Benim istediğim olay verimi sürekli topluyor verimi toplaması değilde verimi c sütünündeki m3 ile I sutunundaki m3 bolecek ve 100 le carpim verimi vercek yani CSUTUNU/ISUTUNU*100 seklinde bilgiler girildikce bu şekilde vermesini istiorum şimdiden ilginize tşkler iyi çalışmalar
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
Benim istediğim olay verimi sürekli topluyor verimi toplaması değilde verimi c sütünündeki m3 ile I sutunundaki m3 bolecek ve 100 le carpim verimi vercek yani CSUTUNU/ISUTUNU*100 seklinde bilgiler girildikce bu şekilde vermesini istiorum şimdiden ilginize tşkler iyi çalışmalar
bu kodu dener misiniz ?
...................
For i = 1 To [C65536].End(3).Row
For x = 1 To [I65536].End(3).Row
veri = Val(cells(i,"C") / Val(cells(x,"I") * 100
Next
Next
...................
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
sayın emre

Sub aaa()
For a = 1 To Sheets.Count
If Sheets(a).Name = "Anasayfa" Then GoTo 10
syf = Sheets(a).Name
Sheets(syf).Select
son = Cells(65536, 1).End(xlUp).Row

For i = son To 5 Step -1

If WorksheetFunction.CountIf(Range("b5:b" & i), Cells(i, 2)) = 1 Then

isim = Cells(i, 2).Value
deger = Cells(i, 3).Value
toplam = Evaluate("SUMPRODUCT((" & syf & "!b5:b55000=""" & isim & """)*(" & syf & "!I5:I55000))")
Cells(i, 11) = toplam - deger
Cells(i, 12) = toplam / deger
For x = 1 To [I65536].End(3).Row
veri = Val(cells(i,"C") / Val(cells(x,"I") * 100
Next
End If
10 Next
End Sub

veri = Val(cells(i,"C") / Val(cells(x,"I") * 100 burda hata verior
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
dosya ektedir açılış kul adi AYKUT ŞİFRE: 123456A DIR
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
değer

arkadaşım şimdi burada dediğin (C / I) * 100 değeri hangi sütuna verilecek...
 
Katılım
25 Nisan 2007
Mesajlar
192
Excel Vers. ve Dili
excel 2007 Türkçe
bu konuda yardımcı olabilecek uzman arkadasların cevaplarını bekliorum tşkler iyi çalışmalar
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
pek uzman değilim ama idare et :mrgreen: >>
Sub aktarma()
For syf = 2 To Worksheets.Count
For c = 5 To Sheets(syf).[C65536].End(3).Row
For i = 5 To Sheets(syf).[I65536].End(3).Row
son = [l65536].End(3).Row + 1
Sheets(syf).Cells(son, 11) = Sheets(syf).Cells(c, 3) / Sheets(syf).Cells(i, 9) * 100
Next
Next
Next
End Sub
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Sub aaa()
For a = 1 To Sheets.Count
If Sheets(a).Name = "Anasayfa" Then GoTo 10
syf = Sheets(a).Name
Sheets(syf).Select
son = Cells(65536, 1).End(xlUp).Row

For i = son To 5 Step -1

If WorksheetFunction.CountIf(Range("b5:b" & i), Cells(i, 2)) = 1 Then

isim = Cells(i, 2).Value
deger = Cells(i, 3).Value
toplam = Evaluate("SUMPRODUCT((" & syf & "!b5:b55000=""" & isim & """)*(" & syf & "!I5:I55000))")
Cells(i, 11) = toplam - deger
Cells(i, 12) = toplam / deger
' buraya aşağıdaki kodu eklemelisin
End If
Next
10 Next
End Sub
Topicin ilk mesajında bu kodu yazmışsın. Ben çözümünü buna göre anlatacağım.

Benim istediğim olay .... yani CSUTUNU/ISUTUNU*100 seklinde .....
buna gore yapman gereken yukarıdaki kırmızı yere,
If Cells(i, "I") > 0 Then Cells(i, "L") = IIf(IsNumeric(Cells(i, "C")), Cells(i, "C"), 0) / Cells(i, "I") * 100
kodunu eklemendir. (Tablona uyarlamadım, test edersen sorun çıkmaması lazım)
 
Üst