• DİKKAT

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

Soru Yan yana sütunlarda yer alan tutarların en düşük değerlisini seçmek istiyorum. Yardımcı olur musunuz?

Katılım
11 Kasım 2019
Mesajlar
26
Excel Vers. ve Dili
2016 İngilizce
Merhaba,

Ben yan yan sütunlarda yer alan tutarların en düşük değerlisini makro ile bulmak istiyorum. Bunu nasıl yapabilirim? Örnek verecek olursam;

a1=20 b1= 23 c1= 40 d1= 50

a2=40 b2= 50 c2= 10 d2 = 83
:
:
:
:

For döngüsü ya da başka bir döngü ile bu bulduğum hücredeki değerleri kullanıp bir işlem daha yapacağım. Temel amacım bu her satırda yan yana bulunan hücrelerdeki tutarların minimumunu bulmak.

Konu hakkında yardımcı olursanız çok teşekkür ederim.

Destekleriniz için şimdiden teşekkür ederim.

Burak
 
Deneyiniz.

Kod:
Sub Emr()
    Dim i
    For i = 1 To Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Min(Range(Cells(i, 1), Cells(i, 4)))
    Next
End Sub
 
Rica ederim , kolay gelsin.
Bir sorum daha olacak hocam. Talebimi karşılıyor bu yolladığınız ancak worksheetFunction.min ile değil de seçeceğim bir sayfadan seçme şansım var mı bu aralığı ? Ayrıca bu seçimde dolular arasındaki en küçük sayıyı seçmek istiyorum. Bu yolladığınız kod ile belli aralıkta boş hücreleri sıfır kabul ettiğinden minimum olarak 0 aldığım durumlar oluyor. Örnek olarak aşağıda paylaşımda bulunuyorum.

a1=20 b1= 23 c1= 40 d1= 50 f1=72 g1=21

a2=40 b2= 50 c2= 10
:
:
:
:


Örnekten de görüleceği üzere benim datamda bazı sütunlarda değer bulunmamaktadır.

Konu hakkında tekrar yardımlarınızı rica ederim.
 
Boş olan hücreler boş mu yoksa 0 mı var ? Çünkü boş olan hücreleri dikkate almaz min fonksiyonu o yüzden soruyorum , eğer 0 var ise ona göre farklı bir çözüm bulalım.
Fonksiyonlara sayfa ismini verirsek istediğiniz sayfadan alır, sayfa ismi ve aralığı verirseniz ona göre düzenlerim.
 
Boş olan hücreler boş mu yoksa 0 mı var ? Çünkü boş olan hücreleri dikkate almaz min fonksiyonu o yüzden soruyorum , eğer 0 var ise ona göre farklı bir çözüm bulalım.
Fonksiyonlara sayfa ismini verirsek istediğiniz sayfadan alır, sayfa ismi ve aralığı verirseniz ona göre düzenlerim.



Hücrem normalde boş ancak sizin dediğiniz gibi boşlar dikkate alınmıyorsa ben fonksiyona isim vermeliyim ancak bunu nasıl yapacağım ? Veri sayfasında yer alan değerler bu tablodakiler. WorksheetFunction("Veri").Min(Range(Cells(i, 5), Cells(i, 10))) yaptım ancak olmadı.

Nasıl çözebilirim ? Yardımcı olursanız sevinirim.
 
Eğer boş dediğiniz alanlarda 0 değeri varsa aşağıdaki gibi deneyebilirsiniz.
Kod:
Sub Emr()
    Dim i
    For i = 1 To Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Small(Range(Cells(i, 1), Cells(i, 4)), WorksheetFunction.CountIf(Range(Cells(i, 1), Cells(i, 4)), 0) + 1)
    Next
End Sub
 
Eğer boş dediğiniz alanlarda 0 değeri varsa aşağıdaki gibi deneyebilirsiniz.
Kod:
Sub Emr()
    Dim i
    For i = 1 To Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Small(Range(Cells(i, 1), Cells(i, 4)), WorksheetFunction.CountIf(Range(Cells(i, 1), Cells(i, 4)), 0) + 1)
    Next
End Sub
Ben minimum durumunu kontrol ettiğim datayı bir çok sayfa olan excel dosyamda Veri sayfasındaki verileri kontrol ederek elde ediyorum. Dolayısıyla fonksiyona Veri ismini vermem gerektiğini düşünüyorum. Bunu beceremedim bir türlü.
 
Boş olan hücreler boş mu yoksa 0 mı var ? Çünkü boş olan hücreleri dikkate almaz min fonksiyonu o yüzden soruyorum , eğer 0 var ise ona göre farklı bir çözüm bulalım.
Fonksiyonlara sayfa ismini verirsek istediğiniz sayfadan alır, sayfa ismi ve aralığı verirseniz ona göre düzenlerim.
Sayfa ismi "Veri" aralığım ise (i. Satır, 21.Sütun) ile (i.Satır, 58.Sütun)
 
Bu şekilde yaptım ama veri aralığını ayarlarsınız, kodda 4 yazan yerler 4. sütunu ifade ediyor.
Kod:
Sub Emr()
    Dim i
    For i = 1 To Sheets("Veri").Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Min(Sheets("Veri").Range(Sheets("Veri").Cells(i, 1), Sheets("Veri").Cells(i, 4)))
    Next
End Sub
Sub Emr1()
    Dim i 'Eğer 0 değeri varsa
    For i = 1 To Sheets("Veri").Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Small(Sheets("Veri").Range(Sheets("Veri").Cells(i, 1), Sheets("Veri").Cells(i, 4)), WorksheetFunction.CountIf(Sheets("Veri").Range(Sheets("Veri").Cells(i, 1), Sheets("Veri").Cells(i, 4)), 0) + 1)
    Next
End Sub
 
Bu şekilde yaptım ama veri aralığını ayarlarsınız, kodda 4 yazan yerler 4. sütunu ifade ediyor.
Kod:
Sub Emr()
    Dim i
    For i = 1 To Sheets("Veri").Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Min(Sheets("Veri").Range(Sheets("Veri").Cells(i, 1), Sheets("Veri").Cells(i, 4)))
    Next
End Sub
Sub Emr1()
    Dim i 'Eğer 0 değeri varsa
    For i = 1 To Sheets("Veri").Cells(Rows.Count, 1).End(3).Row
        MsgBox WorksheetFunction.Small(Sheets("Veri").Range(Sheets("Veri").Cells(i, 1), Sheets("Veri").Cells(i, 4)), WorksheetFunction.CountIf(Sheets("Veri").Range(Sheets("Veri").Cells(i, 1), Sheets("Veri").Cells(i, 4)), 0) + 1)
    Next
End Sub
Hocam çok sağol. Gerçekten çok makbule geçti. Emeğine sağlık!
 
Geri
Üst