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

رسالة عندما تحتوي الخلية على كلمة معينة


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

السلام عليكم: حاولت في الكود ولكن لم انجح....... ارغب عندما تكون محتويات العمود Sعبارة (لم يباشر) تاتي رسالة باسم الموظف من العمود G تفيد بان "يجب على - اسم الموظف- الأتصال على شئون الموظفين".  وعند بلوغ المتبقي للاجازة 3 أيام  تاتي رسالة باسم الموظف من العمود G تفيد "أدراج - أسم الموظف-في الورديات". ولكم الشكر الجزيل . يوجد كود في حدث الصفحة.علما بان العمود S يحتوي معادلات.

 

Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range

Set A = Range("S:S")
Application.EnableEvents = False
If Intersect(Target, A) Is Nothing Then Exit Sub
If Target.Value = "لم يباشر" Then
       
Application.EnableEvents = True
MsgBox "يجب الاتصال على شؤون الموظفين"
End If

End Sub

ssss.rar

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

أخي العزيز

طلبك فيه إشكال وهو

إذا كان عندنا مثلا أربعة موظفين كلهم تم كتابة عبارة (لم يباشر) أمام كل منهم فكيف العمل ؟

ماذا هو العمل الذي تريد الكود أن يقوم به ؟

أو ما هي آلية العمل ؟

تحياتي

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

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

فهدفي هو اظهار رسالة عند فتح الملف تفيد باسماء الموظفين الذين لم يباشروا

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

السلام عليكم

يتفعل الكود عند الكتابه في العمود A

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
Dim S$, Nm$, SS$, Msg$, Rw
Rw = Target.Row
S = Cells(Rw, 19)
Nm = Cells(Rw, 7)
SS = Cells(Rw, 17)
If S = "لم يباشر" Then
 Msg = " يجب على الموظف  :" & Nm & "  الإتصال على شئون الموظفين "
 MsgBox Msg
End If
If SS <= 3 Then
 Msg = " يجب إدراج الموظف  :" & Nm & "  في الورديات "
 MsgBox Msg
End If
End If
End Sub
رابط هذا التعليق
شارك

العيدروس. شكرا لك ولاكن لم يفي الكود بالغرض . لان العمود S يوجد فية معادلة وهي مبنية على نهاية تاريخ الاجازة أو بالاحرى على المعادلة الموجودة في الخلية Q

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

جرب هكذا انت تريد ان يشعرك على الكل

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:A100")) Is Nothing Then
On Error Resume Next
Dim S$, Nm$, SS$, Msg$, Rw
For Rw = 2 To Cells(Rows.Count, 7).End(xlUp).Row
If Cells(Rw, 7) <> "" Then
S = Cells(Rw, 19)
SS = Cells(Rw, 17)
Nm = Cells(Rw, 7)
If S = "لم يباشر" Then
 Msg = " يجب على الموظف  :" & Nm & "  الإتصال على شئون الموظفين "
 MsgBox Msg
End If
If SS <= 3 Then
 Msg = " يجب إدراج الموظف  :" & Nm & "  في الورديات "
 MsgBox Msg
End If
End If
Next
End If
End Sub

 

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

اخي العزيز العيدروس اشكر لك مساعدتي ولكن انا لا ارغب بان اكتب كلمة "لم يباشر " في العمود S فعبارة لم يباشر تظهر اتوماتيكيا في العمود وذللك لوجود معادلة بداخلة. والكود الذي ارسلته لا يعمل الا عند كتابة عبارة لم يباشر يدويا.

فمطلوبي عند تحول العمود S اتوماتيكيا لعبارة لم يباشر حسب المعادلة الموجودة فية والمرفقة بالملف. يتم اظهار الرسالة

 

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

اكتب اي شيء في العمود A ولاحظ النتيجه 

متى تريد ان يتفعل الكود عند عمل ماذا

هل عند الكتابه في عمود معين او عند الضغط على زر محدد ؟

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

اخي العيدروس لا ارغب في الكتابة في اي عمود. لان هناك معادلة في العمود S عند انتهاء الاجازة اتومتيكيا تظهر عبارة لم يباشر في العمود. فما اريد هو عند ظهور هذة العبارة اتوماتيكيا في العمود S تاتي الرسالة.

اتمنى بان ترى المعادلة الموجودة في الخلية S2.

الرسالة تاتي بعد فتح ملف الاكسل

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

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

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

الملف الأول يعطي مع فتحه مباشرة رسالة واحدة للصنفين " الموظفين - الورديات " لكن عليك بإضافة كلمة " أيام " مع عددها بالعمود Q مثلما توضّحه الصورة أدناه :

1.thumb.jpg.c3ad848fe85076eb6f12f4b2a35c

الملف الثاني يعطي مع فتحه مباشرة رسائل متعدّدة لجميع المعنيين بالأمر سواء للموظفين أو للورديات ..كل واحد باسمه الخاص ..الكود المستعمل بهذا الملف الثاني له علاقة بالألوان .. ليست عملية تنسيق شرطي و إنّما تضع أنت يدويا أو بالأحرى تقوم باختيار اللون الذي يناسبك سواء بالنسبة للفئة الأولى أو الفئة الثانية ..مثلا الفئة التي ستحال على الورديات إخترت لها اللون الأخضر فستجد بالموديل الرقم 14 الذي هو رمز هذا اللون .. وكذلك الرقم 3 الذي هو رمز اللون الأحمر بالنسبة للفئة الأخرى ..إختر الألوان التي تناسبك مثلما شئت ..و تفضّل صورة للوحة رموزها :

2.thumb.jpg.ae80f8a644637cfbb8ecc4218e33

في الأخير أخي الكريم سعد الفقير ..مثلما قلت لك بأول كلامي أنّها مجرّد محاولة من أجل دفع الموضوع و عدم إيقاف عجلة سيرورته .. أكمل أنت الباقي فضلاً لا أمرًا

فائق إحتراماتي

 

 

 

 

 

سعد الفقير 1.rar

سعد الفقير 2.rar

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

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

المتطلبات :

1- في العمود N  يتم ادخال التاريخ الهجري لبداء الاجازة.

2- في العمود P يتم ادخال مدة الاجازة.

3- في العمود O يتم اتوماتيكيا حسب نهاية الاجازة وادراج تاريخ النهاية اتوماتيكيا حسب مدة الاجازة في العمود P .

4- في العمود Q يتم احتساب المتبقي من الاجازة حسب تاريخ اليوم الهجري ومدة الاجازة.

5- عند بلوغ المتبقي للاجازة مدة 3 ايام يتم أضهار رسالة باسم الموظف من العمود G تفيد بان " يجب ادراج - أسم الموظف- في الورديات" ويتم تلوين الخلية باللون الاخضر.

6- عند انتهاء الاجازة يتم أدراج كلمة "أنتهت" في العمود Q ويتم تلوين الخلية بالاحمر ويتم ادراج كلمة "لم يباشر" في العمود S ويتم اضهار رسالة تفيد بان "يجب على - أسم الموظف- مراجعة شئون الموظفين"

7- عند وضع الرقم 1 في العمود T  يتم تحويل كلمة "لم يباشر" الى كلمة "باشر" ويتم ايقاف اضهار الرسالة الخاصة بهذا الموظف.

 

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

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

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

ولكن عندي سؤال هل ابقي المعادلات الموجودة في بعض الخلايا كما هي ام لا داعي لوجودها؟ وهل يمكن اضافة زر في حالة رغبتي في الاطلاع على الاسماء مرة اخرى؟

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

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

بعد إذن اخونا الفاضل أبو عيد.

1- ما لاحظته انة لازم تبقي علي المعادلات في الخلايا  إذا هناك خلاف ذلك سيرد علينا صاحب الحل.

2- ممكن إضافة الزر وتتطلع علية وقت ماتشاء

تفضل إليك الملف بعد إضافة الزر فقط لإستدعاء الفورم.

                               

                                              اخيك أبو الحسن والحسين

 

ssss1.rar

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

أحسنت يا أبا الحسن والحسين

أخي سعد الفقير : الكلام ما قاله أبو الحسن والحسين 

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

 

رضي الله عن صحابة رسول الله أجمعين أمين

  • Like 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