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

داله IF بلا حدود الجديده مع الشرح


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

بسم الله الرحمن الرحيم

الكثير من الاسئله تدور حول أظهار بيانات محدده عند أدخال رقم أو أسم و هى وسيله فعاله و نستخدمها كثيرا عند أدخال البيانات و ذلك للتحقق من صحه الأدخال 0

و عاده فى الأكسيل نستخدم داله VlookUp و عائلتها و فى بعض الأحيان أو عند أستخدامها بطريقه غير صحيحه تعطى نتائج غير دقيقه 0

و قد أستخدمت داله بسيطه و جديده تتيح لك أن تدخل فى ورقه ( و هى ورقه التعريف ) اى عدد من بيانات العملاء مثل الرقم و الأسم و فى ورقه اخرى ( و هى ورقه أدخال البيانات ) اذا كتبت فى العمود الاول الرقم سيظهر لك فى العمود الثانى الاسم 0

و لن اكتفى بارفاق الداله بل ساقوم بشرح طريقه تطبيقها كى تستطيع ان تتعامل معها بنفسك 0

ستجد بالملف المرفق ورقتى عمل

الورقه الأولى بأسم “ ID ” ( و هى ورقه التعريف )

سنقوم بادخال البيانات الاساسيه بها مثل الرقم و الاسم

الورقه الثانيه بأسم “ List ” ( و هى ورقه أدخال البيانات )

ستقوم بالضغط على ALT + F11

الان انت فى صفحه الاكواد

لاحظ انك لن تقوم بادراج Module بل ستقف على ورقه “ ID ” فى اعلى الشاشه على اليسار ثم دبل كليك

الان انت فى صفحه الاكواد داخل ورقه “ ID ”

ستنسخ هذا الكود و تلصقه فى صفحه الاكواد داخل ورقه “ ID ”

وهذا الكود يقوم بتحديد البيانات الاساسيه و يقبل الاضافه و الحذف 0

Public Function ER() As Integer
    ER = Range("A1").CurrentRegion.Rows.Count
End Function
انتهت الخطوه الاولى ستقف على ورقه “ List ” فى اعلى الشاشه على اليسار ثم دبل كليك الان انت فى صفحه الاكواد داخل ورقه “List” ستنسخ هذا الكود و تلصقه فى صفحه الاكواد داخل ورقه “List”
Private Const str As String = "ID"
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.ScreenUpdating = False

    If Target.Column <> 1 Then Exit Sub

    If Not Range("A" & Target.Row) = "" Then
        For i = 2 To Sheets(str).ER
            If Range("A" & Target.Row) = Sheets(str).Cells(i, "A") Then
                Range("B" & Target.Row) = Sheets(str).Cells(i, "B")
            End If
        Next i
    Else
        Range("A" & Target.Row).Offset(0, 1).ClearContents
    End If

    Application.ScreenUpdating = True
End Sub
هذا الكود هو الذى يقوم بالبحث و أظهار النتيجه جرب الان أدخال بيانات فى ورقه “ ID ” ثم انتقل الى ورقه “List” و ادخل بدايه من A2 أى رقم سبق تعريف بورقه " ID " و ستجد النتيجه طيبه ان شاء الله 0 و اذا اردت تطبيق الداله السابقه على اى ملف لديك كل ماعليك ان تقوم بتغيير كلمه ID الموجوده بالسطر الاول بالكود الثانى
Private Const str As String = "ID"

الى اسم ورقه العمل التى تريد ان تكون مصدر للبيانات

اتمنى ان تكون فكره جديده و مفيده

و كل عام و انتم بخير

السلام عليكم

New_If.rar

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

أخي وأستاذي الحبيب / هادي سالم

اسمح لي أن أشكرك جزيل الشكر على هذا العمل الاأكثر من رائع والذي يمثل نقلة نوعية في إطار الاستفادة من ال VBA في إيجاد بدائل وحلول أكثر فاعلية وكفاءة لما يوجد من قصور في بعض دوال الإكسيل ، فهذا العمل المتميز هو بديل أكثر كفاءة وفاعلية ومرونة من دالة IF ودالة VLOOKUP ، فجزاكم الله خير الجزاء وجعله الله في ميزان حسناتكم . وكل عام وأنتم بكل خير .

أخوكم ومحبكم أبو عبدالله

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

بحاجه لتعديل بسيط وهو أن تم إدخال رقم غير موجود في ورقة العمل Id يجب أن لا يبقى آخر أسم في الخليه B في الورقه List

وبارك الله في جهودك

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

مجهود راااااااااااائع و عمل يستحق الشكر و التقدير

بارك الله فيك و جزاك خيراً

و يستدعى مرة أخرى إلى الأذهان حقيقة مفادها أن تعلم ال VBA بات أمراً لا غنى عنه لكل مستخدم محترف للإكسيل .

فقط أنه - بالفعل - ليس بالأمر اليسير ، من واقع تجربتى الشخصية ، رغم أننى أستخدم الإكسيل منذ سنوات عديدة ، و لى دراية لا بأس بها به .

و لعل كلامى هذا يحمل فى طياته الدعوة لتكاتف جهود مشرفينا الأعزاء لعمل سلسلة من الدروس المتتابعة (بدون ردود) لعدم التشتت ، تتدرج بنا للولوج لهذا العالم السحرى ، حتى نتحول من مجرد ناسخين للأكواد ، إلى كاتبين لها ، على طريقة تعلم الصيد بدلاً من الحصول على السمكة .

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

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

عمل رائع بارك الله فيك وكل عام وانت بخير

اذا كان الهدف العمود الاول هل ممكن ربطة مع العمود الثاني

مثال العمود الاول رقم 1 العمود الثاني A

1 B

ارجو ان يكون وصلت الفكرة والف شكر

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

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

عمل رائع بارك الله فيك وكل عام وانت بخير

اذا كان الهدف العمود الاول هل ممكن ربطة مع العمود الثاني

مثال العمود الاول رقم 1 العمود الثاني A

1 B

ارجو ان يكون وصلت الفكرة والف شكر

بسم الله الرحمن الرحيم

اخى الكريم :

لم أفهم الفكره

السلام عليكم

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

بحاجه لتعديل بسيط وهو أن تم إدخال رقم غير موجود في ورقة العمل Id يجب أن لا يبقى آخر أسم في الخليه B في الورقه List

وبارك الله في جهودك

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

عمل رائع بارك الله فيك وكل عام وانت بخير

اذا كان الهدف العمود الاول هل ممكن ربطة مع العمود الثاني

مثال العمود الاول رقم 1 العمود الثاني A

1 B

ارجو ان يكون وصلت الفكرة والف شكر

بسم الله الرحمن الرحيم

استاذ حسام ( صاحب الفضل فى تعلمى الاكسيل )

لك حق

لقد قمت بتعديل الكود و فى نفس الوقت قمت بالرد على الاخ abumaher بانشاء التحقق من الصحه تلقائيا بالكود لتظهر لنا القائمه المطلوبه

اخى abumaher كل ماعليك دبل كليك فى اى خليه بالعمود " A " و ستجد سهم لفتح القائمه .

مرفق ملف

السلام عليكم

New_If_02.rar

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

الأستاذ الفاضل / هادي سالم

جزاكم الله كل خير على هذا العمل المتميز بحق وأهنئكم وأعضاء هذا المنتدى الرائع بمناسبةعيد الأضحى المبارك وكل عام وحضراتكم بخير .

لي طلب لو تكرمت أستاذ هادي وهو أنه عند اختيار الرقم في العمود A من القائمة المنسدلة فإنه لا يتغير بالتالي بشكل مباشر الإسم في العمود B إلا أن يتم كتابته أقصد الرقم وليس اختياره من القائمة المنسدلة ، فهل من الممكن أن يتغير الإسم بمجرد تغيير الرقم من القائمة المنسدلة بشكل مباشر ، أرجو أن أكون قد وفقت في توصيل الفكرة ، وجزاكم الله خيراً . وللتوضيح أكثر مرفق نفس الملف وقد قمت بتغيير الأرقام بالعمود A كلها إلى الرقم 1 من القائمة المنسدلة ومع ذلك وكما هو واضح لم يتغير الإسم بالعمود B.

لكم كل الشكر وجزاكم الله كل خير .

New_If_02.rar

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

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

استاذ الفاضل / هادي سالم

انا والله عاجز عن الشكر ولاكن لك من الدعاء في هذا الايام الفضيله انت وجميع الاخوان بدون استثناء

هذا ماكنت ابحث عنه

وفقك الله وبارك الله فيك وزادك الله علما

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

اعرف ان IF لها شروط

مثلا الطالب الحاصل على اعلى من60 % جيد والطالب الحاصل على 70% جيد جدا والطالب الحاصل على 90% ممتاز

وتقف عند 7 شروط

هل معنى هذا ان هذه الدالة تستطيع ان تزيد عدد شروطها

وكيف

بارك الله لك

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

اعرف ان IF لها شروط

مثلا الطالب الحاصل على اعلى من60 % جيد والطالب الحاصل على 70% جيد جدا والطالب الحاصل على 90% ممتاز

وتقف عند 7 شروط

هل معنى هذا ان هذه الدالة تستطيع ان تزيد عدد شروطها

وكيف

بارك الله لك

اين الرد افادكم الله ؟

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

اعرف ان IF لها شروط

مثلا الطالب الحاصل على اعلى من60 % جيد والطالب الحاصل على 70% جيد جدا والطالب الحاصل على 90% ممتاز

وتقف عند 7 شروط

هل معنى هذا ان هذه الدالة تستطيع ان تزيد عدد شروطها

وكيف

بارك الله لك

بسم الله الرحمن الرحيم

اخى 'nasersaeed'

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

و لكن عند متابعه رابط مشاركه الاخت saffaa و الموضوع صاحب المشكله اعجبتنى طريقتك فى الحوار و اسلوبك فى التعامل مما ينم عن شخصيه محترمه جدا 0

اخى 'nasersaeed'

برجاء ارفاق ملف لما تريد و ستجد الاجايه ان شاء الله حاضره مع الشرح و كل عام و انت طيب

السلام عليكم

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

بارك الله فيك أخى هادى سالم وكل عام وأنتم جميعاً بخير بمناسبة عيد الأضحى

وأنا فى انتظار الرد على اخر مشاركة

هل سيقوم الكود بنقل جميع البانات امكتوبة اما الرقم 1 كما تفعل دالة VlookUp

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

بارك الله فيك أخى هادى سالم وكل عام وأنتم جميعاً بخير بمناسبة عيد الأضحى

وأنا فى انتظار الرد على اخر مشاركة

هل سيقوم الكود بنقل جميع البانات امكتوبة اما الرقم 1 كما تفعل دالة VlookUp

بسم الله الرحمن الرحيم

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

يمكنك اضافه سؤالك بمشاركه منفصله

السلام عليكم

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

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

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

Important Information