• DİKKAT

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

Değerlerin Satır numarası

Katılım
3 Mart 2006
Mesajlar
99
Merhaba arkadaşlar;
aşağıdaki kodlarla b sütununa en büyük1,en büyük2 en büyük 3. değerleri yazdırabiliyorum.
Sub deneme()
Set s1 = Sheets("sayfa1")
Dim myRange As Range
Set myRange = s1.Range("a1:a23")
buyuk1 = Application.WorksheetFunction.Large(myRange, 1)
s1.Range("b1").Value = buyuk1
buyuk2 = Application.WorksheetFunction.Large(myRange, 2)
s1.Range("b2").Value = buyuk2
buyuk3 = Application.WorksheetFunction.Large(myRange, 3)
s1.Range("b3").Value = buyuk3
kucuk1 = Application.WorksheetFunction.Small(myRange, 1)
s1.Range("b4").Value = kucuk1
kucuk2 = Application.WorksheetFunction.Small(myRange, 2)
s1.Range("b5").Value = kucuk2
kucuk3 = Application.WorksheetFunction.Small(myRange, 3)
s1.Range("b6").Value = kucuk3
End Sub

c sütünuna bu değerlerin bulunduğu satır numaralarını da yanına yazdırmak istiyorum.
örnek dosya ektedir
 

Ekli dosyalar

Merhaba,

3 büyük değer için aşağıdaki yapıyı kullanabilirsiniz. Diğerlerinide kendiniz yazmayı deneyin.

Kod:
Sub Deneme()
    Set s1 = Sheets("sayfa1")
    Dim myRange As Range, Say As Integer, Satır As Integer
    Set myRange = s1.Range("a1:a23")
 
    buyuk1 = Application.WorksheetFunction.Large(myRange, 1)
    s1.Range("b1").Value = buyuk1
    Say = WorksheetFunction.CountIf(Range("B1:B1"), Range("B1"))
    Satır = Evaluate("=SMALL(IF(" & myRange.Address & "=B1,ROW(" & myRange.Address & "))," & Say & ")")
    s1.Range("c1").Value = Satır
 
    buyuk2 = Application.WorksheetFunction.Large(myRange, 2)
    s1.Range("b2").Value = buyuk2
    Say = WorksheetFunction.CountIf(Range("B1:B2"), Range("B2"))
    Satır = Evaluate("=SMALL(IF(" & myRange.Address & "=B2,ROW(" & myRange.Address & "))," & Say & ")")
    s1.Range("c2").Value = Satır
 
    buyuk3 = Application.WorksheetFunction.Large(myRange, 3)
    s1.Range("b3").Value = buyuk3
    Say = WorksheetFunction.CountIf(Range("B1:B3"), Range("B3"))
    Satır = Evaluate("=SMALL(IF(" & myRange.Address & "=B3,ROW(" & myRange.Address & "))," & Say & ")")
    s1.Range("c3").Value = Satır
End Sub
 
teşekkürler hocam; bu şekilde işimi görebilirim. fakat öğrenmek istediğim başka bir şey var o da

Application.WorksheetFunction.Large(myRange, 2) dediğimizde
ikinci en büyük sayının bulunduğu satır numarasını direkt olarak verebilecek bir kod var mı acaba?
 
Son düzenleme:
Geri
Üst