döngü hatası

Katılım
9 Temmuz 2007
Mesajlar
22
Excel Vers. ve Dili
visual basic
Arkadaşlar bir döngü kurmam gerekiyor ama hata veriyor. sebebi nedir ?
Her seferinde bir satır şaağı kaydırıp 3 sütun sağındaki değerle karşılaştıracak ve o satıra kadar olan değerleri toplayacak. Sanırım i olrak tanımlamada bir hata var. Debug dediğimde kırmızı ile yazılı olan yer hata veriyor. Yardım ederseniz sevinirim.

For i = 1 To 12
If ActiveCell.Offset(i, 0).Value < ActiveCell.Offset(0, 3).Value Then
Range("F2").FormulaR1C1 = "=SUM(R[0]C[-3]:R[i]C[-3])"
Else
Range("B15").Select
End If
Next i
 
Katılım
9 Temmuz 2007
Mesajlar
22
Excel Vers. ve Dili
visual basic
Range("F2").FormulaR1C1 = "=Sum (Cells (1,3):Cells (i,3))"

Ya arkada&#351;lar bu tarz bi&#351;ey yapmam gerekiyor sanki. S&#252;tundaki i kadar de&#287;eri toplamas&#305; laz&#305;m i=2 oldu&#287;unda &#246;rne&#287;in 1,3 ve 2,3 h&#252;crelerini toplayacak. ama hata veriyor. nas&#305;l yazaca&#287;&#305;m bunu??
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
A&#351;a&#287;&#305;daki gibi deneyin.

Kod:
For i = 1 To 12
If ActiveCell.Offset(i, 0).Value < ActiveCell.Offset(0, 3).Value Then
Range("F2").FormulaR1C1 = "=SUM(R[0]C[-3]:R[" & i & "]C[-3])"
Else
Range("B15").Select
End If
Next i
 
Katılım
9 Temmuz 2007
Mesajlar
22
Excel Vers. ve Dili
visual basic
Ya bir sorunum var. Amac&#305;m aktif h&#252;crenin bir sut&#252;n sa&#287;&#305;ndaki h&#252;credeki de&#287;eri toplatmak. A&#351;a&#287;&#305;daki gibi bir&#351;ey olmas&#305; gerekir mant&#305;ken. ama yaz&#305;m &#351;eklim yanl&#305;&#351;. Yard&#305;mc&#305; olabilir misiniz l&#252;tfeen..

Range("B2").Activate
For i = 0 To 12
If ActiveCell.Offset(i, 0).Value < Range("e2").Value Then
Range("F2").FormulaR1C1 = "=SUM(Activecell.Offset(0,1).Value: Activecell.Offset (i,1).Value)"
Else
Range("B2").Select
End If
Next i
 

Kemal Demir

Özel Üye
Katılım
29 Temmuz 2004
Mesajlar
2,108
G&#252;nayd&#305;n,

Formul sat&#305;r&#305;n&#305; a&#351;ag&#305;daki gibi de&#287;i&#351;tiriniz.

Kod:
Range("f2").Value=Activecell.Offset(0,1)*1+Activecell.Offset (i,1)
Not:Sorunuza erken ve do&#287;ru &#231;&#246;z&#252;m a&#231;&#305;s&#305;ndan ,&#246;rnek bir dosya eklemeniz cevab&#305;n&#305;z&#305; erken alman&#305;z&#305; sa&#287;layacakt&#305;r
 
Katılım
9 Temmuz 2007
Mesajlar
22
Excel Vers. ve Dili
visual basic
fakat bu &#351;ekilde olunca i=3 i&#231;in &#246;rne&#287;in offset 0,1 ile 3,1 olan 2 adet h&#252;cereyi toplayacak. Ben i=3 i&#231;im 0,1den 1,3'e kadar olan h&#252;creleri toplamas&#305;n&#305; istiyorum yani offset 0,1- 1,1-2,1-3,1 h&#252;crelerini. arada kalan b&#252;t&#252;n h&#252;creleri toplas&#305;n istiyorum.
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Merhaba,

&#304;nan&#305;nki &#246;rnek dosya eklemi&#351; olsayd&#305;n&#305;z daha net ve &#231;abuk &#231;z&#246;&#252;me ula&#351;&#305;rd&#305;n&#305;z.

Acaba istedi&#287;iniz b&#246;yle bi&#351;eymi? Kodlar&#305; a&#351;a&#287;&#305;daki gibi denermisiniz.... ?

Kod:
For i = 2 To 14
        Cells(i, 6) = WorksheetFunction.Sum(Range("c" & i & ":c" & i + 3))
    Next i
 
Katılım
9 Temmuz 2007
Mesajlar
22
Excel Vers. ve Dili
visual basic
Ekte örnek bir dosya gönderiyorum. orada anlatmaya çalıştım. umarım yardımcı olabilirsiniz.
 

Ayhan Ercan

Özel Üye
Katılım
10 Ağustos 2005
Mesajlar
1,573
Excel Vers. ve Dili
Microsoft 365- Türkçe
Merhaba,

Ek Dosyayı İnceleyiniz......

Kod:
Dim i As Integer, son As Integer, hcr As Range
son = Range("f65536").End(3).Row + 1
Set hcr = Range("b2")
For i = 2 To 14
    Do While hcr.Value < Cells(i, 5)
        Cells(son, 6).Activate
        ActiveCell = ActiveCell + hcr.Offset(0, 1)
        Set hcr = hcr.Offset(1, 0)
    Loop
    son = son + 1
Next i
 
Üst