اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

كود زيادة التاريخ الهجري سنة


الردود الموصى بها

السلام عليكم ورحمة الله وبركاته 

هل من كود لزيادة التاريخ الهجري سنة بالتمام والكمال ، فإذا كان بالخلية a1 تاريخ 1437/10/05   بالكود تتغير الى 1438/10/05

وشكرا  لمن يتطوع بالإجابة

رابط هذا التعليق
شارك

هذا الكود لزيادة التاريخ الميلادي سنة

Sub aaab()
myDateIn = [a1].Value
myDateOut = DateAdd("yyyy", 1, myDateIn)
[a1].Value = myDateOut

وهذا كود آخر  ايضا للتاريخ الميلادي

Sub dateFixer()

 Dim d As Date
    d = ActiveCell.Value
    ActiveCell.Value = DateSerial(Year(d) + 1, Month(d), Day(d))
End Sub

تغيير التاريخ للخلية النشطة

 

رابط هذا التعليق
شارك

هذه حيلة لزيادة التاريخ الهجري  بافتراض ان التاريخ الموجود إما العام فيه 1436 او 1437 او 1438  

وان الخلايا المطلوب تغييرها من a1 الى a10

ولعل احد الاخوة  يتحفنا بحل افضل

Sub a1date()


 Range("a1:a10").Select
 
Selection.Replace What:="1438", Replacement:="1439", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
  Selection.Replace What:="1437", Replacement:="1438", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
           
 Selection.Replace What:="1436", Replacement:="1437", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
 
End Sub

 

رابط هذا التعليق
شارك

9 ساعات مضت, عاطف عبد العليم محمد said:

هذا الكود لزيادة التاريخ الميلادي سنة


Sub aaab()
myDateIn = [a1].Value
myDateOut = DateAdd("yyyy", 1, myDateIn)
[a1].Value = myDateOut

وهذا كود آخر  ايضا للتاريخ الميلادي


Sub dateFixer()

 Dim d As Date
    d = ActiveCell.Value
    ActiveCell.Value = DateSerial(Year(d) + 1, Month(d), Day(d))
End Sub

تغيير التاريخ للخلية النشطة

 

الاخ / عاطف

ماهي مشكلتك مع هذا الكود حتي نتمكن من مساعدتك

رابط هذا التعليق
شارك

14 ساعات مضت, حسين العصلوجى said:

الاخ / عاطف

ماهي مشكلتك مع هذا الكود حتي نتمكن من مساعدتك

شاكرا لك تفضلك بعرض المساعدة 

الكود لا يعمل اذا كان التاريخ هجري

رابط هذا التعليق
شارك

17 ساعات مضت, حسين العصلوجى said:

myDateOut = DateAdd("yyyy", 1, myDateIn)

اخي الفاضل بالنسبة لهذا الكود فهو يعمل لكن سوف تفرق مغك يوم او يومين في بعض السنوات لاختلاف عد ايام الاشهر الهجرية من سنه لاخري

اما في المرفق تم التعامل مع التاريخ كنص ثم اعادة تحويله لتاريخ لاضافة سنه كاملة للتاريج دون اي فارق جرب الملف لعله يكون المطلوب

تحياتي

 

 

اضافة سنه للتاريخ الهجري.rar

  • Like 1
رابط هذا التعليق
شارك

شكرا جزيلا لك أخي سليم حاصبا 

فضلا  أريد ألا يكون في العمود 3 المعادلة  ـ اريد اذا تم الضغط على اي خلية في العمود 3 يكتب فيها التاريخ الموجود في العمود1 زائد سنة

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

انا حاولت ولم اوفق

جزاك الله خيرا

رابط هذا التعليق
شارك

هو المطلوب تماما حسب ما أنا طلبت  جزاك الله خيرا

ولكن أكمل جميلك  لأنني حاولت التعديل قليلا ما استطعت 

فإن أكملت جميلك أخي سليم استفدت من الكود واستفاد غيري إن شاء الله 

والتعديل فقط سيكون في الاعمدة  

                   العمود المطلوب أن يتغير سيكون العمود رقم 9 أو 10

                   والعمود الذي سيتم الضغط عليه هو العمود 1 او 2

فإذا تم الضغط على العمود ا  يتغير العمود 9 وإذا تم الضغط على عمود 2 يتغير العمود 10

وطلب آخر لو زدتم في احسانكم

أريد ان أزيد عدد أيام على التاريخ الهجري بمعادلة في عمود آخر  حسب المرفق 

واعتذر لك عن اشغالك

 

 

auto_fit Higri.rar

رابط هذا التعليق
شارك

انسخ هذه المعادلة الى الخلية G3 , و اسحبها الى H3 ثم نزولاُ

=LEFT(I3,FIND("/",I3,7))&RIGHT(I3,2)*1-10

بالنسبة الى تعديل الكود اليك الكود مغدلاً صغه في حدث الصفحة الثانية

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
On Error GoTo 1
  If Target.Columns < 3 And Target.Offset(0, 8) <> "" Then

         If Target.Offset(0, 8) <> "" Then
            ad = Target.Offset(0, 8).Address(1, 0)
            y = "Left(" & ad & "," & 4 & ")+" & 1 & " & " & "RIGHT(" & ad & ",FIND(""*"",SUBSTITUTE(" & ad & ",""/"",""*"",1),1)+1" & ")"
            Target = Evaluate(y)
         End If
         
  End If
         
1:
End Sub

 

 

تم تعديل بواسطه سليم حاصبيا
رابط هذا التعليق
شارك

 يا اخي احرجتني من كرمك واخجلتني من جهلي

الآن اذا مر المؤشر على العمود الاول او الثاني يكتب التاريخ بعد الزيادة فيهما و المطلوب بارك الله فيك ان يتغير التاريخ في العمود المكتوب فيه التاريخ  ويبقى العمود الاول او الثاني خالي

وبالنسبة للمعادلة لم تعمل

auto_fit Higri.rar

رابط هذا التعليق
شارك

26 دقائق مضت, عاطف عبد العليم محمد said:

 يا اخي احرجتني من كرمك واخجلتني من جهلي

الآن اذا مر المؤشر على العمود الاول او الثاني يكتب التاريخ بعد الزيادة فيهما و المطلوب بارك الله فيك ان يتغير التاريخ في العمود المكتوب فيه التاريخ  ويبقى العمود الاول او الثاني خالي

وبالنسبة للمعادلة لم تعمل

auto_fit Higri.rar

بالنسبة للمعادلة استبدل الفاصلة بقاصلة منقوطة

9 دقائق مضت, سليم حاصبيا said:

بالنسبة للمعادلة استبدل الفاصلة بقاصلة منقوطة

اضف هذا السطر للكود  مباشرة بعد السطر الثامن (اي ليصبح هو السطر التاسع)

Target.Offset(0, 8).NumberFormat = ";;;"

 

رابط هذا التعليق
شارك

اخي الكريم سليم حاصبيا

شكرا جزيلا لك 

اولا  بإضافة السطر التاسع كما تفضلت ( قبل end if الاولى ) كل ما تغير هو ان التاريخ في العمود 9 او 10 يتغير الفورمات له فلا يظهر  والمطلوب ان يظهر ويزداد سنة والا يتغير العمود1 او 2 يبقى خالي

اذا تعذر ذلك فلا باس ان يكون التغير بالضغط على العمود 9 او 10

غيرت السطر التاسع  بالآتي

 

Target.Offset(0, 8) = Target.Columns

فاصبحت النتيجة مرضية ــ يتغير العمود 1 او 2 ويتغير ايضا العمود 9 او 10

ثانيا  المعادلة اشتغلت بارك الله فيك ولكن النتيجة اريد استغلاها بتحديد عدد الايام الباقية بالطرح من now()  إذا كان عندك حل لذلك  لانعا تعطي 

#VALUE!
رابط هذا التعليق
شارك

ممكن من غي اكواد انك تعملها بطريقه احسن مثلا اكتب فى الخليه A1 التاريخ مثلا 22/06/1437 وفى الخليه الى جنبها اعمل A1+360 =يبقى كده انت ضفت سنه كامله يعنى لو عايز سنتين هاتعمل +720

تم تعديل بواسطه محمد عبد الناصر
رابط هذا التعليق
شارك

شكرا لك اخي  محمد عبد الناصر          طبعا انا فكرت في الحل ده  بس النتيجة عندي

#VALUE!

اذا عندك بتعطي نتيجة صحيحة واليوم يتغير بالظبط فارجو ان ترسل الملف مرفقا او تخبرني كيف 

رابط هذا التعليق
شارك

اخي عاطف انت تكتب التاريخ بصيغة نص وهذا شيء لا يفهمه اكسل

اذا كنت تريد ان يكون التاريخ هجري يكفي ان تكتبه ميلادي و تنسق الخلايا الى التاريخ الهجري

رابط هذا التعليق
شارك

4 ساعات مضت, محمد عبد الناصر said:

جرب كده الملف ده لو ده الى انت عايزه قولى  واشرحهالك وحده وحده تحت امرك

New Microsoft Excel Worksheet.rar

ملاحظه اسف انى قولت رقم 360

ايام السنه الميلاديه 365 يوم

و الهجريه 354 يوم

يعنى تكتب +354 يوم فى الملف المرفق

تم تعديل بواسطه محمد عبد الناصر
رابط هذا التعليق
شارك

شكرا لك اخي محمد عبد الناصر

أخي سليم  هل يمكن ان تشرح الكود لنتعلم منه

 والكود يعمل في اي عمود ليس فقط في عمود 1 و 2  إذا كان العمود غير خالي والاعمدة التي بعده ب8 عمود غير خالية

فأرجو إصلاح ذلك وجعله يعمل في عمود 1 و 2 فقط 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information