• DİKKAT

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

Dizi İçindeki Değerleri Sıralama

Katılım
26 Mayıs 2005
Mesajlar
609
Excel Vers. ve Dili
Office 2022 - Türkçe
Merhaba Arkadaşlar,

Dizi içerisine aldığım değerleri sıralayıp en büyük değeri almak istiyorum yardım olurmusunuz.


Private StokSıraNo(100) As String
Private EnbuyukDeger As String

StokSıraNo(1) = 201710000001001
StokSıraNo(2) = 201710000001008
StokSıraNo(3) = 201710000001003
StokSıraNo(4) = 201710000001012
StokSıraNo(5) = 201710000001005
 
Merhaba
Aşağıdaki gibi işinize yararmı?
Kod:
Private Sub CommandButton1_Click()
Dim StokSıraNo(100) As Variant
Dim EnbuyukDeger As String

StokSıraNo(1) = 201710000001001
StokSıraNo(2) = 201710000001008
StokSıraNo(3) = 201710000001003
StokSıraNo(4) = 201710000001012
StokSıraNo(5) = 201710000001005

Dim sıralı(100) As Variant

For a = 1 To 100
If StokSıraNo(a) = "" Then Exit For
  'veya
     'If StokSıraNo(a) <> "" Then 
sıralı(a) = WorksheetFunction.Large(StokSıraNo, a)
Next

EnbuyukDeger = sıralı(1)

MsgBox EnbuyukDeger

End Sub
 
Soru gerçi cevaplanmış durumda ama, hazırlanabilecek bir çok alternatiften bir tanesi de şöyle olabilir;

Kod:
Sub Test()
    Dim StokSıraNo(1 To 5) As String
    
    StokSıraNo(1) = "201710000001001"
    StokSıraNo(2) = "201710000001008"
    StokSıraNo(3) = "201710000001003"
    StokSıraNo(4) = "201710000001012"
    StokSıraNo(5) = "201710000001005"

    Set MyWd = CreateObject("Word.Application")
    MyWd.WordBasic.SortArray StokSıraNo(), 1
    
    For i = 1 To UBound(StokSıraNo)
        Liste = Liste & i & ". değer = " & StokSıraNo(i) & vbCrLf
    Next
    
    MsgBox "Yüksekten azalana doğru sıralama:" & vbCrLf & vbCrLf & Liste & vbCrLf & vbCrLf & "En buyuk deger = " & StokSıraNo(1)
    
    MyWd.Quit
    Set MyWd = Nothing
    Erase StokSıraNo
End Sub
 
Son düzenleme:
Alternatif;

Kod:
Private StokSıraNo(100) As Variant
Private EnbuyukDeger As Variant

Sub Test()
    StokSıraNo(1) = 201710000001001#
    StokSıraNo(2) = 201710000001008#
    StokSıraNo(3) = 201710000001003#
    StokSıraNo(4) = 201710000001012#
    StokSıraNo(5) = 201710000001005#
    EnbuyukDeger = WorksheetFunction.Max(StokSıraNo)
    MsgBox EnbuyukDeger
End Sub
 
Korhan Bey'in önerisi, aşağıdaki şekilde de kullanılabilir.

Kod:
MsgBox Application.Max(StokSıraNo)
.

Genel Not: Her şeyden önce veri tipinin ne olduğunu (Metin/Nümerik) olduğunu baştan belirleyip, ona göre kodu yazmak en iyisidir tabii.
 
Arkadaşlar yardımlarınızdan dolayı hepinize ayrı ayrı teşekkür ederim.
 
Geri
Üst