استخدم الدالة Edate
=EDATE(A1,12)
انت كدا هتضيف 12 شهر على التاريخ الموجود فى A1 عاوز شهر واحد بدل 12 اكتب 1
لو الدالة دى مش شغالة معاك فى 2003 استخدم الدالة دى
=DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))
هنا جنب السنة ضيفت +1 علشان ازود سنة لو عاوز شهر همسح +1 من year واضيف +1 جنب الشهر
السلام عليكم و رحمة الله
ربما تفيدك هذه المعادلة
=IFERROR(DATEDIF(NOW();DATE(VALUE(1960+MID($B2;2;2));VALUE(MID($B2;4;2));VALUE(MID($B2;6;2)));"m");"على المعاش")
هل يوجد حل لتشغيل مباشر كله فوق بعض Sleep!
وتشغيل زر الطباعة واعدادة الطباعه لا يعمل
وهذا بعض شرح وامل بكم باجاد حل
مرفق
https://www.mediafire.com/file/omiaymuol81ak23/PrintX.rar/file
تم رفع سؤال بمرفق قاسم @Eng.Qassim
اخى الكريم
اشكرك جدا جدا ...... جزاك الله خيرا
لكن المطلوب استخراج عدد الشهور فقط المتبقيه على المعاش من الرقم القومى
انا شهريا اقوم باضافة عدد الشهور يدويا لكل موظف فى قائمة بها 1500 موظف
وذلك لحساب الضريبه على عدد الشهور المتبقيه فقط وليس امامى اى اختيارات غير اضافة عدد الشهور فقط
ليس من صلاحياتى اضافه تاريخ الميلاد ولا تاريخ المعاش .... فقط عدد الشهور المتبقيه للمعاش فقط
ولا توجد بيانات غير الاسم والرقم القومى وحقل فارغ لعدد الشهور
اسف للاطاله .... تحياتى لشخصكم الكريم
تم الحل
Dim a As Integer
Dim DATE_POST As Date
Dim rs As DAO.Recordset
DATE_POST = CDate(Forms![TEST1]![Date_M])
Set rs = CurrentDb.OpenRecordset("subx")
For a = Forms![TEST1]![NumberStart] - 1 To Forms![TEST1]![NumberEnd] - 1
rs.AddNew
If Not Weekday(DATE_POST) Like "[6-7]" Then
rs!id = Forms![TEST1]![id1]
rs!serial = Forms![TEST1]![serial]
rs!NumberX = a + 1
rs!date1 = DATE_POST
Else
a = a - 1
End If
DATE_POST = DATE_POST + 1
rs.Update
Next a
rs.Close
Set rs = Nothing
Me.Requery
هل اخي محمد برنامج الواتس مثبت لديك ....... اذا كانت الاجابة نعم ..... جرب هذا التحايل !!!!
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "whatsapp://send?phone=" & "&text="
ملاحظة انتظر عدة ثواني لعمل البرنامج ....................
اخي محمد حاول فهم الية عمل الكود لأن الشركة تقوم بتحديث برنامجها باستمرار .... فلذلك فهم الية عمل الكود يسهل عليك تعديل الكود كل ما احتجت اليه ....
الحل يقضي حاجة اخونا ازهر .. لاني اتوقع الغرض منه
ولكن اذا جاءت الملاحظة من اخوي موسى هذا يعني ان في جعبته الحلول المناسبة
بحثت فوجدت طريقة اخرى للقراءة والكتابة توظف يونيكود
Private Sub textchange_Click()
FilePath = CurrentProject.Path & "\" & "textm.txt"
Set objx = CreateObject("ADODB.Stream")
objx.Open
objx.Type = 2
objx.Charset = "utf-8"
objx.WriteText textfield
objx.SaveToFile FilePath, 2
objx.Close
End Sub
Private Sub textimport_Click()
Dim objx
Set objx = CreateObject("ADODB.Stream")
objx.Charset = "utf-8"
objx.Open
objx.LoadFromFile (CurrentProject.Path & "\" & "textm.txt")
textfield = objx.ReadText()
objx.Close
Set objx = Nothing
End Sub
في زر الامر ضع التالي
Dim x As Date
Dim a As Integer
Dim rs As DAO.Recordset
x = Forms![TEST1]![Date_M]
Set rs = CurrentDb.OpenRecordset("subx")
For a = Forms![TEST1]![NumberEnd] - 1 To Forms![TEST1]![NumberStart] - 1
rs.AddNew
rs!date1 = x
rs!id = Forms![TEST1]![id1]
rs!serial = Forms![TEST1]![serial]
rs!NumberX = a + 1
x = DateAdd("d", Forms![TEST1]![ChooseDayes], x)
rs.Update
Next a
rs.Close
Set rs = Nothing
Me.Requery
لو تلاحظ اني لم اغير في طريقتك هو تقريبا نفس كودك ولكن يتعامل مع مصدر السجلات
مع انه يمكن كتابته بشكل افضل ولكني استخدمت طريقتك لايصال المعلومة بشكل اسهل
تحياتي
تفضل أخي بس من فضلك اقرأ البرنامج جيداً حتى تعرف كيف يعمل .
1- عند ادخال اليوزر (Admin) والباسوود (T123) موجودين بالبرمجة ويمكن تعديلهم كما تريد . جرب مافي ادخال - جرب أي من اليوزر أو الباسوورد مختلف - جرب الادخال الصحيح .
2- عند غلق فورم الدخول بيدخل تاريخ الصلاحية بالجدول واذا حصل تعديل بزمن الصلاحية يعطيك ماسج .
3- عند انتهاء الصلاحية +3 أيام يعطيق ماسج .جرب الادخل
4- تاريخ الصلاحية من يوم فتح البرنامج +90يوم يمكن تعديلها بالبرمجة كما تشاء .
اذا كان هذا طلبك اضغط على أفضل اجابة .
واليك المرفق .
Login and Validity.accdb