الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هذا المثال دوخ دماغي في الأكسل هل من حل؟

مغلق
بدأه المالكي333 في 5 مارس 2003 · 20 رد · 3,282 مشاهدة · في طلب و دراسة وشرح البرامج
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

أيها الأخوة الأعزاء جميعا:

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

سعدت كثيرا بوجود هذا المنتدى الطيب ووجود هذه النخبة التي أفتخر بالانضمام إليها من الأعضاء الأعزاء داعيا الله تعالى أن يجمعنا جميعا تحت ظله يوم لا ظل إلا ظله.

أعزائي.. أرفق لكم مثالا على الأكسس يتضمن ثمان أوراق عمل سبع منها تتعلق بأيام الأسبوع السبعة أما الورقة الثامنة فتتعلق بالمستخلص الشهري.

نظام الملف:

لو افترضنا أننا الآن في يوم الجمعة الموافق 1/1/؟؟؟؟ هـ فإن على المسئول أن يقوم بتعبئة عدد نزلاء الفنادق الأربعة في الورقة المسماة ( الجمعة ) ليحصل على ورقة يقدمها إلى أمين المستودع لصرف الأشياء الموضحة في البيان بلا زيادة ولا نقصان ـ وطبعا هذا مثال غير حقيقي ـ يجب على المسئول أن يطبع ورقتين من هذه الأوراق إحداها يحتفظ بها لنفسه بصفة يومية من أول الشهر حتى آخره. وفي نهاية الشهر يأخذ الأوراق الثلاثين ثم يقوم بـ( نقل ) محتوياتها يدويا في الورقة المسماة ( المستخلص ) وطبعا يقتصر النقل على عدد النزلاء في كل فندق ويقوم أكسل بجمع الجميع في خانة المجموع ثم يقوم بضرب العدد في التكلفة اليومية وينتج عن ذلك قيمة كافة المواد المصروفة من المستودع بعد تنزيل بعض الحسميات مثل تكاليف الماء والكهرباء.

ـ المطلوب : أن يقوم البرنامج بصفة يومية بنقل أعداد النزلاء في ورقة ( الجمعة ) إلى خاناتهم الحقيقية في ورقة المستخلص دون أن يتدخل المسئول بتعبئة ذلك يدويا في آخر الشهر.

ـ الصعوبات التي تحول دون القيام بهذا العمل:

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

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

3ـ لو استبعدت مسميات أيام الأسبوع وقمت بعمل ثلاثين ورقة كل واحدة تحمل رقما يمثل التاريخ أي مثلا الورقة رقم ( 4 ) تعني اليوم الرابع من الشهر وهكذا. فإن بدايات الأشهر تختلف حسب الأيام فتارة يبدأ الشهر بالسبت وتارة بالثلاثاء مما يعني صعوبة استخدام هذا المبدأ لأنني لو قمت بربط سادس صف من صفوف ورقة المستخلص بالورقة رقم (1) التي تمثل اليوم الأول في الشهر فإن الورقة هنا يجب أن تكون ثابتة على أنها أول أيام الشهر بغض النظر عن كونه سبت أو أحد أو اثنين بينما لا بد من معرفة اليوم مسبقا لأن الأصناف المصروفة في كل يوم غير الأصناف التي تصرف في الأيام الأخرى.

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

ـ المثال المرفق على أكسل2000

çلميçٌِ_çليوميé.zip

#2

ساحاول التفكير فى الموضوع و ايجاد حل مناسب باذن الله

و لكن مبدأيا لو أنا مكانك ساتجه الي الاكسس و ليس الاكسيل للتعامل مع هذا الموضوع

#3

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

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

#4

الأخ أبو طاهر / الأخوة الأعضاء:

هل من جديد على الإجابة على هذا السؤال؟ أرجو أن تتكرموا بذلك.

#5

لدي بعض الاستيضاحات

هل المقرر اليومي بحسب اسم اليوم ثابت دائما ؟؟

هل يمكن حصر جميع البنود الممكن صرفها و تثبيتها ؟

هل لابد من الالتزام بالشكل الموجود فى الملف ، أم المهم الوصول الي نفس النتيجة فقط ( الصرف اليومي لكل يوم مع عدم تخزينه ، و المستخلص الشهري )؟

#6

أستاذنا الأخ محمد طاهر.. شكرا على تجاوبك:

ـ نعم المقرر اليومي ثابت بمعنى أن مقررات يوم السبت لا تتغير ومقررات يوم الأحد لا تتغير لكنها مختلفة عن مقررات السبت وكذلك عن بقية الأسبوع. كل يوم له مقررات خاصة وثابتة دائما.

ـ أعتقد أنني لم أفهم سؤالك الثاني. ولكن حسب فهمي للسؤال فإن البنود الممكن صرفها في اليوم الواحد ثابتة لا تتغير بالنسبة لليوم نفسه أما من يوم لآخر فلكل يوم مقرراته الخاصة به وهي ثابتة.

ـ بالنسبة للشكل التصميمي فأنا بحاجة إلى أن أطبع عن كل يوم ورقة ( أي فور ) ويمكن أن أحفظ الملف دون تغيير سوى ما يتم من تغييرات يومية تتعلق بأعداد نزلاء الفنادق الذين يتغيرون حسب الحالة. يعني لو حفظت الورقة المسماة السبت فمن الممكن حفظها حتى السبت القادم بحيث أعمل التغييرات الجديدة على العدد وأتناسى عدد السبت الفائت لأنني احتفظت بورقة منه من أجل إدخالها في ورقة المستخلص آخر الشهر. أما المستخلص فأطبعة على ورقة ( أي ثري ) وأحفظه حتى يحين موعد التغييرات الجديدة في الشهر الذي يليه وأستمر على هذا المنوال.

أكرر شكري وأرجو أن أكون قد أجبت على الأسئلة كما ينبغي. ( أحسن لا أرسب بعدين ) .

#7

أستاذنا محمد طاهر: بخصوص هذه المسألة ما رأيك في اقتراح خطر ببالي:

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

ـ نضيف ورقة رقمها 31 أو أي اسم آخر ونضمنها جدولا أسبوعيا يتضمن الأصناف اليومية التي تصرف يوميا وهي ثابتة على مستوى كل يوم بمفرده كما قلنا.

ـ عن طريق الدالة IF والتي تسمح بتكرارها سبع مرات يمكننا أن نضع في كل خلية من خلايا الأصناف من كل ورقة من أوراق الشهر شرطا يتعلق باسم اليوم. فمثلا لو أردنا من البرنامج أن يضع لنا في الخلية ( C6 ) مربى إذا كان اليوم هو يوم سبت وأن يضع في الخلية ذاتها عسلا إذا كان اليوم هو يوم أحد ولحما إذا كان اليوم هو يوم الاثنين ...إلخ فيمكننا أن نضع معادلة في خلية ( C6 ) نقول فيه ( إذا كانت الخلية (A1) مثلا = السبت فضع لنا في هذه الخلية ما هو مكتوب في خلية ( B3 ) من الورقة رقم 31 التي تتضمن الجدول الأسبوعي والذي يوضح أنه يجب تقديم مربى كل يوم سبت. أما إذا كانت الخلية A1 = أحد فانتقل إلى ورقة 31 وضع لنا ما هو مكتوب في خانة يوم الأحد وهكذا بقية الأيام. بحيث أن الخلية A1 هي المكان الذي يكتب فيه اسم اليوم. وبحيث أن جميع أوراق العمل الثلاثين تستمد الأصناف أو المقررات من الجدول الموجود في ورقة 31 بشرط ان يتفق الصنف مع اسم اليوم.

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

ما مميزات هذه الفكرة وما سلبياتها ؟ لك خالص شكري وتقديري. وأرجو أن تكون الصورة واضحة.

#8

أستاذ محمد : السلام عليكم.

أرفق لك المثال وفقا لتصوري راجيا التكرم بقراءة الشرح الموجود على ورقة رقم ( 1 ). ومن ثم إبداء رأيك أو تعديلاتك.. هذا من جهة ومن جهة ثانية كيف أمنع رسالة تأتيني بعد إدخال دالة التفقيط على ورقة المستخلص تقول لي إن المصنف يحتوي على ماكرو وقد يتضمن الماكرو فايروسات. أولا كيف أمنع ظهور هذه الرسالة التي تطلع لي كلما فتحت المصنف. ثانيا هل يتضمن الماكرو فايروسات قطعا أم أن هذا مجرد احتمال. وهل ترجح وجود فايروسات في الماكرو بنسبة كبيرة تجعل المستخدم يلجأ إلى حذف مثل هذه الدالة حتى لا يتعرض للفايروسات أم أن الأمر أبسط من هذا ؟ شكرا جزيلا لك.

çلميçٌِ_çليوميé_مْïل.zip

#9

يا أستاذ محمد أرجو مراجعة المثال الذي دوخ دماغي. للأهمية. شكرا جزيلا.

#10

بالنسبة للرسالة

هي تظهر عند وجود ماكرو في الملف

و هناك 3 خيارات

اما اظهار الرسالة ( حل وسط )

منع فتح الملف

عدم التحذير ( تستخدم عند الثقة فى الملف )

و للتغيير بينهم

Tools

Macro

security

و الغرض منها هو الحذر تجاه الماكروهات التي قد تكون مضرة

بالنسبة للملف سأحمله و أرد قريبا بإذن الله

#11

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

لي سؤال لا أعلم إذا كان قد مر عليك مثله. وهو هل يمكن أن أربط خلية في ورقة 1 مثلا بعدة خلايا في أكثر من ورقة ؟ بمعنى هل أستطيع أن أجعل الخلية A1 من ورقة 1 تساوي الخلية C2 في ورقة 2 وتساوي خلية B3 في ورقة 3 وتساوي خلية D4 في ورقة 4 (في آن واحد ) ؟ طبعا لا أعتقد أن هذا ممكن لأن الخلية الأولى ستكون في حيرة من ناحية أي الخلايا الثلاث تختار لهذه المساواة. لكن لو احتجنا إلى هذا الإجراء هل من حل لهذا الأمر ؟؟. أطرح السؤال وأنا أستبعد وجود حل له لأن المسألة ليست جمع الثلاث الخلايا الأخيرة ووضعها في الخلية الأولى وإنما المسألة مسألة مساواة. تحياتي.

#12

ان أحد الحلول لما تريد

هو أسلوب ال

consolidate

/ن قائمة

Data

و هو يعني أن يكون هناك بيانات متماثلة فى أكثر من مكان

و مطلوب مجموع هذه البيانات بحركة واحدة فى مكان واحد مع امكانية اظهار التفاصيل

#13

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

#14

مرفق مثال أعتقد أن به حل مناسب

يوجد ورقة باسم list بها القائمة

و مثال علي ورقة يومية باسم 1

و فيها كل المطلوب هو كتابة تاريخ اليوم فى الخلية الصفراء ، و سيتغير المحتوي و يستنتج اليوم و البيانات كلها بناء علي ذلك

و بها 4 بنود كمثال

و يمكنك بعد اكمال المعادلات اخفاء العمودان المضافان فى البداية ، او احدهما

hotel.zip

#15

و يمكنك عمل 31 ورقة و ربط التاريخ ( الخلية الصفراء ) بمعادلة تضيف 1

فيصبح بذلك مطلوب كتابة التاريخ فقط فى اول ورقة فى كل شهر

#16

أستاذ محمد: شكرا لك. اطلعت على ملفك وبالرغم من أنني لم أفهم ( ولاحاجة) فيما يتعلق بإعداد أكواده :eek: إلا أنه يؤدي الغرض فيما يتعلق باستخدام ورقة واحدة لجميع الأيام بدلا من استخدام سبع ورقات كما في مثالي الأول أو ثلاثين ورقة كما في مثالي الأخير. لكن المشكلة ما زالت قائمة مع حكاية المستخلص. فأنا أرغب عندما أقوم بإدخال أعداد نزلاء الفنادق في كل يوم أن ينتقل منها نسخة إلى مواقعها في المستخلص بدء من أول يوم حتى آخر يوم في الشهر بحيث عندما يأتي يوم 30 من الشهر أجد أن جميع البيانات اليومية قد انتقلت تلقائيا إلى المستخلص الشهري. ولذلك تجدني قد اقترحت عمل ثلاثين ورقة من أجل ربط كل صف في المستخلص بورقة من الأوراق الثلاثين.

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

أهيء أهيء :'( :'( :'( :'(

#17
اقتباس
فأنا أرغب عندما أقوم بإدخال أعداد نزلاء الفنادق في كل يوم أن ينتقل منها نسخة إلى مواقعها في المستخلص بدء من أول يوم حتى آخر يوم في الشهر بحيث عندما يأتي يوم 30 من الشهر أجد أن جميع البيانات اليومية قد انتقلت تلقائيا إلى المستخلص الشهري

هذا أتصور أن يكون ربط مباشر بين الثلاثين ورقة وورقة المستخلص بدون معادلات شرطية أو بحثية

و يكون الاضافة هنا هو ان الثالاثين ورقة تكوينهم واحد تماما

اقتباس
بس بصراحة ما حصلت منك على كلمة زي ( رائع )

ربما يعيبني البعد عن الاجتماعيات فى الردود ، خصوصا مع ضيق الوقت ، و حقيقة لا أعرف مستواك فى الاكسيل حتي أعبر عن رأيي فى المعادلات بالنسبة له ، فعادة ما يصف الجميع نفسهم هنا بالمبتدئ و منهم متمكنين

#18

وما هي المعادلة التي تضيف 1 ؟؟ وأين ذهب ردي السابق ؟؟ أم أن حذفه جاء من أجل تخفيف المعاناة و ( مسح الدموع )؟؟!!.

#19

أستاذي الكريم: لا أدري أين كان ردي ( المدمع ) مختبئا عندما كتبت ردي السابق. ربما كان مختبئا في الصفحة الثانية وأنا لم أطالع إلا الصفحة الأولى وبعد كتابة الرد السابق اتضحت الصفحة الثانية وبها الرد الذي أعتقدت أنه حذف.

عموما أنت تؤيد حكاية الثلاثين ورقة بمعنى أنه ليس هناك بديل أفضل.

صحيح لا بد أن يكون تكوين الأوراق الثلاثين واحدا طالما هناك معادلات شرطية تجعل الأصناف متغيرة تبعا لاسم اليوم.

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

#20

أخي العزيز

تصوري أن الحاجة الي الثلاثين ورقة هي فقط اذ1 أردت الاحتفاظ بالتفاصيل

أما اذا أردت الطباعة فقط و بعد ذلك لا تريد الاحتفاظ بالمحتوي السابق

فورفة واحدة تكفي

أما بالنسبة للمستخلص ،ـ فالمطلوب له حسب ما أفهم ، هو فقط الجزء العلوي من الثلاثين و رقة _( الاعداد ) و هي يمكن جمعها للثلاتين يوم فى ورقة واحدة و منها يعد المستخلص ، أو تكتب الاعداد فى المستخلص مباشرة بدون ربطها بشيء فيمكن نقل الاعداد من ورقة التفاصيل عن طريق النسخ و اللصق

حيث أنها الاعداد مكتوبة رأسيا فى ورقة التفاصيل ، و تريدها أفقية فى ورقة المستخلص عند اليوم المناظر

فتستخدم النسخ من ورقة التفاصيل ثم

paste special

transpose

مع اختيار values

أي العمل اليومي هو كالتالي

لديك ملف فقك به ورقة القائمة List وورقة رقم 1 و المستخلص

تكتب تاريخ اليوم في ورقة رقم 1 ، ثم تطبع

وتاخذ الاعداد الي المستخلص ، عن طريق الكتابة

أو النسخ و اللصق الخاص كما فى الشرح اعلاه

اما اذا اردت الاحتفاظ بالتفاصيل السابقة

فتنشيئ ثلاثين و رقة متماثلة كما سبق و ترط المستخلص بها

أما بالنسبة لموضوع التاريخ

فهي معادلة عادية بين ورقتي العمل

خلية التاريخ فى الورقة رقم 2 ، تساوي الخلية نفسها فى الورقة رقم 1 +1

و هكذا

مع تحياتي

#21

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

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

هذا الموضوع مغلق.

مواضيع مشابهة