Normalde bende kod yazmıştım ve silmiştim berduş hocanın kodu kısa olduğu için ve kafa karışmasın diye.
Mantıken kod ile fitil sayı birer birer artırınca 400-450 aralığı varsa çözülüyordu yoksa ikinci şart aranıyordu.Yani bence fitil sayısını 2 den başltıp artırarak uygun değeri bulmak daha iyi gibi geliyor fikir açısından.
Userform Dan Excel Hücresindeki Değeri Belirli Bir Aralığa Göre Hesaplatma.
(20/09/2021, 23:23)berduş yazdı: 14. mesajdaki kodu yeniden düzenlemiştim deneyebildiniz mi?
@berduş hocam 5000 cephe * açılır 2600 değerlerini girdiğimde kod 6 fitil sayısı (458) hesaplaması gerekiyorken 7 fitil sayısı ( 381 ) olarak sonucunu veriyor. 14. mesajı düzenlemiştiniz diye hatırlıyorum. Yedekten kontrol ettim, yanlış yedeği silmediysem 14.mesajdaki kod değişmemiş gözüküyor. Velhasıl kelam 400-450 aralığı olmazsa 450 - 480 aralığından 450 ye en yakın değeri getirsin diye konuşmuştuk. Maalesef şu anda çok farklı bir sonuç getirdi.
Access Çekirgesi
If xDgr = 0 Then xDgr = xMin
If xDgr > 480 Then xDgr = xMax
galiba bu 2 satırların yerlerini karıştırmışım)Set S1 = Sheets("Pergole")
yC8 = S1.Range("C8").Value
xB21 = Int((yC8 + 225) / 450) - 1 '<== eklenen
xB22 = Int((yC8 + 225) / 400) + 1
For xB = xB21 To xB22
xSon = (yC8 - 175) / (xB - 1)
If xSon > 450 Then
xMin = xB
ElseIf xSon < 400 Then
xMax = xB
Else
xDgr = xB
Exit For
End If
Next xB
If xDgr = 0 Then xDgr = xMin
If xDgr > 480 Then xDgr = xMax
S1.Range("B21").Value = xDgr
rica ederim
iyi çalışmalar
iyi çalışmalar
Alternatif olabilir abey.
Function R21Bul() As Integer
Dim i As Long, sonuc As Integer
Dim rg21 As Range, rg22 As Range
Const donguSayisi As Integer = 2000
With ThisWorkbook.Worksheets("Pergole")
Set rg21 = .Range("B21"): Set rg22 = .Range("B22")
For i = 2 To donguSayisi
rg21.Value = i
If rg22.Value >= 400 And rg22.Value <= 450 Then
sonuc = i: GoTo var
ElseIf rg22.Value < 400 Then
sonuc = i - 1: Exit For
End If
Next i
For i = sonuc To donguSayisi
rg21.Value = i
If rg22.Value > 450 Then
sonuc = i: Exit For
End If
Next i
var:
R21Bul = sonuc
End With
End Function
Konuyu Okuyanlar: 2 Ziyaretçi