Soru Yazdığım kodu tek satır için değil tüm satırlara uygulansın

IRONSELF

Altın Üye
Katılım
21 Ekim 2012
Mesajlar
59
Excel Vers. ve Dili
XLSX
Arkadaşlar merhaba,

Ekteki dosyada yazdığım kodda sayfa1 deki A1,B1,C1 deki kodlar 2 sayfadakli sayılarla kontrol yapıp çarptırıyorum. Fakat sayfa 1 de sadece tek satır olmayacak. aşağı doğru devam edecek. Şuan sonucu sayfa 2 deki 6. satıra yazdırıyorum. onlarında sonucunun sayfa 2 deki 7,8,9... satırlara devam etsin istiyorum.

Yardımcı olur musunuz.
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
2,741
Excel Vers. ve Dili
Excel 2010-TR (32 bit)
Kod:
Sub kntrl()
    Sayfa2.Range("A6:AB" & Rows.Count).ClearContents
    For sat = 1 To Cells(Rows.Count, 1).End(3).Row
        For i = 1 To 28
            If Cells(sat, 1) <= Sayfa2.Cells(1, i) And _
               Cells(sat, 2) <= Sayfa2.Cells(2, i) And _
               Cells(sat, 3) <= Sayfa2.Cells(3, i) Then
                Sayfa2.Cells(sat + 5, i) = Cells(sat, 1) * Cells(sat, 2) * Cells(sat, 3)
            Else
                Sayfa2.Cells(sat + 5, i) = ""
            End If
        Next i
    Next sat
End Sub
 

IRONSELF

Altın Üye
Katılım
21 Ekim 2012
Mesajlar
59
Excel Vers. ve Dili
XLSX
Çok sağolun birşeyi unutmuşum. sayfa 1 de D sutununa bu çarpımların minimum değerinin gelmesini nasıl sağlarız. yani yanyana olan bu verilerden en küçüğünü ilgili satırın D sutununa yazsın
 

IRONSELF

Altın Üye
Katılım
21 Ekim 2012
Mesajlar
59
Excel Vers. ve Dili
XLSX
Yardımcı olacak kimse varmı formülle yaptım ama çok uzun sürüyor her satır için
 

IRONSELF

Altın Üye
Katılım
21 Ekim 2012
Mesajlar
59
Excel Vers. ve Dili
XLSX
Kod:
Sub kntrl()
    Sayfa2.Range("A6:AB" & Rows.Count).ClearContents
    For sat = 1 To Cells(Rows.Count, 1).End(3).Row
        For i = 1 To 28
            If Cells(sat, 1) <= Sayfa2.Cells(1, i) And _
               Cells(sat, 2) <= Sayfa2.Cells(2, i) And _
               Cells(sat, 3) <= Sayfa2.Cells(3, i) Then
                Sayfa2.Cells(sat + 5, i) = Cells(sat, 1) * Cells(sat, 2) * Cells(sat, 3)
            Else
                Sayfa2.Cells(sat + 5, i) = ""
            End If
        Next i
    Next sat
End Sub
birde sayfa birdekiler değil sayfa2 dekiler çarpılıp yazılması gerekiyor.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
2,741
Excel Vers. ve Dili
Excel 2010-TR (32 bit)
birde sayfa birdekiler değil sayfa2 dekiler çarpılıp yazılması gerekiyor.
Bu kadar boşa beklemenizin sebebi burası.. Örneğinizde sayfa1 deki leri çarpmışsınız. Ondan sonra sayfa2 de hepsi aynı olan rakamlardan minimum değerin bulunmasını bekliyorsunuz.

Kod:
Sub kntrl()
    Sayfa2.Range("A6:AB" & Rows.Count).ClearContents
    For sat = 1 To Cells(Rows.Count, 1).End(3).Row
        For i = 1 To 28
            If Cells(sat, 1) <= Sayfa2.Cells(1, i) And _
               Cells(sat, 2) <= Sayfa2.Cells(2, i) And _
               Cells(sat, 3) <= Sayfa2.Cells(3, i) Then
                Sayfa2.Cells(sat + 5, i) = Sayfa2.Cells(1, i) * Sayfa2.Cells(2, i) * Sayfa2.Cells(3, i)
            Else
                Sayfa2.Cells(sat + 5, i) = ""
            End If
            Cells(sat, 4) = WorksheetFunction.Min(Sayfa2.Cells(sat + 5, 1).Resize(, 28))
        Next i
    Next sat
End Sub
 

IRONSELF

Altın Üye
Katılım
21 Ekim 2012
Mesajlar
59
Excel Vers. ve Dili
XLSX
Haklısınız. Lakin olabiliyor böyle hatalar sizin gibi tecrübeli değiliz kusura bakmayın. elinize sağlık.
 
Üst