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

ماكرو مشروط للعمل


Anwar

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

الاخ الاعزاء في المنتدي العزيز

اريد عمل ماكرو يقوم يالتالي يبدا البحث من اول خلية في العمود الي اخر خلية مكتوب فيها وعندما يجد خلية فيها رقم يذهب الي الخلية التي علي يمينها ويكتب الرقم 1 ثم يواصل العمل علي باقي الخلايا واذا وجد الخلية فارغة يواصل البحث الي الخلية التالية وهاكذا

اخوتي حاولت قبل طرح السؤال ولكن كل محاولات فشلت ولقد استفدت من ملفات الاستاذ محمد طاهر والاستاذ حسام نور

حاولت تطبيق الدالتين FOR و NEXT

ولكن كل المحاولات فشلت الملف الذي اعمل عليها كبير جدا لذلك لابد من تصميم ماكروا يقوم هو بالعمل خصوصا اني عندي 7 اعمدة علي عدد ايام الاسبوع وكل عمود بة بيانات حوالي 1520 صف مما يجعل التعديل عليها كلها صعب

ارجو المساعدة والاجر عند اللة

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

حاول باستخدام if الشرطية بحيث يكون الأمر كالتالي :-

مثلا العمود الذي به البيانات b اذهب للعمود المجاور a ومن شريط الأدوات استخدم if الشرطية بحيث إذا كانت قيمة الخلية المجاورة أكبر من صفر يعطي رقم 1 .

if b1>0

1

" "

أرجو أن يكون هذا المقصود .

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

اشكرك اخي الكريم علي الرد

ولكن هذا ليس حل اذا كان يوجد لدي اكثر من 1520 صف كلها فيها ارقام اسهل من ذلك ان اقوم شخصيا بتعديل لانني سوف اكتب في كل عمود الدالة if الشريطية ولكن اذا حصلت علي كود اقوم فقط بتحدي بداية العمود الذي سوف يعمل عليها يكون افضل واسرع

ارجو المساعدة في عمل الكود

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

اذا تم العمل كما ذكرنا سابقا. فقط قم بالسحب الى الحد الذي تريد وسيتم تطبيق الكود على الجميع. لأنني استخدم هذه الطريقة في عملي وناجحة جدا .

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

حاول ونحن في انتظارك ولا تيأس.

وفقك الله.

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

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

إليك الماكرو المطلوبة

يتم اختيار الخلايا كلها ثم تشغيل الماكرو

Sub MarkBside()
Dim cCell As Range
 For Each cCell In Selection
  If cCell.Formula <> "" Then cCell.Offset(0, 1).Value = 1
 Next
End Sub

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

شكر استاذ سيد

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

شكرا استاذ سيد ويعطكم الف عافية

لي سؤال هل من الضرور بعد كلمة Next ان نتكب القيمة المتغيرة لانك لم تستخدم هذا الاسلوب واغلب ملفات الاستاذ محمد طاهر كانت تستخدم

ارجو التوضيح

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

ليس ضروريا يا أخى

ولكن يفضل كتاباتها لسهولة المراجعة والتعديل خاصة حينما تكثر هذه ال Loops

ويقوم البرنامج بالبحث عن كل كلمة next المقابلة لكل كلمة for تم استخدامها ويرسل رسالة خطأ عند وجود عدم تطابق

الجدير بالذكر هنا أنه عند فتح for ثم فتح For أخرى داخلها فيجب أغلا ق الثانية ثم الاولى

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

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

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

Important Information