• DİKKAT

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

Ay İçerisinde Toplam Miktarı Gelişigüzel Dağıtmak

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,437
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Yapmak istediğimi örnek dosyamda da anlatmaya çalıştım. Toplam yük miktarı var ve bu rakamı ay içerisinde örnekte de belirttiğim alt ve üst limitler dahilinde gelişigüzel dağıtmak istiyorum. Kod ya da Formül ile olabilir.
 

Ekli dosyalar

Merhaba.

Bir deneme.

Aşağıdaki gibi olabilir.
AH3, AI3 ve AJ3 hücrelerinde değişiklik yapıldığında (elle yazarak) kod otomatik olarak çalışır.

DİKKAT: Hedef sayı, alt ve üst limit arasındaki aralığın büyüklük küçüklüğüne göre işlem biraz bekletebilir.
.
Kod:
[B][COLOR="red"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR][/B]
If Intersect(Target, [[B][COLOR="Blue"][SIZE="3"]AH3:AJ3[/SIZE][/COLOR][/B]]) Is Nothing Then Exit Sub
Call LIMIT
[B][COLOR="red"]End Sub

Sub LIMIT()[/COLOR][/B]
alt = [AH3]: ust = [AI3]: hedef = [AJ3]
If ust * 30 < hedef Then
    MsgBox "Tüm değerler üst limit olarak verilse bile;" & vbLf & _
            "hedef değere ulaşılamaz!..." & vbLf & vbLf & _
            "Üst limiti artırarak tekrar deneyiniz.", vbCritical
    Exit Sub
End If
fark = Abs(Int((hedef - 30 * alt) / (30 * ust - hedef)))
If hedef - 30 * alt > 30 * ust - hedef Then alt = alt + fark

10
For sut = 3 To 32
    Cells(3, sut) = WorksheetFunction.RandBetween(alt, ust)
Next
topl = WorksheetFunction.Sum([C3:AF3])
If topl <> hedef Then GoTo 10
MsgBox "BİTTİ", vbInformation, "..::.. Ömer BARAN ..::.."
[B][COLOR="Red"]End Sub[/COLOR][/B]
 
Ömer Hocam. Çok teşekkür ederim. Öncelikle geç cevap yazabildim. Kusura Bakmayın...Bulunduğum yerde İnternet olmaması nedeniyle geç dönüş yapabildim. Gayet güzel çalışıyor. Elinize sağlık.
 
Son düzenleme:
Geri
Üst