Optimum ürüne ulaşmak için hesaplama

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,147
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Ekli dosyada Urunler sınıfında belirli ürünler ve onların kütlelerini içeren bir tablo mevcut

Proje sayfası "D2" hücresinde ihtiyaç olan minimum değer yazmakta;

yapmak istediğim minimum değere ulaşmak için ; ürün listesinde hangi ürünlerden kaç adet seçmemiz gerektiğini kod ile ulaşmaya çalışıyorum

Örnek:
1) 3000 gr' a ulaşmak için "IP 3500" üründen 1 adet, "IP 2300" üründen 1 adet, 2100 + 1380 =3480 ile 3000 değerine rahatlıkla ulaşmış oluyoruz.
1) 3800 gr' a ulaşmak için "IP 3500" üründen 2 adet seçersek 2 adet = 2100*2 =4200 ile 3800 değerine rahatlıkla ulaşmış oluyoruz.

Burada amaç mümkün olan toplam adet sayısının az olması yani yaklaşıp geçeğimiz değere en yüksek üründen yaklaşmaya çalışmak ve sepeti birbirine boyut olarak yakın ürünlerden oluşturmaktır.

Not: 3800 gr' a ulaşmak için "IP 6100" üründen 1 adet, "IP 530" üründen 1 adet, 3660 + 371 =4031 bir seçenek ama birbirine boyut olarak çok uzak olduğu için;
"IP 3500" üründen 2 adet = 2100*2 =4200 seçmeyi tercih ediyoruz. Özetle aynı sepet içine birbirine en fazla 3 sıra (aşağıda ve yukarıda) yakın ürünü seçebiliriz.


Burada makro kodunu nasıl kurgulayabiliriz?
bu konuda destek olursanız sevinirim.

iyi Akşamlar dilerim.
 

Ekli dosyalar

Ouzz_z

Altın Üye
Katılım
19 Nisan 2024
Mesajlar
18
Excel Vers. ve Dili
LTSC Pro Plus 2024
Altın Üyelik Bitiş Tarihi
20-04-2026
1 adet ürün ile sağlanamadı!
2 adet , IP 4600, IP 6100: (6420 gr)
3 adet , IP 2300, IP 3500, IP 4600: (6240 gr)
4 adet , IP 1400, IP 2300, IP 3500, IP 4600: (7080 gr)
5 adet , IP 530, IP 1400, IP 2300, IP 3500, IP 4600: (7451 gr)
6 adet , IP 220, IP 530, IP 1400, IP 2300, IP 3500, IP 4600: (7583 gr)
6000'i sağlamak için gibi mi?
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,147
Excel Vers. ve Dili
Office 2013 İngilizce
1 adet ürün ile sağlanamadı!
2 adet , IP 4600, IP 6100: (6420 gr)
3 adet , IP 2300, IP 3500, IP 4600: (6240 gr)
4 adet , IP 1400, IP 2300, IP 3500, IP 4600: (7080 gr)
5 adet , IP 530, IP 1400, IP 2300, IP 3500, IP 4600: (7451 gr)
6 adet , IP 220, IP 530, IP 1400, IP 2300, IP 3500, IP 4600: (7583 gr)
6000'i sağlamak için gibi mi?
doğrudur Hocam
iyi pazarlar.
 

Ouzz_z

Altın Üye
Katılım
19 Nisan 2024
Mesajlar
18
Excel Vers. ve Dili
LTSC Pro Plus 2024
Altın Üyelik Bitiş Tarihi
20-04-2026
Temel olarak başlangıçta 1 adet ürün ile sağlamaya çalışıp adedi artırarak deniyor. Ürünlerin ağırlıkları küçükten büyüğe olmalı. Her üründen sadece birer tane alındığı için minimum kütle, tüm ürünlerin ağırlıkları toplamını aşınca takılıyor. Revize edilebilir.
 

Ekli dosyalar

Ouzz_z

Altın Üye
Katılım
19 Nisan 2024
Mesajlar
18
Excel Vers. ve Dili
LTSC Pro Plus 2024
Altın Üyelik Bitiş Tarihi
20-04-2026
Kod:
For x = 0 To optimumAdet - 1
            urunToplamKutle = urunToplamKutle + wsUrunler.Range("C" & 1 + 11 - nUrun + x).Value
            urunToplamModel = wsUrunler.Range("B" & 1 + 11 - nUrun + x).Value & ", " & urunToplamModel
        Next x
Şeklinde ağırdan hafife doğru da seçilebilir.
 

Ouzz_z

Altın Üye
Katılım
19 Nisan 2024
Mesajlar
18
Excel Vers. ve Dili
LTSC Pro Plus 2024
Altın Üyelik Bitiş Tarihi
20-04-2026
a, b, c || a+b, a+c, b+c || a+b+c || 2a+b, 2a+c, 2b+c || 3a, 3b, 3c gibi kontroller yapılmalı eğer aynısından birden fazla seçim yapılacaksa :)
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,147
Excel Vers. ve Dili
Office 2013 İngilizce
Üst