en iyi iş sıralamasını bulan bir VB kodu var mı

Katılım
25 Ekim 2005
Mesajlar
40
Excel Vers. ve Dili
excel2003 TR
Arkadaşlar merhaba, ekteki dosyada işlerin belli makinelerden geçiş süresini gösteren ve bu sürelere göre başlama-bitiş süresini gösteren iki tablo var. yapmak istediğim, iş sıralamasını değiştirdiğimde tablodaki bilgilerin yenilenip yeni bitiş zamanını hesaplayabilmek. yardımcı olabilirseniz çok sevinirim.
 
Katılım
16 Eylül 2005
Mesajlar
179
Excel Vers. ve Dili
Excel 2007 12.0
şu dosyaya bir göz atın, anladığım kadarıyla birşeyler yaptım
eksiklik vasa lütfen yazın
 
Katılım
25 Ekim 2005
Mesajlar
40
Excel Vers. ve Dili
excel2003 TR
Merhaba, soruma cevaben yazdığın mesajı okuyorum ama bir eksik var gibi;iş sıralamasını 2 7 6 3 1 5 4 şekilinde yazdığımda: x2 makinesinde 7 nolu işin bitiş süresi yanlış veriyor.
 
Katılım
16 Eylül 2005
Mesajlar
179
Excel Vers. ve Dili
Excel 2007 12.0
Cevabı biraz geç oldu, kusura bakma,
problem, formülü sürüklemememden kaynaklanıyordu,

dosya ekte...
 
Katılım
25 Ekim 2005
Mesajlar
40
Excel Vers. ve Dili
excel2003 TR
sayın excellium, yazdığın cevaplar için çok teşekkür ederim. iş sıralamasını manuel olarak girdiğimde işlerin toplam bitiş zamanını gösteriyor. Sorum şu; iş sıralamasını benim vermem yerine bilgisayar 1 den 7 ye kadar olan sıralamayı rasgele kendisi belirlese. ve bu rasgele sıralamalar içinde toplam bitiş zamanı en kısa olan sıralamayı belirlese.
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Ben sayfadaki formülleri incelemedim, onların doğru olduğunu varsayarak ekteki kodları ekledim.

önce ihtimaller sayfasında 7 işin tüm sıralanmalarını döküyor.
sonra bu ihtimalleri tek tek anasayfada @excellium'un yaptığı formülere yerleştirerek en küçüğünü buluyor.
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Ekteki tabloyu inceleyin. İstediğiniz bu ise, daha sonra en kısa yol problemi ile diğer istediğini yaparım.
 
Katılım
25 Ekim 2005
Mesajlar
40
Excel Vers. ve Dili
excel2003 TR
merhaba danersin, ihtimalleri döktükten sonra birinci sayfadaki makroyu çalıştırdım hücrelerin hepsinde #YOK yazdı :yardim: , ihtimallerin hepsini dökmek yerine hepsini denemesi daha kolay olur gibi. 7 iş için toplam 7!=5040 satır kullanıyor. ğer iş sayısı 10 olsaydı, 3.6 miyon satır gerekecekti ki excelde 65000 satır var ve yetmeyecekti :? .
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Haklısınız, ben 5040 ihtimal olduğu için kodları ayrı ayrı yazdım, gerekirse tüm ihtimallerin sonucunuda 2. sayfaya yazdırmak mümkündü o şekilde. Neyse birleştirdiğimizde ve ihtimalleri sayfaya dökmediğimizde ekteki gibi bir kod çıkıyor. yalnız exceliniz otomatik hesaplamada olmalı (araçlar-seçenekler-hesaplama manuel seçili ise hata olur)

Belirttiğim gibi ben sayfadaki formüller neticeyi doğru veriyormu hesaplamadım.

Aklıma üniversitede yöneylem-üretim yönetimi vb derslerde bu tip problemler çözdüğümüz aklıma geldi . ve bu problemler bilgisayarlardan da önceydi. hepsinin daha pratik çözümleri vardı. sizinkide ödev tarzı bir çalışma ise bu tarz bir çözüm pek beğenilmeyecektir.
 
Katılım
25 Ekim 2005
Mesajlar
40
Excel Vers. ve Dili
excel2003 TR
Merhaba danersin,
ilgin için çok teşekkür ederim, çalışman işime yarayacak gibi, önemli değil ama küçük bir eksiği var, en iyi sıralamayı bulduktan ve tarama bittikten sonra en iyi sıralamayı tablo olarak yazıyor ama g4:g10 hücrelerine yazmıyor. başlangıç sıralamasını yazıyor. Çok teşekkür ederim. :mutlu:
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
100. defa kendi kendime foruma bir kod yazdığımda önce deneyeceğime söz veriyorum ama sonra işyerinden kaynaklanan acele ile (bir an önce yollayımda sonra araya başka şey girer diye) denemeden yolluyorum.

Satır ve sütun indislerini ters yazmışım.
Kodda Cells(9,20) olan her yeri Cells(20, 9) yaparmısınız.
Bu neticeyi- toplam saati gösteren hücre.

veya aşağıdan hepsini kopyalayın



Sub ihtimalleridok()
'Application.ScreenUpdating = False
Dim eniyi As Double

eniyi = 1E+17
sat = 1
For i = 1 To 7
For j = 1 To 7
If j = i Then GoTo 100
For k = 1 To 7
If k = j Or k = i Then GoTo 90
For l = 1 To 7
If l = k Or l = j Or l = i Then GoTo 80
For m = 1 To 7
If m = l Or m = k Or m = j Or m = i Then GoTo 70
For n = 1 To 7
If n = m Or n = l Or n = k Or n = j Or n = i Then GoTo 60
For z = 1 To 7
If z = n Or z = m Or z = l Or z = k Or z = j Or z = i Then GoTo 50

Cells(4, 7) = i
Cells(5, 7) = j
Cells(6, 7) = k
Cells(7, 7) = l
Cells(8, 7) = m
Cells(9, 7) = n
Cells(10, 7) = z

If Cells(20, 9) < eniyi Then
eniyi = Cells(20, 9)
i999 = i
j999 = j
k999 = k
l999 = l
m999 = m
n999 = n
z999 = z
End If


50
Next z
60
Next n
70
Next m
80
Next l
90
Next k
100
Next j
Next i

Cells(4, 7) = i999
Cells(5, 7) = j999
Cells(6, 7) = k999
Cells(7, 7) = l999
Cells(8, 7) = m999
Cells(9, 7) = n999
Cells(10, 7) = z999

End Sub
 
Üst