الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة فى اداة msflexgrid ارجوكم

بدأه closed في 22 أغسطس 2013 · 4 رد · 778 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

اريد مساعدة فى برنامج قد انتهيت منه وهى جمع اوقات فى عمود  اداة ( msflexgrid )

 

For حيث اننى استخدم  

(Label ) حتى استطيع الجمع ويظهر فى

 

 ولكن  لا تعمل مع الاوقات ارجو المساعدة

 

العمود المراد جمع اوقاتهم

 

2uszspt.jpg

 

'For A = 1 To (Val(grid1.Rows) - 1)
'amr = Format(TimeValue(grid1.TextMatrix(A, 10)) + TimeValue(amr), "HH:MM:SS") الخطأ يظهر فى هذه السطر باسم    (Run-Time error '13'   Type mismatch (                
'Next A
'Label5.Caption = amr
 
#2

ارجو الرد اخوانى 

#3

السلام عليكم...

    Dim Idx As Long
    Dim Mins As Long
    Dim Hours As Long
    
    Hours = 0
    Mins = 0
    For Idx = 1 To grid1.Rows - 1
        Hours = Hours + CLng(Format$(CDate(grid1.TextMatrix(Idx, 2)), "hh"))
        Mins = Mins + CLng(Format$(CDate(grid1.TextMatrix(Idx, 2)), "nn"))
    Next Idx
    
    Hours = Hours + ((Mins - (Mins Mod 60)) \ 60)
    Mins = Mins Mod 60
    Label5.Caption = CStr(Hours) & " ساعات و " & CStr(Mins) & " دقائق"

نرجو الاستفادة و السلام.

تم تعديل هذه المشاركة بواسطة najy_zl في 23 أغسطس 2013 في 02:56

2

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#4
najy_zl كتب:

السلام عليكم...

    Dim Idx As Long
    Dim Mins As Long
    Dim Hours As Long
    
    Hours = 0
    Mins = 0
    For Idx = 1 To grid1.Rows - 1
        Hours = Hours + CLng(Format$(CDate(grid1.TextMatrix(Idx, 2)), "hh"))
        Mins = Mins + CLng(Format$(CDate(grid1.TextMatrix(Idx, 2)), "nn"))
    Next Idx
    
    Hours = Hours + ((Mins - (Mins Mod 60)) \ 60)
    Mins = Mins Mod 60
    Label5.Caption = CStr(Hours) & " ساعات و " & CStr(Mins) & " دقائق"

نرجو الاستفادة و السلام.

اشكرك على مجهودك اخى ولكن نفس المشكلة تظهر لى 

25krec6.jpg

مع العلم انى استخدم نفس الحلقة التكرارية  وتعمل جيدا جمع عامود كامل ارقام فقط وليس وقت

 

'For zz = 1 To (Val(grid1.Rows) - 1)
'Zaky = Val(grid1.TextMatrix(zz, 8)) + Zaky
'Next zz
'Label7.Caption = Zaky
#5

السلام عليكم....

 

أعتقد أن إحدى الخلايا لا تحتوي على قيمة يمكن تحويلها إلى تاريخ/وقت (خلية فارغة مثلاً).

 

عندما يحدث الخطأ و تظهر الرسالة اختر Debug ثم ضع مؤشر الفأرة على كلمة TextMatrix ليعرض لك قيمة الخلية.

 

يمكنك التخلص من رسالة الخطأ بتجاهل الخلايا التي تحتوي على قيم غير مقبولة:

    For Idx = 1 To grid1.Rows - 1
    If IsDate(grid1.TextMatrix(Idx, 7)) Then
            Hours = Hours + CLng(Format$(CDate(grid1.TextMatrix(Idx, 7)), "hh"))
            Mins = Mins + CLng(Format$(CDate(grid1.TextMatrix(Idx, 7)), "nn"))
    End If
    Next Idx

نرجو الاستفادة و السلام.

2

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

مواضيع مشابهة