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

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

قام بنشر

image013.gif

image012.gif

اخواني الكرام:

عندما قمت بالاعداد لشرح موضوع Select Case توصلت الى عمل دالة جديدة تقوم باستخراج اسم المحافظة وتاريخ الميلاد والنوع من الرقم القومي المصري قد لا تكون هذه الدالة جديدة عليكم فقد قام عدد من الاساتذة واذكر منهم الاستاذ خبور بعمل دوال احترافية بهذا الخصوص ولكني احببت ان اضعها هنا للاستفادة منها

الدالة تحوي على بارو مترين هما

1. A_Rng ويمثل خلية الرقم القومي

2. T ويمثل الخيار الخاص بالعنصر المراد استخراجه

===============================

وهنا المتغير T ينقسم الى التالي اي عندما

T = 1 يتم استخراج اسم المحافظة

T = 2 يتم استخراج تاريخ الميلاد

T = 3 يتم استخراج النوع سوء ذكر او انثى

====

ويصبح الشكل النهائي للدالة



=A_ID(A_Rng;T)

ارجو منكم التجربة وابداء الراي

اليكم المرفق 2003

دالة معرفة.rar

  • Like 11
قام بنشر

نرجو اضافة هذه الاكواد للمحافظات حتى يكتمل الجمال

***

القول الفصل فى اكواد المحافظات

1 القاهرة 2 الاسكندرية 3 بورسعيد 4 السويس 11 دمياط

12 الدقهلية 13 الشرقية 14 القليوبية 15 كفر الشيخ

16 الغربية 17 المنوفية 18 البحيرة 19 الاسماعيلية

21 الجيزة 22 بنى سويف 23 الفيوم 24 المنيا

25 اسيوط 26 سوهاج 27 قنا 28 أسوان 31 البحر الأحمر

32 الوادى الجديد 33 مطروح 34 شمال سيناء

35 جنوب سيناء 36 الأقصر 37 اخرى

***

ولك خالص تقديري

  • Like 1
قام بنشر

اخى الرائع المبدع

المايسترو /عبدالله المجرب

دائما لا تاتى الا بالاجمل والافضل

بارك الله لنا فيك

واطال عمرك وامتعنا بوجودك

:signthankspin: :signthankspin: :fff: :fff: :signthankspin: :signthankspin:

  • Like 1
قام بنشر

اخى عبدالله ابو احمد

بارك الله فيك ونفع بك

دالة ممتازة

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

سعد عابد

قام بنشر

مبدع دائما " أبوأحمد "

جزاكم الله تعالى خيرا

إبداع مابعده إبداع وفقكم الله تعالى

تقبل وافر احترامى وتقديرى

قام بنشر

مبدع دائما " أبوأحمد "

جزاكم الله تعالى خيرا

إبداع مابعده إبداع وفقكم الله تعالى

تقبل وافر احترامى وتقديرى

إبداع مابعده إبداع وفقكم الله تعالى

قام بنشر

السلام عليكم

في مملكة البحرين يتكون الرقم الشخصي من 9 ارقام وفي الغالب يعتمد على اخر رقمين لتحديد العمر ومن هذا المنطلق قمت بعمل هذه الدالة المعرفة لحساب العمر

وتندرج طريقة الحساب الى الاتي

1. اذا كان اخر رقمين اقل من 12 (اخر رقمين في السنة الحالية) يتم حساب سنة الميلاد بذلك الرقمين على اساس انها بعد 2000

مثال

011234567 يعتبر هذا من مواليد 2001

051234567 يعتبر هذا من مواليد 2005

2. اذا كان اخر رقمين اكبرمن 12 (اخر رقمين في السنة الحالية) يتم حساب سنة الميلاد بذلك الرقمين على اساس انها بعد قبل 2000

مثال

841234567 يعتبر من موليد 1984

331234567 يعتبر من موليد 1933

991234567 يعتبر من موليد 1999

وهكذا

تتكون الدالة من متغير واحد هو خانة الرقم الشخصي


Function Age(T As Variant) As String

If T = "" Or Len(T) <> 9 Then Exit Function

Select Case Mid(T, 1, 2)

Case Is > Mid(Year(Now()), 3, 2):

Abdulla = Int((Date - DateSerial("19" & Mid(T, 1, 2), Month(Now()), Day(Now()))) / 365)

Age = Abdulla

Case Is <= Mid(Year(Now()), 3, 2):

Abdulla1 = Int((Date - DateSerial("20" & Mid(T, 1, 2), Month(Now()), Day(Now()))) / 365)

Age = Abdulla1

Case Else: Age = ""

End Select

End Function

شكل الدالة سيكون هكذا

=Age(A1)

بفرض ان A1 هي خلية الرقم الشخصي

ارجو ان تكون الدالة فيها الفائدة لمن يستخدمها

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

عمل ممتاز استاذ عبدالله

بس ممكن تعديل بسيط للدالة

اذا كتبت الرقم القومى مثلا 22905111111210 فيكون تاريخ الميلاد 11/ 05 / 2029

ولكن صحته 11 / 05 / 1929 لان اذا كان الرقم الاخير 2 فبالتالى يكون مواليد 1900 اذا كان 3 فيكون مواليد 2000

شكرا على سعة صدرك

تم تعديل بواسطه دغيدى
قام بنشر

السلام عليكم

اخي باسم

شكراً على هذه الملاحظة

لتعديل الدالة

عدل هذا السطر


A_ID = Format(DateSerial(Mid(A_Rng, 2, 2), Mid(A_Rng, 4, 2), Mid(A_Rng, 6, 2)), "yyyy/mm/dd")

ليصبح

A_ID = Format(DateSerial("19" & Mid(A_Rng, 2, 2), Mid(A_Rng, 4, 2), Mid(A_Rng, 6, 2)), "yyyy/mm/dd")

  • Like 2
  • Thanks 1
قام بنشر

العلامة عبد الله المجرب

عمل رائع

دائما تتحفنا وتذهلنا باعمالك التى

تبهر العيون وتحير الالباب

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

وسدد خطاكم

زائر
هذا الموضوع مغلق.
×
×
  • اضف...

Important Information