نزار سليمان عيد قام بنشر ديسمبر 17, 2006 قام بنشر ديسمبر 17, 2006 الى جميع الاخوة من مشرفين واعضاء السلام عليكم ورحمة الله وبعد اريد طريقة بـ VBA تمكنني من جمع الجدول مثلا من B8:N141 ثم لو اختلفت النهاية مثلا B8:N100 يكون الجمع تلقائي بواسطة الكود ولكم جزيل الشكر
omar elhosseini قام بنشر ديسمبر 17, 2006 قام بنشر ديسمبر 17, 2006 الاخ nse تحياتى لك اخى يمكنك عمل ذلك بدون اللجوء الى VBA ببساطة شديدة فيمكن استخدام المدى المتحرك بمعنى المدى الديناميكى (Dynamic Range) فى عمل جدول ذو مدى ديناميكى (Dynamic table) ولعمل Dynamic Range يجب اجادة استخدام دالة (OFFSET) مع احد دوال العد مثل (COUNTA) الجدول الديناميكى يمكن عملة بطريقتين حسب احتياجك النوع الاول هو الجدول ذو المدى المتحرك بعدد الصفوف حسب احتوائها للبيانات وهو ما فهمت من طلبك شاهد المرفق ستجد فى المرفق ورقتين الورقة الاولى بها مثال لما تطلب اللون الاخضر هو مدى الجدول ويتم انشاء المدى (MyRange1) من قائمة ( ادراج / اسم / تعريف ) وكتابة اسم المدى فى خانة (الاسماء فى المصنف) ومعادلة المدى فى ( يشير الى ) والمعادلة المستخدمة هى : =OFFSET(Test1!$B$8;0;0;COUNTA(Test1!$B$8:$B$141);13) والخلية الصفراء تقوم بعملية جمع الجدول وصيغتها : =SUM(MyRange1) والورقة الثانية : نفس الورقة الاولى مع الاختلاف فى نوع الجدول وهو جدول ديناميكى بعدد الصفوف والاعمدة ارجو ان اكون اسطعت التوضيح تحياتى Dynamic_table.rar
نزار سليمان عيد قام بنشر ديسمبر 18, 2006 الكاتب قام بنشر ديسمبر 18, 2006 الاخ تامر السلام عليكم ورحمة الله اشكرك على هذه المعلومة القيمة ولكن مايحصل عندي هو مسح لمحتويات الصفحة واحضار بيانات اخرى من صفحة اخرى وهذه البيانا ت كما ذكرت مختلفة حينا تنتهي عند السطر 100 ومرة اخرى بعد مسح القديم تنتهي عند 141 مثلا وبالتالي عمود التجميع سينمسح مع كل نسخ وبالتالي اريدها ضمن كود يتعرف على آخر خلية ثم يقوم بالتجميع واشكرك كثيرا مرة اخرى
omar elhosseini قام بنشر ديسمبر 18, 2006 قام بنشر ديسمبر 18, 2006 الاخ nse السلام عليكم ورحمة الله وبركاتة اخى اراى مشاركات كثيرة لك تبين انك تستطيع التعامل مع الاكواد فيمكن عن طريق الكود واستخدام الفكرة المطروحة بجمع اسم المدى المتحرك عن طريق اسمة وليس عنوانة واذا اردت مساعدتى ضع صفحة البيانات مع توضيح المطلوب لأجراء الازم تحياتى
نزار سليمان عيد قام بنشر ديسمبر 18, 2006 الكاتب قام بنشر ديسمبر 18, 2006 اخي تامر اشكرك على سرعة الرد انا اهوى البرمجة واحب تعلمها ولكن تواجهني بعض الصعوبات احيانا واحاول التغلب عليها ولكن اذا لم استطيع ارجع لمنتدانا الرائع وجهودكم الجبارة وعلمكم لاجتياز الصعوبة التي اواجهها اخي تامر مرفق الملف وماريد هو عند اختيار مدينة الرياض مثلا من القائمة المنسدلة تكون هناك دالة عن طريق الكود تجمع البانات من يناير الى ديسمبر حسب المرفق وعلى فكرة الكود المرفق من عمل قمت به لاحد المشاركين ولك خالص تحياتي _______.rar
omar elhosseini قام بنشر ديسمبر 18, 2006 قام بنشر ديسمبر 18, 2006 (معدل) الاخ nse تحياتى شاهد المرفق لعل وعسى يكون هو المطلوب _______2.rar تم تعديل ديسمبر 18, 2006 بواسطه tameromar
الجزيرة قام بنشر ديسمبر 18, 2006 قام بنشر ديسمبر 18, 2006 =OFFSET(Test1!$B$8;0;0;COUNTA(Test1!$B$8:$B$141);13) بارك الله فيك أخي عمر الحسيني عمل رائع وفضلا لا أمراً أود التكرم مشكوراً بشرح المعادلة أعلاه شرحاً مفصلاً . . إذا لم يكن لديك مانع .
omar elhosseini قام بنشر ديسمبر 19, 2006 قام بنشر ديسمبر 19, 2006 (معدل) شكرا لك اخى nasersaeed اخى أبوعبدالله يسعدنى ذلك وخصوصا انه موضوع هام جدا لمن اراد اجادة التعامل مع الاكسيل Offset استخدام دالة ( Offset ) لتصنع مدى او نطاق ديناميكى هي دالة حيوية لها كثير من الاستخدامات دالة (Offset) من الدوال الهامة جدا التى تتعامل مع مراجع الخلية وهى من الدوال التى تزيد امكانيات الدوال الاخرى التى تقترن بها ودالة (Offset) تعيد قيمة من اي خلية يشار اليها بعدد من الصفوف والاعمدة التى تبتعد عنها . وصيغة الدالة هى : =OFFSET(reference,rows,cols,height,width) - العامل الاول : الخلية المرجع او الخلية الاساس او الام 2 - العامل الثانى : عدد الصفوف 3 - العامل الثالث : عدد الاعمدة 4 - العامل الرابع : الارتفاع محدد بعدد من الصفوف 5- العامل الخامس : العرض محدد بعدد من الاعمدة وقد تم استخدام دالة () فى المثال الذى اشرت اليه اخى لعمل مدى متحرك او ديناميكى ولنعمل معا مثال بسيط : نحن نريد إنشاء مدى لجدوال من البيانات يحتوى على 10 صف و 5 أعمدة الوضع العادى لهذا الاجراء هو ان نقوم بتعليم هذا المدى بدأ من الخلية (A1) الى الخلية (E10) من قائمة (ادراج / اسم / تعريف) ونكتب اسم هذا المدى وليكن ( Rng) سنجد ان الصيغة الموجود اثناء انشاء الجدول فى الصندوق الحوارى (تعريف اسم) والتى تشير الى احداثيات المدى ( Rng) هى : A1:E10 وهى عبارة عن 10 صف و 5 أعمدة وتظل هكذا دائما هذا المدى دائما ثابت كما نعرف سواء احتوى الجدوال على بيانات او لم يحتوى على بيانات هنا تأتى فائدة انشاء المدى الديناميكى الذى تزاد عدد صفوفة او تنكمش تبعا لأحتواء المدى على بيانات وخاصة فى العمود الاول او حسب اى عمود تريدة ليكون هو الحاكم بأمر المدى حسب احتوائة على بيانات . سنقوم معا بإنشاء نفس المدى ولكن بأسم ( MyRange ) وبنفس الابعاد التى اشرنا اليها وهى عبارة عن 10 صف و 5 أعمدة . ولكن هذه المرة سيكون كمدى دينامكى يتمدد وينكمش حسب احتواء العمود الاول (A) على بيانات اى اذا كانت الخلايا من (1A) الى (3A) بها بيانات كان المدى عبارة عن 3 صف و 5 أعمدة . اما اذا كانت الخلايا من (1A) الى (7A) بها بيانات كان المدى عبارة عن 7 صف و 5 أعمدة . شئ جميل جدا طبعا لمن يتعامل مع الاكواد وخاصتا من يعمل مع اسماء النطاقات بدل من الاشارة الى المدى بالخلايا المرجعية له 0 اخى قم فتح ملف جديد فارغ لنعمل هذا المثال : قم بتسمية الورقة الاولى Test1 فى الورقة الاولى قم بتحدد المدى (A1:E10) وقم بتلوين خلاياه باللون الاخضر الفاتح ليكون فقط واضح لنا . قف فى اى خلية واضغط مفتاحى (كنترول + اف3) لفتح صندوق الحوار (تعريف اسم) فى خانة (الاسماء فى المصنف) اكتب اسم المدى او النطاق فى هذا المثال وليكن (MyRange) وفى خانة (يشير الى) اكتب الصيغة التالية : سنقوم بشرحا بعد إنشاء المدى والتعرف عليه =OFFSET(Test1!$A$1;0;0;COUNTA(Test1!$A$1:$A$10);5) ثم اضغط موافق وقم بحفظ الملف املئ الخلايا الخضراء بأى بيانات اضغط مفتاح (اذهب الى) اى مفتاح (اف5) و اكتب (MyRange) طبعا بدون الاقواس سنجد ان المنطقة الخضراء تم تعليمها بالكامل (A1:E10) الان قم بمسح بيانات الصف العاشر والتاسع اضغط مفتاح مفتاح (اف5) و اكتب (MyRange) سنجد هنا ان المنطقة المعلمة عبارة عن ثمانية صفوف من الجدول والان امسح محتويات الخلية (8A) اضغط مفتاح مفتاح (اف5) و اكتب (MyRange) سنجد هنا ان المنطقة المعلمة عبارة عن سبعة صفوف من الجدول لماذا اخى سنفهم ذلك من شرج صيغة المدى : =OFFSET(Test1!$A$1;0;0;COUNTA(Test1!$A$1:$A$10);5) لاحظ ان Test1! هذا هو اسم اورقة الاولى ملحق به علامة التعجب ليشر الى اسم الورقة (هذه طريقة الاشارة الى اسماء الاوراق فى صيغ المعادلات) 1 - العامل الاول : Test1!$A$1 وهو يشير الى الخلية (1A) فى الورقة ( Test1 ) اى الخلية الاساسية او نقطة بداية المدى او خلية الارتكاز او الخلية الام 2 - العامل الثانى : صفر 3 - العامل الثالث : صفر العامل الثانى والثالث صفر لأننا لن نبتعد عن الخلية الام بأى عدد من الخلايا لا رأسيا او افقيا 4 - العامل الرابع : COUNTA(Test1!$A$1:$A$10) هذا العامل هو قلب المدى المتحرك او الديناميكى او المفصلى فهو يقوم بعد الخلايا فى العمود الاول من (A1) الى (A10) . فعندما قمنا بمسح بيانات الصف الصف العاشر والتاسع كان ناتج هذا العامل هو 8 أى 8 صفوف وهو العامل الديناميكى فى الصيغة . وايضا عندما قمنا بمسح محتويات الخلية (A8) كان ناتج هذا العامل هو 7 أى 7 صفوف وهنا بيت القصيد . لان ارتفاع الجدول او المدى (MyRange) يتحدد حسب احتواء المدى (A1: A10) على بيانات . 5- العامل الخامس : 5 وهنا نقوم بتحديد عرض الجدول او المدى (MyRange) بعدد من الاعمدة وهو 5 أعمدة وهو ثابت دائما . ولكن يمكن جعله ديناميكى ايضا لو اردنا ذلك بنفس الطريقة المتبعة فى العامل الرابع ليكون جدول متحرك او ديناميكى كامل الاحساس بالنسبة لعدد صفوف واعمدة الجدول ولكن فى مثالنا هذا هو يتحسس فقط عدد الصفوف بالتحكم فى العامل الرابع ولو اردنا ان يكون كامل الاحساس يجب ان يكون العامل الخامس مفصلى ايضا كالرابع مع تغير عناوين الخلايا الى العناوين المناظرة . لعلى وعسى ان اكون قد وفقت فى شرح المدى الديناميكى وقد تعمدت الاسهاب فى الشرح بطريقة مبسطة لما له من اهمية فى عالم الاكواد وتسهيل العمل المراد انجازة بطريقة فعالة وحية تجاة التغيرات فى حجم المدى المحتوى على بيانات . مع تحيات ابوتامر تم تعديل يناير 5, 2008 بواسطه أبو تامر 1 1
نزار سليمان عيد قام بنشر ديسمبر 19, 2006 الكاتب قام بنشر ديسمبر 19, 2006 اخي تامر جزاك الله خيرا فعلا هذا ما اريد ولكن ينقصني تجميع باقي الاعمدة بنفس الطريقة من يناير الديسمبر ولك خالص تحياتي
omar elhosseini قام بنشر ديسمبر 19, 2006 قام بنشر ديسمبر 19, 2006 الاخ nse شاهد المرفق لقد لاحظت ان جميع خلايا الشهور فى الورقتين عندما تحتوى على القيمة صفر تعطى شرطة او علامة السالب حسب التنسيق المخصص لها فهلا انت تقصد ذلك ام يستوجب منك التصحيح تحياتى _______3.rar
نزار سليمان عيد قام بنشر ديسمبر 19, 2006 الكاتب قام بنشر ديسمبر 19, 2006 اخي تامر الله ينور دربك ويرزقك الذرية الصالحة فعلا هذا هو المطلوب ومعليش لو ازعجتك لو حبيت اكمل باقي المعادلات الموجدة بعد العمود 14 بحيث تظهر ايضا مع التجميع هل ممكن؟ ولك خالص تحياتي
أبو جديد قام بنشر ديسمبر 21, 2006 قام بنشر ديسمبر 21, 2006 الف الف شكر لك أخي/ ثامر على هذه المعلومات القيمةالله يعطيك العافية
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.