• DİKKAT

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

Bir Atama Sorusu Basit Gibi Görünüyor Uzmanlar için Bir DKK sürebilir

srdrkzltg

Altın Üye
Katılım
30 Haziran 2014
Mesajlar
35
Excel Vers. ve Dili
Windows: Türkçe
Mac OS X: İngilizce
Arkadaşlar Merhaba,


http://s6.dosya.tc/server9/3eo7i5/Sorgula.xlsx.html

Ekteki dosya da Atanacak Palet bölmesi benim için Sonuç Bölgesi. (Sayfa 2 de örnek var)

D Sütununda Ürün Aile Bilgisi verilmiş durumda. E sütununda da önceliği verilmiş durumda.

Yapmak istediğim şu Önce Ürün Aile Bilgisine Göre bir Öncelik verilecek. Daha sonra Ürün aile içinde yer alan ürünlerin (ÜrüN SKU)sırasına göre sıralanarak 1 den 350 ye kadar olan paletlere atanması.

Kısıt şu: Ürünlerin Hacim bilgisine göre Palet hacminde yer kalmasına göre diğer palete geçsin.

Örn.

1. Sıraya gelecek ürün 1002451 SKU lu ürün. Hacim bilgisi 100 metre küp, Palet hacim bilgisi 560 metreküp.
2. Sıraya gelecek ürün eğer 1. palette kalan 460 metreküp alana sığacaksa yine 1. palete versin. Eğer sığmaz ise 2. palete versin. Ama 3. ürüne geldiğimizde Tekrar en baştan sorgu yapsın.
Çünkü 2. ürün 500 metreküp oldu mesela, 2. palete attı. Ama 1. palette hala 460 metreküp boşluk var.

Bu şekilde devam etsin.

Hacim bilgisi sonra güncellenecek.
Siz çözüme kavuşturmak için 100 ile 400 metre küp arası tutarlar sallayarak o bölgeyi doldurabilirsiniz. Ben rastgele doldurmayı bulamadım.

Yardımcı olacak arkadaşa şimdiden çok çok teşekkür ederim.
 
Son düzenleme:
* sıralanarak 1 den 350 ye kadar olan paletlere atanması.
- Ürün aile, içi sıralama yapıldıktan sonra mı 1 den 350 ye kadar paletler belirlenecek

* Kısıt şu: Ürünlerin Hacim bilgisine göre Palet hacminde yer kalmasına göre diğer palete geçsin.
- Burada palet hacmine göre yazmışsınız, aşağıdaki 1. sırada 560 metreküp ile raf hacmini belirtmişsiniz . Hangisi doğru.

Dosyanızda sayfa2 ye sonucu gösteren bir tablo ekleyiniz.

Bu şekilde daha hızlı ve doğru cevap alabilir siniz.

 
Düzenlemeyi yapıyorum şimdi.
 
* sıralanarak 1 den 350 ye kadar olan paletlere atanması.
- Ürün aile, içi sıralama yapıldıktan sonra mı 1 den 350 ye kadar paletler belirlenecek

* Kısıt şu: Ürünlerin Hacim bilgisine göre Palet hacminde yer kalmasına göre diğer palete geçsin.
- Burada palet hacmine göre yazmışsınız, aşağıdaki 1. sırada 560 metreküp ile raf hacmini belirtmişsiniz . Hangisi doğru.

Dosyanızda sayfa2 ye sonucu gösteren bir tablo ekleyiniz.

Bu şekilde daha hızlı ve doğru cevap alabilir siniz.


Evet Önce ürün aile sırala yapıldıktan sonra paletlere atama verilecek.
Palet üzerinden ilerleyeceğiz. Raf yanlış olmuş
Örnek eklemiş durumda.
 
Sıralama problem değil Veri sekmesi altından sıralama yaptım ben.
Önemli olan hacime göre doldurma.

Bunu nasıl yapabilirim önemli olan takıldığım nokta şu an bu.
 
Sıralama problem değil Veri sekmesi altından sıralama yaptım ben.
Önemli olan hacime göre doldurma.

Bunu nasıl yapabilirim önemli olan takıldığım nokta şu an bu.


100000 ürün ve 10000 palet için ekli dosyada bir çalışma yapıldı.

Palet listesi palet numarası olarak verilebilir. Atıyorum, XPLT10001, XPLT10002 v.b

Kontrol ediniz.

Kod:
Dim urunler(100000, 2) As Long
Dim paletler(10000, 2) As Long
Dim palethacim, paletsayisi, urunsayisi As Long

Sub menu()
    palethacim = [O2]
    Call Sirala
    Call yukle
    Call doldur
End Sub

Sub yukle()
   sonsatir = Cells(Rows.Count, "A").End(3).Row
   Range("J2:J" & sonsatir).ClearContents
      
   For i = 2 To sonsatir
      urunler(i - 1, 1) = Cells(i, "G").Value
   Next i
   urunsayisi = i - 1
   
   sonsatir = Cells(Rows.Count, "Q").End(3).Row
   For i = 2 To sonsatir
      paletler(i - 1, 1) = Cells(i, "Q").Value
      paletler(i - 1, 2) = palethacim
   Next i
   paletsayisi = i - 1
End Sub

Sub doldur()
   palet = 1
   toplam = 0
   For i = 1 To urunsayisi
     urunhacim = urunler(i, 1)
     For j = 1 To paletsayisi
       If urunhacim <= paletler(j, 2) Then
          urunler(i, 2) = paletler(j, 1)
          Cells(i + 1, "J").Value = paletler(j, 1)
          paletler(j, 2) = paletler(j, 2) - urunhacim
          Exit For
       End If
     Next j
   Next i
   
End Sub

Sub Sirala()
    sayfaadi = ActiveSheet.Name
    sonsatir = Cells(Rows.Count, "A").End(3).Row
    Columns("A:K").Select
    ActiveWorkbook.Worksheets(sayfaadi).Sort.SortFields.Clear
    ActiveWorkbook.Worksheets(sayfaadi).Sort.SortFields.Add Key:=Range("B2:B" & sonsatir _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets(sayfaadi).Sort.SortFields.Add Key:=Range("E2:E" & sonsatir _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets(sayfaadi).Sort
        .SetRange Range("A1:K" & sonsatir)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B2").Select
End Sub
 

Ekli dosyalar

mesaj takrarı silindi.
 
Son düzenleme:
Geri
Üst