السلام عليكم ورحمة الله وبركاته
إخواني وأحبابي في الله
هذا الموضوع مخصص للرد على سؤال في منتدى أوفيسنا ، ولم أضع إجابتي هناك لأن المنتدى يمنع الروابط التي أضعها ويعتبر هذا مخالف لقواعد المشاركة هناك - ولهم الحربة في إدارة المنتدى الخاص بهم - ، وعموماً لأنني أعرف أن هناك أعضاء من هنا وهناك فآثرت وضع الإجابة لتعم الفائدة ويكون الموضوع مستمر ، لأنه مع الوقت لا يلتفت أحد للأسئلة نفسها ، بينما تبقى الشروحات لوقت أطول.
وحفاظاً على حقوق الملكية ، يرجى لمن يضع الإجابة هناك ذكر المصدر ، وهذا أمر طبيعي في أي منتدى أن يذكر المصدر
هذا هو السؤال المطروح
قمت بإنشاء ليست بوكس ListBox1 وزر أمر CommandButton1 ..
في بداية تشغيل الفورم قمت بإنشاء مصفوفة من 3 صفوف و5 أعمدة ووضعت فيها القيم للمتغيرات i و j بحاصل ضرب المتغيرين .. الفكرة هنا تعبئة الليست بوكس بأي بيانات لتجربة الكود عليها ، وفي النهاية هنا يتم تعبئة الليست بوكس بقيم المصفوفة ، وتحديد عدد الأعمدة ليساوي عدد أعمدة المصفوفة
نأتي للجزء المهم وهو الإجابة على السؤال المطروح ، حيث وضعت الكود في حدث الـ CommanButton1 ، والذي سيقوم بوضع البيانات في كل صف داخل الليست بوكس داخل نطاق معين في ورقة العمل ، والنطاق المطلوب وضع البيانات فيه هو الصف الثاني ، مع مراعاة وضع البيانات في أعمدة بالتتالي بمسافة 5 أعمدة في كل مرة.
يبدأ الكود بإنشاء مصفوفة فارغة من القيم وأبعادها هي عدد صفوف الليست بوكس وعدد أعمدة الليست بوكس ، ثم عمل حلقة تكرارية في الليست بوكس لتخزين القيم الموجودة في الليست ووضعها داخل المصفوفة v ..
وفي نهاية المطاف يتم عمل حلقة تكرارية لعدد صفوف المصفوفة ووضعها في ورقة العمل في الأعمدة بالتتالي
وإليكم الملف المرفق المطبق فيه الحل
رابط الملف هنا
أخوكم في الله / ياسر خليل أبو البراء