Skip to main content

AccessTr.neT


Userform Dan Excel Hücresindeki Değeri Belirli Bir Aralığa Göre Hesaplatma.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
23
1391

Userform Dan Excel Hücresindeki Değeri Belirli Bir Aralığa Göre Hesaplatma.

#19
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.
Cevapla
#20
(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 
[Resim: img-cray.gif]


Cevapla
#21
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
Cevapla
#22
@berduş hocam çok teşekkür ederim.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#23
rica ederim
iyi çalışmalar
Cevapla
#24
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
.rar TEKLİF YÖNETİM SİSTEMİ -1.rar (Dosya Boyutu: 88,21 KB | İndirme Sayısı: 3)
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task