تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال: كيف يمكن التقريب لأقرب 5 ارقام
#11
الف شكر لك اخي الفاضل
الرد }}}
تم الشكر بواسطة:
#12
كود :
If Text6.Text / 2 < 4 Then
Text8.Text = 4
End If
If Text6.Text / 2 > 4 Then
Text8.Text = Text6.Text / 2
End If
فاضل text8.text
وهو عباره عن الحديد وعدد الحديد
الرد }}}
تم الشكر بواسطة:
#13
السلام عليكم

- على حسب فمهي مما قرأته من الردود جرب هذا الكود وضعه داخل كود الزر الذي يقوم بالتنفيذ :-

كود :
Dim A As Integer

A = Val(Trim(Text5.Text)) Mod 5
IF A > 0 Then
Text5.Text = Val(Trim(Text5.Text)) + (5-A)
End IF
A = Val(Trim(Text8.Text)) Mod 2
IF A > 0 Then
Text8.Text = Val(Trim(Text8.Text)) + (2-A)
End IF

- تحياتي .
الرد }}}
تم الشكر بواسطة:
#14
اخي الفاضل vb coder
سأشرح لك الامر
كالتالي عندي تكست6 وتكست 8
تكست 8=تكست6 على 2
بشرط الا يقل عن 4 اسياخ فقمت بكتابة هذه الدالة
كود :
If Text6.Text / 2 < 4 Then
Text8.Text = 4
End If
If Text6.Text / 2 > 4 Then
Text8.Text = Text6.Text / 2
End If
ولكن هناك مشكلة اخرى انه لا يوجد في الاعداد نص سيخ او عدد فردي من الاسياخ في الاعمدة
لذلك لابد من تقريب اي عدد فردي او اي عدد به كسر الى عدد زوجي
2 ومضاعفاتها اي ان الاسياخ تكون اما 4 او 6 او 8 او 10 او 12 او 14 او 16 الخ
فأرجوا اعادة سياغة الكود مرة اخرى وشكرا
الرد }}}
تم الشكر بواسطة:
#15
طيب تعديل على كودك :

كود :
Dim A As Integer

If Val(Trim(Text6.Text)) / 2 < 4 Then
Text8.Text = "4"
End If
If Val(Trim(Text6.Text)) / 2 > 4 Then
A = (Val(Trim(Text6.Text)) / 2) Mod 2
IF A > 0 Then
Text8.Text = (Val(Trim(Text6.Text)) / 2) + (2-A)
Else
Text8.Text = Val(Trim(Text6.Text)) / 2
End IF
End If
الرد }}}
تم الشكر بواسطة:
#16
لسه بيعطي كسور
ولم يعطي مضاعفات الرقم 2
الرد }}}
تم الشكر بواسطة:
#17
كود :
Dim A As Double
Dim B As Double

B =  Val(Trim(Text6.Text)) / 2
If B <= 4 Then
Text8.Text = "4"
ElseIF B > 4 Then
A = B Mod 2
IF A > 0 Then
Text8.Text = B + (2-A)
Else
Text8.Text = B
End IF
End If
الرد }}}
تم الشكر بواسطة:
#18
لم يحدث شئ
ولم يقرب لاي رقم عشري او لرقم زوجي
الرد }}}
تم الشكر بواسطة:
#19
قمت ببرمجتها والحمد لله وهذا هو الكود للاستفادة وشكرا لأخواننا

كود :
If Val(Text6.Text / 2) < 4 Then
Text8.Text = 4
End If
If Val(Text6.Text / 2) > 4 Then
Text8.Text = Round2Digit(Val(Text6.Text / 2))
End If
End Sub

    Private Function Round2Digit(num As Integer)
    If (num >= 2) And (num Mod 2) = 0 Then
        Round2Digit = num
        Exit Function
    End If
    Round2Digit = num Mod 2
    If Round2Digit >= 4 Then
        Round2Digit = num - Round2Digit + 9
    Else
        Round2Digit = num - Round2Digit + 2
    End If
    If num = 0 Then Round2Digit = 0
    
    
End Function
الرد }}}
تم الشكر بواسطة:
#20
أنا كنت . أكتب الردرد من الموبايل والآن من الكمبيوتر . جرب هذا الكود :
كود :
Dim A As String
Dim B As Double
Dim C As String
Dim D As String

A = Val(Trim(Text6.Text)) / 2
If InStr(1, A, ".") <> 0 Then
   B = Val(Mid$(A, InStr(1, A, ".")))
   C = Val(Left$(A, InStr(1, A, ".") - 1))
   If C Mod 2 > 0 Then
      D = A + (1 - Val(B))
   Else
      D = A + (2 - Val(B))
   End If
Else
   If Val(A) Mod 2 > 0 Then
      D = A + 1
   Else
      D = A
   End If
End If

If D <= 4 Then
   Text8.Text = "4"
Else
   Text8.Text = D
End If
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم