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

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

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

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

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

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

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

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