مساعدة برمجية في برنامج الإكسل

قمت بعمل شبه فورم لإدخال وترحيل البيانات في ملف اكسل بإستخدام اكواد الفيجوال بيسيك، وهذه سكرين له:

أنا أريد أن أجعل صندوقي النص (تاريخ التسجيل - تاريخ الرد (الحل)) يكونان خاصين بإدخال تواريخ على الصيغة dd/mm/yyyy بدلًا من أن يكونا مربعي نص عاديين…

وهذا الكود البرمجي للأربعة أزرار (حفظ - بحث - تعديل - تفريغ):
Function Reset()

Application.ScreenUpdating = False

Combogender.Text = ""
Combogender.BackColor = vbWhite

ComboClass.Text = ""
ComboClass.BackColor = vbWhite


TextNum.Value = ""
TextNum.BackColor = vbWhite

txtdetails.Value = ""
txtdetails.BackColor = vbWhite

txtregdate.Value = ""
txtregdate.BackColor = vbWhite

txtenddate.Value = ""
txtenddate.BackColor = vbWhite

txtresolve.Value = ""
txtresolve.BackColor = vbWhite



OptYes.Value = False
OptNo.Value = False


Application.ScreenUpdating = True


End Function

Private Sub cmdEdit_Click()
Application.ScreenUpdating = False

Dim iCell As Long

iCell = Sheets(2).Range("L10")

    With ThisWorkbook.Sheets(2)


       .Range("B" & iCell).Value = Combogender.Text
       .Range("C" & iCell).Value = ComboClass.Text
       .Range("D" & iCell).Value = TextNum.Value
       .Range("E" & iCell).Value = txtdetails.Value
       .Range("F" & iCell).Value = txtregdate.Value
       .Range("G" & iCell).Value = txtenddate.Value
       .Range("H" & iCell).Value = txtresolve.Value
       .Range("I" & iCell).Value = IIf(OptYes.Value = True, "تم الحل", "لم يتم الحل")

    End With
    Call Reset

    Application.ScreenUpdating = True

End Sub

Private Sub cmdReset_Click()
Dim i As Integer

i = MsgBox("هل تريد إزالة وتفريغ البيانات من النموذج؟", vbQuestion + vbYesNo + vbDefaultButton2, "Form Reset")

If i = vbYes Then

    Call Reset

End If
End Sub

Private Sub cmdSave_Click()
Application.ScreenUpdating = False

Dim iRow As Long

iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1


    With ThisWorkbook.Sheets(2)
    
       .Range("A" & iRow).Value = iRow - 6
       .Range("B" & iRow).Value = Combogender.Text
       .Range("C" & iRow).Value = ComboClass.Text
       .Range("D" & iRow).Value = TextNum.Value
       .Range("E" & iRow).Value = txtdetails.Value
       .Range("F" & iRow).Value = txtregdate.Value
       .Range("G" & iRow).Value = txtenddate.Value
       .Range("H" & iRow).Value = txtresolve.Value
       .Range("I" & iRow).Value = IIf(OptYes.Value = True, "تم الحل", "لم يتم الحل")
       
    End With
    Call Reset


    Application.ScreenUpdating = True
End Sub

Private Sub cmdSearch_Click()
With ThisWorkbook.Sheets(2)
    
       .Range("K10").Value = TextNum.Value
       Dim iCell As Long
       iCell = .Range("L10").Value
       Combogender.Text = .Range("B" & iCell).Value
       ComboClass.Text = .Range("C" & iCell).Value
       txtdetails.Value = .Range("E" & iCell).Value
       txtregdate.Value = .Range("F" & iCell).Value
       txtenddate.Value = .Range("G" & iCell).Value
       txtresolve.Value = .Range("H" & iCell).Value
       OptYes.Value = .Range("M10").Value
       OptNo.Value = .Range("N10").Value
    End With

End Sub

فهل يمكن تحقيق ما أريده
وهذا الملف للمعاينة:
https://www.mediafire.com/file/bpnqfsoqo4iu5i9/%u0633%u062C%u0644_%u0627%u0644%u0634%u0643%u0627%u0648%u0649_(1).xlsm/file

1 Like

@DMZ @Rema @hacktap للمتابعة

1 Like

حاولت تعديل الكود و لكن لم يفلح.
هل لك ان تقول لي ان كنت قد حصلت على الكود جاهزاً ام انك صنعت وظائف الاستمارة بنفسك ؟
يمكننا ان نستفيد من القوائم المنسدلة في الاعلى (نوع الشكوى, تنصيف الشكوى) لتغير قيمة الحقول المطلوبة.

حصلت على الكود من هنا http://yaser.xyz/vb/showthread.php?p=226#post226 وقمت بالتعديل عليه

يمكننا ان نستفيد من القوائم المنسدلة في الاعلى (نوع الشكوى, تنصيف الشكوى) لتغير قيمة الحقول المطلوبة.

كيف ذلك؟

هناك بعض التعقيدات حين يتعلق الامر بأضافة التاريخ الى هذه الحقول.
من فضلك قل لي ما هي نسخة الاوفيس الخاصة بك؟ هل هي 32بت ام 64 ؟

أصدار الأوفيس عندي 64 بت

اخشى اننا غير قادرين على القيام بشيء تحت هذه الظروف.
لتطبيق الامر علينا تفعيل مكون Windows date control او date picker بواسطة VB SP6
و هذه الحزمة متوافقة مع نسخة ٣٢بت من حزمة اوفيس لسبب ما.
قضيت ٤ ساعات من الاختبارات على حاسوبي و لم ينفع الامر.
لنسمع من بقية الزملاء.

1 Like

قضيت ٤ ساعات من الاختبارات على حاسوبي و لم ينفع الامر.

أنا أعتذر بشدة عن ذلك، وأشكرك جدًا أيضًا… لم يكن الأمر يستحق كل وقتك ذلك :disappointed_relieved:

انا اعمل على الامر بمجرد ان اصل الى نتيجة سأشاركها معكم, سأقوم بحذف حزمة اوفيس الخاصة بي و اعيد تنصيبها ببنية 32بت و اختبر.
انا اواجه نفس المشكلة التي ذكرها @utx38 لا تظهر لي اداة اختبار التاريخ و لا اعرف لماذا.