اذهب الي المحتوي
أوفيسنا

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

قام بنشر (معدل)

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

بعد البحث وجدت دالة تقوم بعمل دالة

Datedif

ولكنها عبر محرر الاكواد

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

يوجد في المرفق الدالة الاصلية والكود بعد اجراء التعديلات

الكود كالتالي

Sub MyAge()
    Dim iYear, iMonth, iDay As Integer
    Dim dt As Date
    Dim sResult, sResult2, sResult3, rng, BirthDate As String
    
    Dim i As Integer
    For i = 2 To 22
    '2 هي اول صف به تاريخ ميلاد مطلوب حساب عمره
    '22    أخر صف به تاريخ ميلاد مطلوب حساب عمره
    
    BirthDate = Sheet1.Range("B" & i)
    rng = Sheet1.Range("c1")
    'الخلية المطلوب حساب العمر منها
    
    If Not IsDate(BirthDate) Then Exit Sub
    dt = CDate(BirthDate)
    'تحويل قيمة الخلية إلى تاريخ
    
    If dt > rng Then Exit Sub
    
    iYear = Year(dt)
    iMonth = Month(dt)
    iDay = Day(dt)
    iYear = Year(rng) - iYear
    iMonth = Month(rng) - iMonth
    iDay = Day(rng) - iDay

    If Sgn(iDay) = -1 Then
        iDay = 30 - Abs(iDay)
        iMonth = iMonth - 1
    End If

    If Sgn(iMonth) = -1 Then
        iMonth = 12 - Abs(iMonth)
        iYear = iYear - 1
    End If
    
    sResult1 = iYear
    sResult2 = iMonth
    sResult3 = iDay
   
    Sheet1.Range("d" & i) = sResult1
    Sheet1.Range("e" & i) = sResult2
    Sheet1.Range("f" & i) = sResult3
'السطر التالي يمكن حذفه اذا اردت ان يكون العمر مقسم إلى 3 خلايا
    Sheet1.Range("c" & i) = sResult1 & " Year, " & sResult1 & " Month, " & sResult3 & " Day "

Next i
End Sub

ملاحظة هامة

sheet1

دا اسم الورقة في محرر الاكواد

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

Worksheets("اسم الورقة الموجود في التبويب").range(..........)

 

MyAge.rar

ويمكن استخدام الدالة

DateDif

كما يلي

ممكن تستخدم الدوال التالية

=DATEDIF(B3;$C$1;"y")

أو

=IF(B3="";"";DATEDIF(B3;$C$1;"y"))

 

لحساب السنة

=DATEDIF(B3;$C$1;"ym")

أو

=IF(B3="";"";DATEDIF(B3;$C$1;"ym"))

لحساب الشهر

=DATEDIF(B3;$C$1;"md")

أو 

=IF(B3="";"";DATEDIF(B3;$C$1;"md"))

لحساب اليوم

MyAge.rar

تم تعديل بواسطه علي المصري
اضافة ملاحظة

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information