Soru Satır uzayınca nasıl hesaplatabilirim?

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Merhaba hesaplaya basınca gerekli işlemleri yapıyor.

Ama satır sayısının uzadığını düşünün yani değişkenlik gösteriyor. Bu durumu nasıl çözebilirim?

Kodda ben 7 ile 11 satırlara kadar olan kısımları toplattım.Ama bu yeri geliyor 7den başlayıp 25e gidiyor. 7den başlayıp 50yede gidebilir gibi gibi..


Kod:
Private Sub CommandButton1_Click()
Range("S7").Formula = "=(E7*G7)"
Range("T7").Formula = "=(E7*H7)"
Range("U7").Formula = "=(E7*J7)"

Range("S8").Formula = "=-(E8*G8)"
Range("T8").Formula = "=-(E8*H8)"
Range("U8").Formula = "=-(E8*J8)"

Range("S9").Formula = "=(E9*G9)"
Range("T9").Formula = "=(E9*H9)"
Range("U9").Formula = "=(E9*J9)"

Range("S10").Formula = "=(E10*G10)"
Range("T10").Formula = "=(E10*H10)"
Range("U10").Formula = "=(E10*J10)"

Range("S11").Formula = "=(E11*G11)"
Range("T11").Formula = "=(E11*H11)"
Range("U11").Formula = "=(E11*J11)"

[S13] = WorksheetFunction.Sum([S7:S11])
[T13] = WorksheetFunction.Sum([T7:T11])
[U13] = WorksheetFunction.Sum([U7:U11])

End Sub
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Deneyiniz. 8. satırdaki negatif çarpanı yanlış yorumlamış olabilirim.
Kod:
Private Sub CommandButton1_Click()

    Dim son As Long
   
    Range("S7:U" & Rows.Count).ClearContents
   
    son = Cells(Rows.Count, "B").End(xlUp).Row

    [S7].Resize(son - 6, 1).Formula = "=(E7*G7)* Sign(K7) "
    [T7].Resize(son - 6, 1).Formula = "=(E7*H7)* Sign(K7) "
    [U7].Resize(son - 6, 1).Formula = "=(E7*J7)* Sign(K7) "
   
    Range("S" & son + 2) = WorksheetFunction.Sum(Range("S7:S" & son))
    Range("T" & son + 2) = WorksheetFunction.Sum(Range("T7:T" & son))
    Range("U" & son + 2) = WorksheetFunction.Sum(Range("U7:U" & son))
   
End Sub
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Hocam teşekkür ediyorum, Sign(K7) kısımlarını pek anlayamadım işlev olarak

Şimdi S7,T7,U7 den itibaren çarpım değerleri geliyorya hocam bunları K7, M7, N7 den itibaren olan değerler ile aynı değilse S,T,U sutununda hangi değer farklıysa renklendirebilirmiyiz?

aynı mantıkta sadece karşılaştırma yapıp hatayı bulmaya calısıyoruz hesaplamalarda..
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Hocam teşekkür ediyorum, Sign(K7) kısımlarını pek anlayamadım işlev olarak
8. satırda formülün başına - işareti koymuştunuz. "=-(E8*G8)" gördüğüm K sütununda - olduğu içindi. Ben öyle yorumlayarak K sütunun işaret değeriyle formülü çarptırdım. Yanlış yorumladıysam doğrusunu yazarsanız değiştireyim.

Şimdi S7,T7,U7 den itibaren çarpım değerleri geliyorya hocam bunları K7, M7, N7 den itibaren olan değerler ile aynı değilse S,T,U sutununda hangi değer farklıysa renklendirebilirmiyiz?

aynı mantıkta sadece karşılaştırma yapıp hatayı bulmaya calısıyoruz hesaplamalarda..
Makro ile mi yoksa koşullu biçimlendirme olur mu?
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
8. satırda formülün başına - işareti koymuştunuz. "=-(E8*G8)" gördüğüm K sütununda - olduğu içindi. Ben öyle yorumlayarak K sütunun işaret değeriyle formülü çarptırdım. Yanlış yorumladıysam doğrusunu yazarsanız değiştireyim.



Makro ile mi yoksa koşullu biçimlendirme olur mu?

Hocam o kod tamam işimizi gördü, mantıgını anlamak için sordum..


İkinci sorumu makro ile cozmemiz mümkünse tabi
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Deneyiniz.
Kod:
Private Sub CommandButton1_Click()

    Dim son As Long, i As Long
  
    Range("S7:U" & Rows.Count).ClearContents
    Range("S7:U" & Rows.Count).Interior.ColorIndex = xlNone
  
    son = Cells(Rows.Count, "B").End(xlUp).Row

    [S7].Resize(son - 6, 1).Formula = "=(E7*G7)* Sign(K7) "
    [T7].Resize(son - 6, 1).Formula = "=(E7*H7)* Sign(K7) "
    [U7].Resize(son - 6, 1).Formula = "=(E7*J7)* Sign(K7) "
  
    Range("S" & son + 2) = WorksheetFunction.Sum(Range("S7:S" & son))
    Range("T" & son + 2) = WorksheetFunction.Sum(Range("T7:T" & son))
    Range("U" & son + 2) = WorksheetFunction.Sum(Range("U7:U" & son))
    
    For i = 7 To son
        If Cells(i, "K") <> Cells(i, "S") Then Cells(i, "S").Interior.ColorIndex = 3
        If Cells(i, "M") <> Cells(i, "T") Then Cells(i, "T").Interior.ColorIndex = 3
        If Cells(i, "N") <> Cells(i, "U") Then Cells(i, "U").Interior.ColorIndex = 3
    Next i

End Sub
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Ömer bey teşekkür ederim,

Bazı değerler eşit olmasına rağmen kırmızı yapıyor. Nedeni ne olabilir örnek bir dosya yükledim
 

Ekli dosyalar

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Duyarlılıklarla ilgili sorunlar olabiliyor. Yuvarlama fonksiyonu ilave etmenizde sakınca olmaz sanırım.
I:J arasına yuvarla(hücre,5) formülü olarak değiştirin. Örnek K7 hücresine =YUVARLA(I7-J7;5) yazarak alt satırlara kopyalayın.
Kodları da aşağıdaki gibi değiştirerek deneyiniz.
Kod:
Private Sub CommandButton1_Click()
    Dim son As Long, i As Long
 
    Range("S7:U" & Rows.Count).ClearContents
    Range("S7:U" & Rows.Count).Interior.ColorIndex = xlNone
 
    son = Cells(Rows.Count, "B").End(xlUp).Row

    [S7].Resize(son - 6, 1).Formula = "=Round(E7*F7,5)"
    [T7].Resize(son - 6, 1).Formula = "=Round(E7*G7,5)"
    [U7].Resize(son - 6, 1).Formula = "=Round(E7*H7,5)"
 
    Range("S" & son + 2) = WorksheetFunction.Sum(Range("S7:S" & son))
    Range("T" & son + 2) = WorksheetFunction.Sum(Range("T7:T" & son))
    Range("U" & son + 2) = WorksheetFunction.Sum(Range("U7:U" & son))
    
    For i = 7 To son
        If Cells(i, "I") <> Cells(i, "S") Then Cells(i, "S").Interior.ColorIndex = 3
        If Cells(i, "J") <> Cells(i, "T") Then Cells(i, "T").Interior.ColorIndex = 3
        If Cells(i, "K") <> Cells(i, "U") Then Cells(i, "U").Interior.ColorIndex = 3
    Next i
    
End Sub
 

balanar

Altın Üye
Katılım
22 Şubat 2021
Mesajlar
347
Excel Vers. ve Dili
Excel 2007
Altın Üyelik Bitiş Tarihi
09-03-2027
Emeğinize sağlık çok zahmet verdim.. Çok tşekkür ederim ömer hocam
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Önemli değil, iyi çalışmalar.
 
Üst