نجوم المشاركات
Popular Content
Showing content with the highest reputation on 01/20/21 in all areas
-
السلام عليكم 🙂 المرفق يحتوي على النسختين mdb و accdb ، ويعمل على النواتين 32بت و 64 بت 🙂 النسخة السابقة: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3 - قسم الأكسيس Access - أوفيسنا (officena.net) بعض الاوقات عند تشغيل برنامج اكسس ، نجد انه يغلق بدون سبب ، بمثل هذه الرسالة: . او يُظهر اخطاء ، مثل هذه الرسائل وغيرها : . . . هذا معناه ان برنامجك يحتاج تنظيف من الاخطاء التي فيه ، او يحتاج الى استعادة حيويته مرة اخرى ، بالتنظيف والصيانة 🙂 وعادة نقوم بهذا العمل على برنامج الواجهات FE ، ولكن برنامج الجداول BE يستفيد منه كذلك. نافذة البرنامج : . 1. نختار الملف ، سواء mdb او accdb ، اما ملفات mde و accde ، فلن تستفيد من Decompile/Compile ، ولكنها ستستفيد من الضغط والاصلاح ، وعمل نسخ اضافية ، 2. اذا البرنامج فيه كلمة سر (ليس كلمة سر المستخدمين ، ولا كلمة سر الكود VBE) ، فيمكنك كتابة كلمة السر هنا ، وسيقوم البرنامج بحفظه/نسخه في ذاكرة الكمبيوتر ، وتستطيع استعمال الالصاق Ctl+v عندما يسألك البرنامج ، كما يقوم البرنامج بإستخدامه في فتح برنامجك لمراجعة الاخطاء. اذن هناك خطوة يمكن للبرنامج ان يستخدم كلمة السر مباشرة ، وهناك خطوة يجب عليك ادخال كلمة السر عن طريق اللصق Ctl+v ، تم إضافة ميزة عمل النسخ الاحتياطية لبرنامجك ، بحيث تحفظ نسخة من برنامجك بعد التنظيف ، في المجلد الذي تختاره ، ويكون الحفظ المسلسل هكذا : . يعني بدل ان تحفظ نسخة من برنامجك بطرقك الخاصة ، تستطيع وبعد تعديل برنامجك ، ان تتأكد انه خالي من الشوائب ، ويعمل نسخه منه تلقائيا 🙂 وهناك عدة طرق لإختيار مجلد الحفظ: 3. حفظ الملف في نفس مجلد البرنامج ، 4. اختار المجلد ، وبعد اختياره ، تستطيع ان تنقر على الزر 9 ليقوم البرنامج بحفظ هذا المجلد/المسار في البرنامج للمرات القادمة ، 5. اول مسار تريد حفظه هو: استعمل الخطوة 4 في فتح المجلد الرئيسي لحفظ النسخ الاحتياطية (واذا ما كان عندك ، فقم بعمله من الآن) ، ثم احفظ المجلد/المسار بالزر 9. وبعدها ، البرنامج تلقائيا يختار هذا المجلد (اذا قمت بحفظه بواسطة الزر 9) كلما فتحت البرنامج ، اي انه اول سجل في الجدول ، 6. عن طريق الخطوة 4 ، تستطيع حفظ اي عدد من المجلدات ، ولاحقا تستطيع ان تختار هذا المجلد لحفظ النسخة الاحتياطية فيه ، 7. عدم عمل نسخ احتياطية ، للأسف الشديد 😞 8. عند اختيار اي من الاختيارات اعلاه ، سيضع البرنامج مسار مجلد النسخ الاحتياطية هنا ، 11. الآن نطلب من البرنامج ان يقوم بعمله ، بالخطوات التالية : أ. يحفظ نسخة من البرنامج وقبل مساسه (حتى اذا لا قدر الله وحصلت مشكلة في العمل ، يمكنك الرجوع لهذه النسخة) ، ويقوم البرنامج بعمل النسخة في مجلد برنامجك ، بإضافة bak_ في نهاية اسم الملف ، كما في الصورة ، واذا احتجت لإستعمال الملف لاحقا ، فقط قم بحذف bak_ وسيعمل البرنامج : ب. ضغط واصلاح : لما تحذف سجلات من برنامجك ، فإن البرنامج يعطي اشارة الى الجدول بإخفائه ، ولا يقوم بحذفه إلا بعد الضغط والاصلاح ، عند عمل فهرسة لحقول في الجدول ، فإن البرنامج يحتاج الى ضغط واصلاح حتى يقوم بترتيب اعدادات الفهرسة ، عند العمل على البرنامج لفترة طويلة بإضافات وتعديل وحذف ، فالبرنامج يحتاج الى ضغط واصلاح لإعادة ترتيب الفهرسة لسرعة عمل البرنامج ، قد يتم خطأ في تسجيل سجل ، ربما بسبب انطفاء الكهرباء ، او اغلاق الكمبيوتر وبدون اغلاق البرنامج ، وهذا السجل يجعل الجدول لا يعمل بطريقة صحيحة ، والضغط والاصلاح يحل هذه الاشكالية ، البرنامج عبارة عن ملف في الكمبيوتر ، ولما تعمل البرنامج ، فإن الكمبيوتر يحفظ البرنامج على المكان الفارغ من القرص الصلب ، ولما تضيف سجلات جديدة ويكبر حجم البرنامج ، فقد يحفظ الكمبيوتر الجزء الجديد في مكان آخر على القرص الصلب ، مكان غير ملاصق للجزء الاصل (وهذه طريقة حفظ الكمبيوتر للملفات) ، وبهذه الطريقة يصبح الملف موجدا على اجزاء مختلفة من القرص الصلب ، مما يجعل البرنامج ابطأ ، ولما تعمل ضغط واصلاح ، فإن الاكسس يقوم بحساب المساحة المطلوبة للبرنامج ، ثم يقوم بعمل برنامج جديد في مكان جديد على القرص الصلب ، وينسخ البرنامج اليه ، مما يجعل البرنامج اسرع ، بالاضافة الى امور اخرى لا يتم حلها إلا بالضغط والاصلاح ، الضغط والاصلاح لا علاقة له بالكود ، ولا يقوم بفحصه. ج. Decompile : لما نكتب الكود ، الاكسس يحتفظ بكل سطر بلغة P-Code الخاصة بمايكروسوفت (والتي تُستخدم لبعض البرامج الاخرى كذلك) ، وعند تنفيذ الكود ، فالاكسس ينفذ كود لغة P-Code ، وفي بعض الاحيان من كثرة التعديلات على الكود ، فإنه لا يتم تحديث P-Code بطريقة صحيحة ، فينتج عنه رسائل اخطاء اكسس ولا يعمل البرنامج بطريقة صحيحة ، وعند عمل Decompile ، فالاكسس يحذف كود P-Code القديم ، ويسجل فيه كود جديد من VBA ، مما يجعل البرنامج اصغر في الحجم زيادة في الكفائة. د. Compile : بهذه الطريقة ، نتأكد من عدم وجود اخطاء في الكود ، وبقايا ومخلفات ، مثل: لما نحذف كائنات في النموذج/التقرير ، ولا نحذف الحدث الخاص بها ، فالكود يجب حذفة ، لعدم وجود الحدث الي يستعمله ، لما نحذف كائن في النموذج/التقرير ، وفي الكود نكون قد اعطيناه قيمة ، فيجب حذف المسمى من الكود ، عند كتابة كود بطريقة غير صحيحة وغير مكتملة ، فيجب تصحيحها ، وهذه الخطوه مهم لتحويل البرنامج الى mde او accde . يحاول البرنامج القيام بهذا العمل لبرنامجك ، ولكنه اذا لم يستطيع ويحصل على اخطاء ، فإنه يخبرك بهذا ، ويخبرك مكان الخطأ في الكود ، سواء وحدة نمطية او نموذج او تقرير ، ويعطيك مثل الرسالة التالية ، والتي اذا اخترت نعم ، فيوقف البرنامج ، . ويأخذك لبرنامجك الى نافذة الكود VBE ، ثم يجب عليك ان تعمل التالي يدويا: . وتُصلح الاخطاء التي في برنامجك ، الى ان لا يعطي برنامجك اخطاء اخرى ، وبعدها تستطيع ان ترجع الى البرنامج ليقوم جميع الخطوات مرة اخرى. هـ. اذا اشتغلت خطوات البرنامج وبدون اخطاء ، فهنا يقوم البرنامج بعمل نسخة احتياطية من برنامجك ، وبالتسلسل الصحيح ، وفي المجلد الذي اخترته. 12. البرنامج يخبرك عن الخطوات التي تمت 🙂 جعفر Decompile_4.accdb..zip Decompile_4.mdb..zip Decompile_4.2.accdb.zip9 points
-
شكرا اخوي خالد 🙂 في مجموعة قليلة من الاعضاء اللي يعرفون فائدة هذا البرنامج 😢 اما انا ، فهذا البرنامج اضعه على سطح المكتب ، ويكون مفتوح ، وبعد الانتهاء من بعض تعديلات على اي من برامجي ، على طول استعمل البرنامج هذا ، اطمئن ان الكود نظيف ويعمل اللي كتبته (في احد البرامج في اول ايامي في الاكسس ، من كثرة ما عملت تعديل على الكود ، صار الكود ما يعطيني نتائج صحيحة ، وحينها كنت محتاج لهذا البرنامج!!) ، ويعمل لي نسخ مختلفة (وهذا شيء جدا مهم ، وهو خلال عمل او تعديل اي برنامج ، يجب عمل نسخ منه خلال العمل وليس بعده فقط ، وانا عادة يكون عندي على الاقل 10 نسخ او اكثر ، وكنت اعمل نسخ ولصق) . يا ريت تخبرنا تجربتك ويخبرنا بقية الاعضاء ، فهي الطريقة الوحيدة لنشر مفهوم هذا البرنامج 🙂 دكتور حسنين ، واخوي محمد ، شكرا لكم 🙂 جعفر3 points
-
جزاك الله خيرا اخي الحلواني قد يفوت وقت الصلاة من كان مريضا او على سفر ويرغب في الجمع للظهر والعصر جمع تاخير وكذلك المغرب والعشاء جمع تاخير فهذه من حالات التاخير المباح الف شكر استاذنا جعفر3 points
-
الحقيقة انا ايضا اعمل عدة نسخة احتياطيه ودائما لدي نسخة قبل اي تعديل المشكلة حصلت معي عند محاولة عمل باتش لغرض ترقية القاعدة الامامية بدلا من حذف النسخة وتركيب النسخة الاحدث واليوم شاهدت برنامجك الاصدار الرابع وجربته على النسخة التالفة المحاولة الاولى عمل البرنامج ولكن بوجود اخطاء واعادة محاولة الاصلاح عمل بدون مشاكل2 points
-
جزاك الله خيرا معلمنا العزيز @jjafferr جعله الله فى ميزان حسناتك 💐 قد استعملت النسخه رقم 3 ع برنامج كنت اعمل عليه كان ثقيل جد وقد خف بعدها سوف اجرب النسخه الجديده واوفيكم بالنتيجه وان شاء الله تكون نتيجه ممتازه لانها من يد معلمنا العزيز انا اتبع هذا النمط بعد الاطمئنان لكل خطوه فى اى شىء اعمل عليه حتى ان حدثت مشكله احذفه واخد نسخه اخرى للعمل عليها جزاك الله خيرا وبارك الله لنا فيك وجميع اخوانى واساتذتى2 points
-
بصراحة يا ابا عبدالله منتهى الابداع كان لدي ملف اختفت الاكواد والان يعمل بشكل ممتاز احتجت استخدام برنامجك مرتين2 points
-
هنيئا لك هذا التوفيق (وَمَا يُلَقَّاهَا إِلا ذُو حَظٍّ عَظِيمٍ) 🙂 اما نحن الخطّاؤون فننتظر مغفرة من ربنا وقبول اعمالنا بقضاء هذه الصوات الفائته ، ونطلب منكم الدعاء لنا 🙂 جعفر2 points
-
انا كتبت لك الصيغة واظهرت لك رسالة حتى ترى النتيجة وللتطبيق فمثلا في الاستعلام اذا اعتبرنا حقل القيمة اسمه total imonths:[total]\30 idays : [total] Mod 30 dayess.mdb2 points
-
لتسهيل قضاء الصلوات الفائته ولماذا نفوت الصلوات حتي نضطر لقضائها؟! أعانكم الله علي أداء الصلوات في أوقاتها (إن الصلاة كانت علي المؤمنين كتابا موقوتا) جزاكم الله خيرا وأحسن اليكم كما تحسنون الينا2 points
-
بارك الله استاذي @sandanet وبارك فيك على تجاوبك1 point
-
جزاك الله خير اخي الحلوني صلاة الخوف ان كانت في الحرب فلها حكمها بقوله تعالى ( وَإِذَا كُنْتَ فِيهِمْ فَأَقَمْتَ لَهُمُ الصَّلاةَ فَلْتَقُمْ طَائِفَةٌ مِنْهُمْ مَعَكَ وَلْيَأْخُذُوا أَسْلِحَتَهُمْ فَإِذَا سَجَدُوا فَلْيَكُونُوا مِنْ وَرَائِكُمْ وَلْتَأْتِ طَائِفَةٌ أُخْرَى لَمْ يُصَلُّوا فَلْيُصَلُّوا مَعَكَ وَلْيَأْخُذُوا حِذْرَهُمْ وَأَسْلِحَتَهُمْ وَدَّ الَّذِينَ كَفَرُوا لَوْ تَغْفُلُونَ عَنْ أَسْلِحَتِكُمْ وَأَمْتِعَتِكُمْ فَيَمِيلُونَ عَلَيْكُمْ مَيْلَةً وَاحِدَةً وَلا جُنَاحَ عَلَيْكُمْ إِنْ كَانَ بِكُمْ أَذىً مِنْ مَطَرٍ أَوْ كُنْتُمْ مَرْضَى أَنْ تَضَعُوا أَسْلِحَتَكُمْ وَخُذُوا حِذْرَكُمْ إِنَّ اللَّهَ أَعَدَّ لِلْكَافِرِينَ عَذَاباً مُهِيناً ) وان كان الخوف بسبب انه يخشى على حياته من عدو يترص فيصلي في بيته وهنا يكون التأخير لا يتجاوز خروج الوقت وكذلك في حال كان الانسان غير مطمئن ويخشي الا يخشع في صلاته فيجوز التاخير عن اول الوقت ولايتعدى نهاية وقت الصلاة وايضا للحراسة ومافي حكمها فيصلي في محرسه ولايتجاوز وقت خروج الصلاة اما في حال المطر فيكون الجمع عادة جمع تقديم وهذا مانعمله عادة ولا علم لدي بجواز جمع التاخير للمطر والله اعلم احسن الله اليكم وثبتكم وجعلنا واياكم من المهتدين1 point
-
1 point
-
شكر الله لكم سعت صدركم وتلطفكم في النصح ويكون الخوف والمطر أحيانا من الأعذار المبيحة للجمع والله أعلم وانما اذكر نفسي ومن أحب بوجوب الصلاة بوقتها وان كنت أول المقصرين وآخرهم (لكن ديما يقال علي الصعايدة كلامهم دبش ) وجزاكم الله خيرا1 point
-
حقيقة لا تكفي كلمات الشكر التي نعرفها حقكم - فعطائكم الغير منقطع لا تكفيه كلمات الشكر. ولكن نقول كما علمنا رسول الله (صلي الله عليه وسلم) فقال : ( مَنْ صَنَعَ إِلَيْكُمْ مَعْرُوفًا فَكَافِئُوهُ ، فَإِنْ لَمْ تَجِدُوا مَا تُكَافِئُونَهُ فَادْعُوا لَهُ حَتَّى تَرَوْا أَنَّكُمْ قَدْ كَافَأْتُمُوهُ) . رواه أبو داود (1672) . وصححه الألباني في صحيح أبي داود وكما قال: (صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ) : ( مَنْ صُنِعَ إِلَيْهِ مَعْرُوفٌ فَقَالَ لِفَاعِلِهِ : جَزَاكَ اللَّهُ خَيْرًا فَقَدْ أَبْلَغَ فِي الثَّنَاءِ ) . رواه الترمذي (2035) . وصححه الألباني في صحيح الترمذي . فجزاكم الله عنا خيرا، ورحم والديكم وأصلح في ذرياتكم وأهليكم ورزقنا واياكم حسن الختام1 point
-
اولا لا تتوجه الى باستاذ ادعونى اخى وشرف لى ان اكون اخوكم فالله سوف اطلع على المثال المعدل والنظر فيه اما الليله ان كان هناك متسع من الوقت او غدا بعد العوده من العمل ان شاء الله ولعل احد اخواننا واساتذتنا يساعد ان شاء الله ولتوضيح الامور وتبسيطها عنوان الموضوع تحديث ولم اجد فى طلباتك تحديث بل انت تريد عدد حقل معين بعد التصفيه ع ثلاث حقول ولا انا فاهم غلط طيب ما هو اسم الحقل الذى تريد تحديثه وباى قيمه تريد تحديثه بعد جلب العدد بناء عالتصفيه ياريت لو تشرح باسماء الحقول الموجوده فالجداول وتتبع اى جدول لان انت تقول رقم المضمون ولا افهم هو اى حقل فالجدول وتابع لجدول مين بالتوفيق1 point
-
شكراً جزيلا لك أستاذنا القدير جعفر دائماً متميز بمواضيعك .. وفقك الله1 point
-
1 point
-
فك الضغط وخزن المجلد في اي فولدر documen.rar1 point
-
تسلم ايدك يامعلم، دائما جديد ومتميز1 point
-
1 point
-
سلسلة تعليم بور كويري ........الجزء السابع لماذا نستخدم الاتصال فقط بالبيانات في بور كويري WHY LOAD DATA AS CONNECTION ONLY???? في الفيديو دة تقدر تجيب بيانات كتير وتعمل اتصال فقط بيها علشان متعملش حمل على الشيت وتقلل مساحته وكمان هانضف البيانات ونشيل البيانات اللي موش عايزنها ونفصل الاسم الاول عن الاسم الأخير وندمج الجدولين مع بعض ونعمل التعديلات والاضافات اللي عايزينها https://www.youtube.com/watch?v=HXEFMfPYyH0&t=25s1 point
-
1 point
-
سلسلة تعليم بور كويري الجزء الثامن كيفية تعبئة البيانات لأسفل وكيفية التعبئة لأعلى في البور كويري FILL DOWN - FILL UP IN POWER QUERY https://www.youtube.com/watch?v=ZOFlmn9i6181 point
-
جزاكم الله خيراً أستاذ ماجد ... وإلى المزيد من الأعمال القيمة ...تقبل تحياتي العطرة1 point
-
الاخت الفاضلة انا عملت كود موجود فى التقرير بناء عى الاحتمال الاتى الكل - تقرير تحليلى - مدين+دائن هل انا كده شغال صح واكمل باقى الاحتمالات الاخرى عايز اعرف انا كده صح ولا لا وهو ده المطلوب مع الاحتمالات الاخرى وان شاء الله خير مدين دائن الزهراء2.xlsm1 point
-
السلام عليكم ورحمة الله وبركاته تم استخراج التواريخ المطلوبة في الخلية G16 .. ولكن لم افهم ماذا تقصد بالتاريخ المكرر .. التاريخ المكرر بوجود فترة من تاريخ الى تاريخ.xlsx1 point
-
شكرا أخي على المساعدة وعفوا على عدم الشكر والتقصير في حقك علي وأكرر أسفي على عدم تقديم الشكر وشكري على مساعدتك ومساندتك1 point
-
1 point
-
ولماذا لا تجعل اسم ملف الـ pdf داخل كود التصدير ويتم التحكم فيه من داخل الكود بشكل تلقائي دون ازعاج المستخدم بتحديد مسار الحفظ بكل مرة1 point
-
استاذ ماجد رائع ما تفيدنا به وجزاك الله كل خير1 point
-
عزيزى احمد بدون ملف لن تجد تجاوب .ارفق ملفك وبه الكود ليقوم الاعضاء بحل المشكة1 point
-
بارك الله فيك استاذ ماجد وجزاك الله خير الثواب1 point
-
شكرا عزيزي وبارك الله فيك.. وعملت اللي عليك وزيادة ،، محبة لقلبك لا تنتهي 🌹1 point
-
جرب هذا العمل الكود يبحث في جميع الصفحات الا صفحة التقرير 2020 الحسابات (1).xlsm1 point
-
السلام عليكم استاذ محمد تم التعديل على ملف العمل اتمنى ان يفي بالغرض 2020 الحسابات.xlsm1 point
-
شكرا لك أستاذ ياسر ظننت أن الموضوع سيكون صعبا فى التعامل مع التواريخ وافر تقديرى وجزاكم الله خيرا1 point
-
السلام عليكم ورحمة الله وبركاته ادخل على الرابط ..1 point
-
بارك الله فيك استاذ ماجد كلها أعمال ممتازة1 point
-
للمرة الثالثة أقول لك أن الدالة تعمل بشكل سليم وأن المشكلة في طريقة عملك للبيانات تم تعديل طريقة كتابة البيانات والدالة تعمل بشكل رائع المصنف1.xlsx1 point
-
حسب علمي فدالة sumifs تجمع صف أو عمود فقط ولا تجمع عدة صفوف بشكل مباشر يصلح استخدام SUMPRODUCT ومرفق الملف تحسين للدالة المستخدمة لديك مع ملاحظة أن ايجاد القيمة لا يصلح بدون وجود الاسم والتاريخ بنفس صف القيمة؛ لاحظ البيانات لديك، ستبحث الدوال عن التاريخ ولن تجده في الصف A3 لأن الخلية مدموجة والتاريخ سيكون في A2 لذلك أقترح عليك اعادة ترتيب البيانات ممكن أن تكون الأعمدة التاريخ، الاسم، الكمية، القيمة المصنف1.xlsx1 point
-
تفضل اخى الكريم واسال براحتك اسال الله ان يقضى لك ولنا حوائجنا تجاهل الهمزات.rar1 point
-
تفضل اخى الكريم تم ادراج الكود فى الاستعلام المخصص باى مقطع من الاسم الهمزات واتاء المربوطة والتشكيل تجاهل الهمزات.rar1 point
-
الأستاذ / احمد مرجان السلام عليكم ورحمة الله وبركاته كلاهما من دوال البحث ولكن دالة Vlookup دالة البحث الرأسي تبحث عن قيمة معينة في جدول وتحتاج لأربع أجزاء : أولاً : القيمة التي تبحث عنها ولابد أن تكون على يمين القيمة التي تبحث من خلالها ثانياً الجدول المراد البحث فيه ثالثأ رقم العمود الموجود به القيمة التي تبحث عنها رابعاً أسلوب البحث هل هو مطابق أو تقريبي إن كان مطابق نضع صفر أو كلمة False ولإن كان تقريبي نضع 1 او True ومن عيوب هذه الدالة أن حساسة للأحرف التي نبحث عنها وأن تكون القيمة على اليمين . أما دالة index ودالة match يعملان معا للبحث عن قيمة معينة داخل مصفوفة في الاتجاهين لا تشترط اليمين او اليسار وتحتاج دالة index لثلاثة أجزاء أولاً المصفوفة التى تشتمل على القيمة التى نريد إرجاعها يعنى القيمة التى نبحث عنها تكون ضمن هذه المصفوف و قد تكون جدولا من عدة أعمدة أو عمودا واحدا ثانياً الدالة لتحديد رقم الصف فى هذه المصفوفة التى نبحث فيها و دالة match حيث تحدد لنا رقم الصف فى عمود آخر و يكون هو نفسه رقم الصف للعمود الأول ودالة match تحتاج لتعرف القيمة التى نبحث عنها وهذه يمكن أن تكون مأخوذة من قيمة خلية أخرى نحددها ثالثاً معرفة المصفوفة التى تبحث فيها أما دالة index ودالة match تكون أفضل في التعامل وإليك ملف توضح المثال السابق لحضرتك بطريقتين إن كان البحث عن العدد 5 أحمد مرجان.rar1 point
-
السلام عليكم على افتراض ان النطاق المطلوب B4:B100 جرب الكود التالي: Sub kh_Replace() Dim ch With Range("B4:B100") For Each ch In Array("إ", "أ", "آ") .Replace CStr(ch), "ا" Next .Replace "ة", "ه" .Replace "ى", "ي" End With End Sub المرفق 2003 حذف الهمزة والتاء المربوطه.rar1 point
-
1 point
-
جزاك الله خيرا اخي M.hindawi علي التعديل و يسعدني جدا التعديل فى ما أضفت خصوصا ان كان للافضل كما حدث هنا :( فسبب تواجدنا معا فى المنتدي ان نستفيد من معرفة بعضنا و ان نكمل جميعا في اضافة ما نعرفه حتي نستفيد جميعا بالاضافة الي صاحب السؤال :d و أيضا التعميم الذي اضفته عملي جدا فالان هو لا يحتاج للاشارة الي الدالة او ان يشغل ماكرو (y) ملاحظة بسيطة : في الروتين الفرعي الخاصي بحدث عند التغيير لخلايا الملف اعتقد انه يمكننا حذف سطر changesearch (a) و الاكتفاء ب Target = changesearch(a) مباشرة كما فى الملف المرفق ام تري له ضرورة معينة ؟ أخي أحمد سعيد فقط اكتب فى أي مكان فى الملف و سيتم التعديل مباشرة فى ملف الاخ M.hindawi و هذا سيفيدك عند كتابة اي اسم جديد و يمكنك نقل الوحدات النمطية الي ملف بياناتك فى نفس اماكنها لاستخدامها فى ملف آخر فالدالة الرئيسية مكتوبة فى موديول و الاستدعاء العام للتنفيذ مكتوب فى مكان كتابة الموديول الخاص بالملف و لتنفيذ ذلك افتح ملفك مع الملف الحالي اضغط ALT + F11 سيظهر محرر الكود و به الملفان المفتوحان اختر الموديول الموجود فى الملف و اسحبه الي ملفك انقر علي workbook فى ملف Hamza ستجد كود قم بنسخه ثم انقر مرتين علي كلمة workbook في ملفك ثم قم بلصق نفس الكود و بذلك يكون ملفك مجهزا لاستبدال اي اسم تكتبه اليا و اعتقد انك قد تريد انك تريد تغيير بعض الاسماء الموجودة فى ملفك اصلا و التي لن تتأثر بما سبق الا عند اعادة كتابتها او تحريرها لذا ستجد فى الملف المرفق هنا الخيار الاخر و هو ان تختار بعد الخلايا المكتوبة بالفعل علي ان يكون الاختيار من اعلي الي اسفل ثم تضغط ALT+F8 ليظهر لك الماكرو الجديد الذي بتشغيله يتم تغيير الخلايا المكتوبة بالفعل و ايضا يمكنك نسخ الماكرو الي اي ملف او هنا لانك فى الغالب ستسخدمه مرة واحدة فقط يمكنك فتح الملف المرفق مع اي ملف و سيعمل الماكرو باذن الله دون نقله شرط ان يكون المفان مفتوحان آنيا Sub changeletters() Dim a As String, rowcount As Integer rowcount = Selection.Rows.Count For i = 1 To rowcount a = Selection.Cells(i).Value Selection.Cells(i).Value = changesearch(a) Next i End Sub و الدالة كما سبق فى ملف الاخ هنداوي Public Function changesearch(Mytxt) As String Dim tempstr As String tempstr = Trim(Mytxt) If tempstr Like "*[أاآإ]*" Then For b = 1 To Len(tempstr) If Mid(tempstr, b, 1) = "ا" Or Mid(tempstr, b, 1) = "إ" Or Mid(tempstr, b, 1) = "أ" Or Mid(tempstr, b, 1) = "آ" Then Mid(tempstr, b, 1) = "ا" Else End If Next End If If tempstr Like "*[ةه]*" Then For b = 1 To Len(tempstr) If Mid(tempstr, b, 1) = "ة" Or Mid(tempstr, b, 1) = "ه" Then Mid(tempstr, b, 1) = "ه" Else End If Next End If If tempstr Like "*[ىي]*" Then For b = 1 To Len(tempstr) If Mid(tempstr, b, 1) = "ى" Or Mid(tempstr, b, 1) = "ي" Then Mid(tempstr, b, 1) = "ي" Else End If Next End If changesearch = tempstr End Function و التعميم لتفيذ الدالة علي اي خلية فى الملف عند كتابتها او تحريرها - اي تغيير محتوياتها Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Dim a As String a = Cells(Target.Row, Target.Column).Text Target = changesearch(a) End Sub مرفق الملف و به الاثنان التعميم عند تغير قيمة اي خلية و الماكرو لتعديل القيم الموجودة اصلا hamza2.zip1 point