اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نجوم المشاركات

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      9

    • Posts

      13165


  2. عبدالله باقشير

    عبدالله باقشير

    المشرفين السابقين


    • نقاط

      2

    • Posts

      4796


  3. عبد العزيز البسكري

    • نقاط

      2

    • Posts

      1352


  4. محمد حسن المحمد

    • نقاط

      2

    • Posts

      2220


Popular Content

Showing content with the highest reputation on 08/11/15 in all areas

  1. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله موضوع المصفوفات موضوع معقد ومتشعب للغاية ، لا أقصد أنه مستحيل ، ولكنه يحتاج إلى خبرة كبيرة لكي تستطيع أن تتعامل معها ، لذا ارتأيت أن أتعلم التعامل مع المصفوفات ، ولكن لكي أتعلم المصفوفات لابد أن أقدم المعلومة في أسلوب سلس وبسيط .. فهيا بنا سوياً نتعلم معاً ... أنا مثلي مثلكم في الموضوع أنا مجرد متعلم مبتديء فيما يخص هذا الفرع هنتكلم ببساطة ونحاول بقدر الإمكان إننا نبعد عن الأمور المعقدة ، فلنهضم سوياً البدايات ، وبمرور الوقت سنصل إلى الهدف الأكبر إن شاء الله عارفين المتغير Variable لما نحب نخزن قيمة خلية على سبيل المثال كنا نضع قيمة الخلية في متغير بهذا الشكل (بفرض أنه هناك نص في الخلية A1 والمطلوب تخزين قيمة الخلية في متغير ) Sub StringVariable() Dim strName As String strName = Range("A1").Value MsgBox strName End Sub قمنا بالإعلان عن المتغير وفي السطر التاني وضعنا قيمة للمتغير بحيث يساوي قيمة الخلية A1 وفي آخر سطر أظهرنا قيمة المتغير من خلال رسالة في المثال تم تخزين قيمة خلية واحدة ... طيب لو عندي 100 اسم في العمود الأول ..هل كل خلية هعمل متغير وأخزن فيه قيمة الخلية ( طبعاً مستحيـــــــــــــــــــــــــــــــــــل ) من هنا نعرف أهمية التعامل مع المصفوفة ، لإنك من خلال المصفوفة تقدر تخزن أي صف وأي عمود أو حتى أي نطاق مكون من صفوف وأعمدة لو هنتعامل مع صف واحد يبقا المصفوفة (ذات بعد واحد) ، لو مع عمود واحد (بردو ذات بعد واحد) ، لكن لوهنتعامل مع صفوف وأعمدة يبقا في الحالة دي (المصفوفة ذات بعدين ..بعد الصفوف وبعد الأعمدة) نرتاح شوية بعد ماعرفنا ايه فايدة المصفوفة وننتقل لمثال عملي بسيط لكيفية الإعلان عن المصفوفة ..... ارتحنا ..الحمد لله .. ننتقل إلى الجزء الثاني شكل المصفوفة :المصفوفة تتكون من عناصر وكل عنصر له رقم (يعني زي كتاب وله فهرس ..كل صفحة في الكتاب ليها رقم في الفهرس) المصفوفة زي الكتاب ... والعناصر زي الصفحات .. وكل عنصر له رقم في الفهرس زي ما كل صفحة ليها رقم في فهرس الكتاب محرر الأكواد بيتعامل مع المصفوفات ويبدأ يضع فهرس للعناصر بس مش بيبدأ برقم واحد بيبدأ برقم صفر مثال : لو مصفوفة مكونة من 4 عناصر يبقا الفهرس هيكون بالشكل ده ( 0 - 1 - 2 - 3 ) يعني أول عنصر له رقم الفهرس صفر ، وتاني عنصر له رقم الفهرس واحد ، وتالت عنصر له الرقم 2 ، والرابع والأخير له الرقم 3 .... تعبتكم معايا في الفهرس سؤال : هل ممكن إني أخلي محرر الأكواد يغير طريقة الفهرسة لعناصر المصفوفة بحيث يبدأ من رقم 1 ؟ الإجابة نعم (بس اصبر عليا عشان بتوه وبنسى) مثال تطبيقي : ضع الكود التالي في محرر الأكواد Sub OneDimensionalArrayA() Dim Arr(0 To 3) As String Arr(0) = "A" Arr(1) = "B" Arr(2) = "C" Arr(3) = "D" End Sub السطر الأول بنعلن عن المصفوفة بعد اسم المتغيرArr وضعنا بين قوسين حجم المصفوفة من 0 إلى 3 أي أن الفهرس يبدأ من 0 إلى 3 (إذاً عدد عناصر المصفوفة كام ؟ عد من 0 إلى 3 هتلاقي الناتج 4 أي 4 عناصر بالمصفوفة) من محررالأكواد روح للقايمة View وانقر على الأمر Locals window هيظهر نافذة نقدر من خلالها نتابع عمل الكود ضع مؤشر الماوس في أي مكان داخل الإجراء الفرعي المسمى OneDimensionalArrayA ثم من لوحة المفاتيح اضغط F8 ... سنجد السطر التالي مظلل بالأصفر Sub OneDimensionalArrayA() بص كويس على نافذة Locals ستجد المتغير من النوع مصفوفة المسمى Arr على يمينه علامة زائد انقر عليها هيفتح لك عناصر المصفوفة ستجد العنصر الأول بهذا الشكل Arr(0) وهكذا مع بقية العناصر ..كيف عرف محرر الأكواد أن العناصر 4 عناصر ؟؟ لأننا حددنا حجم المصفوفة بين الأقواس نلاحظ أيضاً في نافذة Locals في العمود المسمى Value أن العناصر لا تحمل أي قيمة بعد ، سنجد "" (أقواس تنصيص) أي أنها فارغة ... هذا هو شكل المصفوفة أي أنه يعد بمثابة متغير واحد يحمل عدة متغيرات ... اضغط F8 مرة أخرى ستجد السطر التالي مظلل بالأصفر Arr(0) = "A" لا يوجد أي تغيير في نافذة Locals ... نلاحظ أنه بعد الضغط على F8 والخروج من السطر الأصفر الحالي يتم تنفيذ السطر ..أي أن التنفيذ بعد الخروج من السطر نضغط F8 للمرة الثالثة لتنفيذ السطر السابق سنجد في نافذة Locals في العمود Value أن العنصر الذي له رقم الفهرس صفر يحمل القيمة A أكمل بالضغط على F8 وبعد كل ضغطة لاحظ النافذة جيداً لتعرف التغيرات ماذا كان يحدث في أسطر الكود ..؟ تقوم الأسطر بتعيين قيمة لكل عنصر داخل المصفوفة الآن جرب بنفسك الكود التالي Sub OneDimensionalArrayB() Dim Arr(1 To 4) As String Arr(1) = "A" Arr(2) = "B" Arr(3) = "C" Arr(4) = "D" End Sub لاحظ أننا يمكننا تغيير بداية الفهرسة من صفر إلى 1 كما بالمثال .. لاحظ التغيرات ..بما أن عدد العناصر أربعة تم تغيير الرقم 3 الذي هو آخر رقم بالفهرس إلى 4 .. وفي الأسطر تم التعديل ليناسب التغيير الذي تم بالسطر الأول ننتقل لآخر جزئية الآن .. معرفة أول رقم في الفهرس وآخر رقم في الفهرس نعود للمثال الأول Sub OneDimensionalArrayA() Dim Arr(0 To 3) As String Arr(0) = "A" Arr(1) = "B" Arr(2) = "C" Arr(3) = "D" MsgBox LBound(Arr) MsgBox UBound(Arr) End Sub لمعرفة أول رقم في الفهرس نستخدم الكلمة LBound ثم نفتح قوس ونكتب اسم المصفوفة المطلوبة >> الناتج في المثال سيكون رقم 0 لمعرفة آخر رقم في الفهرس نستخدم الكلمة UBound ثم نفتح قوس ونكتب اسم المصفوفة المطلوبة >> الناتج في الثال سيكون رقم 3 جرب بنفسك تغيير أبعاد المصفوفة من 0 إلى 3 ، وخليها من 1 إلى 4 وغير ما يلزم وشوف النتائج Sub OneDimensionalArrayB() Dim Arr(1 To 4) As String Arr(1) = "A" Arr(2) = "B" Arr(3) = "C" Arr(4) = "D" MsgBox LBound(Arr) MsgBox UBound(Arr) End Sub وإلى لقاء آخر ...دمتم على طاعة الله *********************************************** الجزء الثاني إخواني وأحبابي في الله .. بعد أن تعرفنا على الشكل العام للمصفوفة وعرفنا أنها مكونة من عناصر وكل عنصر له رقم في فهرس المصفوفة نتعرف الآن على طريقة أخرى لتخزين قيم المصفوفة .. في السابق خزنا كل قيمة داخل عنصر تباعاً أي تم تعيين قيمة لكل عنصر ..عنصر عنصر الطريقة التي سنتعلمها الآن هي كيفية تخزين مجموعة من القيم مرة واحدة بسطر واحد .. الأمر في منتهى اليسر ، سنقوم باستخدام كلمة Array ثم نفتح قوس بالضغط على Shift + 9 ثم نضع القيم بالترتيب المطلوب وكل قيمة توضع داخل أقواس تنصيص ويفصل بين كل عنصر وعنصر فاصلة وليس فاصلة منقوطة وفي نهاية المطاف نغلق القوس بالضغط على Shift + 0 اختصار للكلام الكتير شوف السطر ده ..هنخزن قيم المصفوفة بهذا الشكل Arr = Array("A", "B", "C", "D") تم تخزين 4 قيم داخل المصفوفة .. لمعرفة أول الفهرس نستخدم كلمة LBound ولمعرفة رقم آخر الفهرس نستخدم كلمة UBound كما عرفنا من قبل لو ضغطنا F8 وتفحصنا نافذة الـ Locals سنجد أن الفهرس يبدأ من صفر .. إذاً أرقام الفهرس هنا في السطر السابق ستكون 0 ، 1 ، 2 ، 3 طيب نضع المثال بالكامل ثم نقوم بشرحه وتشريحه Sub OneDimensionalArray3() Dim Arr Arr = Array("A", "B", "C", "D") Range("A1").Resize(1, UBound(Arr)) = Arr Range("A2").Resize(UBound(Arr), 1) = Application.Transpose(Arr) End Sub في المثال تم الإعلان بشكل عام عن المصفوفة دون تحديد أبعادها كما فعلنا من قبل تم وضع قيم المصفوفة في السطر الثاني كما أسلفنا المطلوب الآن أن نعرف كيف نقوم بوضع قيم المصفوفة داخل نطاق وهذا الأمر في غاية الأهمية السطر الثالث يقوم بوضع القيم في الصف الأول بدايةً من الخلية A1 إلى ؟؟ النهاية مجهولة في الغالب ..عشان كدا بنعتمد على آخر رقم في المصفوفة باستخدام UBound بمعنى آخر : فيه خاصية اسمها Resize (إعادة تحجيم) فالسطر بيقول ايه؟ انطلاقاُ من الخلية A1 سيتم تحديد حجم النطاق طبقاً للأرقام داخل الخاصية Resize الرقم الأول يمثل عدد الصفوف والرقم الثاني يمثل عدد الأعمدة .. بما إننا عايزين نضع القيم في الصف الاول فقط يبقا عدد الصفوف هيكون واحد .. أما عدد الاعمدة هيكون مرتبط بطول المصفوفة وعشان نعرف طول المصفوفة زي ما قلنا نعرف آخر رقم فيها باستخدام كلمة UBound ..طيب جميل أوي لحد دلوقتي !! نيجي للقاضية . طول المصفوفة في المثال 4 عناصر لكن لو استخدمنا كلمة UBound عشان نعرف آخر رقم يبقا في الحالة دي هيكون الناتج 3 مش 4 (يا دي الحيرة) المشكلة إن المصفوفة بتبدأ من صفر عشان كدا نهايتها عند الرقم 3 .. لو تركنا المثال زي ما هو كدا ..ايه اللي هيجرا .. الجزء التاني الخاص بعدد الأعمدة اللي هو ده UBound(Arr) الناتج هنا لو حسبنا بشكل يدوي يساوي 3 إذاً سيتم تحجيم النطاق بمقدار صف واحد و3 أعمدة .. فلو بصينا على الورقة بعد تنفيذ الكود هنلاقي القيمة A في الخلية A1 ، والقيمة B في الخلية B1 ، والقيمة C في الخلية C1 ووقف لحد هنا .لأننا حددنا عدد الأعمدة 3 من خلال رقم آخر فهرس في المصفوفة .. طيب إزاي نحل الإشكالية دي ؟؟ ببساطة إحنا عارفين إن المصفوفة بدأت من الصفر يبقا في الحالة دي عشان نحدد عدد الأعمدة نزود واحد وخلصت الحكاية يعني السطر هيكون بالشكل ده Range("A1").Resize(1, UBound(Arr) + 1) = Arr فيه طريقة تانية نخلص من المشكلة بشكل نهائي إننا نضع جملة Option Base 1 يتم وضعه خارج الكود في قسم الإعلانات العامة في الموديول وفي الحالة دي مفيش داعي نزود واحد في السطر لأننا حلينا المشكلة بشكل تاني يعني الكود هيكون بالشكل ده Option Explicit Option Base 1 Sub OneDimensionalArray3() Dim Arr Arr = Array("A", "B", "C", "D") Range("A1").Resize(1, UBound(Arr)) = Arr Range("A2").Resize(UBound(Arr), 1) = Application.Transpose(Arr) End Sub ننتقل لآخر سطر ونعرف ايه الاختلاف .. ركز وحاول دايماً تشوف الفرق .. في السطر السابق للسطر الأخير وضعنا قيم المصفوفة في الصف الأول في الأربعة أعمدة A - B - C - D في السطر الأخير يتم وضع القيم بشكل رأسي وليس أفقي أي وضعها في عمود (والمصفوفة تتعامل مع الصفوف بشكل أيسر لأنها تعتبر على شكل صف في المثال الذي نقوم بشرحه) السؤال إزاي هنخلي المصفوفة تقرا القيم بشكل رأسي .. الموضوع بسيط جداً بس نشرحه من خلال الإكسيل الأول روح لورقة العمل وحدد أي مجموعة قيم في صف واحد ... يعني مثلاً حدد النطاق A1:D1 واعمل Copy نسخ وتعال في أي خلية بعيد شوية واعمل كليك يمين ثم Paste Special أي لصق خااااص وعلم علامة صح على الخيار Transpose الموجود في النافذة اللي هتظهر لك ولاحظ ما يحدث هتلاقي القيم اتغيرت من الشكل الأفقي للشكل الرأسي وهو دا حل المشكلة .. أي لوضع القيم في عمود نستخدم الجملة Application.Transpose عشان نحول المصفوفة من شكل أفقي لشكل رأسي طبعاً مننساش إن خاصية Resize هنا هتختلف : بمعنى عدد الصفوف هنا يمثل عدد عناصر المصفوفة أما عدد الأعمدة فعمود واحد ... بص للسطرين عشان تعرف الفرق ما بين وضع القيم بشكل أفقي ووضعها بشكل رأسي مش هطول عليكم عشان نقدر نستفيد وأنا معاكم بستفيد مثلكم تماماً .. تقبلوا تحياتي وإلى لقاء آخر متجدد بإذن الله ********************************************************************** الجزء الثالث إخواني الكرام نتعرف اليوم على الحلقات التكرارية للمصفوفة أو تحديداً لعناصر المصفوفة نفترضأن لدينا مصفوفة مكونة من 5 عناصر ونريد وضع قيم هذه المصفوفة في 5 صفوف في النطاق A1:A5 (تعلمنا أننا يمكننا ذلك في سطر واحد ..راجع ما سبق) ولكن كنوع من التدريب على استخدام الحلقات التكرارية سنقوم بعمل حلقة تكرارية لوضع قيم عناصر المصفوفة في الخمس خلايا لعمل حلقة تكرارية نقوم أولاً بالتفكير .. ما هو المتغير الذي سيجعلنا نقوم بالحلقة التكرارية (هنا قد يكون المتغير الصف .. لأننا نريد أن نضع قيمة في الصف رقم 1 ثم الصف رقم 2 ثم الصف رقم 3 وهكذا ... وقد يكون المتغير عناصر المصفوفة لأننا نتعامل مع العنصر رقم 1 ثم العنصر رقم 2 ثم العنصر رقم 3 وهكذا) بذلك تتضح الحلقة التكرارية أننا نريد أن نقوم بتنفيذ سطر محدد عدد من المرات بالمثال يتضح المقال Sub LoopArrays() Dim I As Integer Dim Arr(1 To 5) As Integer Arr(1) = 10 Arr(2) = 20 Arr(3) = 30 Arr(4) = 40 Arr(5) = 50 For I = LBound(Arr) To UBound(Arr) Cells(I, "A") = Arr(I) Next I End Sub هذا هو الكود بالكامل .. نبدأ في عملية التشريح السطر الأول دا المتغير اللي هنخزن فيه قيمة المتغير أثناء الحلقة التكرارية.. بمعنى مع كل لفة مع كل حلقة تكرارية فيه راجل ماسك الراية ومع كل لفة بيرفع راية جديدة المتغير I في السطر الأول سيكون بمثابة حكم الراية ..في أول لفة تلاقيه رافع راية احدة (حسب نقطة البداية ...يعني ممكن تكون نقطة البداية لا تساوي 1 ...ممكن الحلقة التكرارية تبدأ من أي رقم تاني غير الواحد ...المهم في المثال إحنا هنبدأ من 1) ... نرجع تاني لحكم الراية ..مع اللفة التانية هيكون قيمة المتغير 2 ومع اللفة التالتة هيكون 3 وهكذا .... السطر التاني اتعودنا عليه ..الإعلان عن مصفوفة أحادية الأبعاد بدايتها 1 ونهايتها 5 (ممكن نكتب بين القوسين 5 بس .. بس هتقابلك مشكلة إن المصفوفة هتترقم في الحالة دي بدايةً من الصفر ...راجع الجزء الأول والثاني) الأسطر التالية بيتم فيها تخزين قيم المصوفة : العنصر الأول في المصفوفة هيكون قيمته 10 ، والثاني 20 وهكذا نيجي بقا للحلقة التكرارية في نهاية الكود ... بعد الإعلان عن المصفوفة وتخزين القيم لعناصر المصفوفة ، تيجي الحلقة التكرارية عشان نقدر نعدي على كل عناصر المصفوفة بنستخدم الجملة For بعديها حكم الراية .... بعد كدا علامة يساوي ونحدد نقطة الإنطلاق أونقطة البداية ونقطة النهاية وبين البداية والنهاية كلمة To نقطة البداية هتكون رقم الفرس لأول عنصر في المصفوفة : ودي عرفنا إزاي نجيبها من خلال LBound وبين قوسين بنكتب اسم المصفوفة ونفس الكلام مع نقطة النهاية ودي هتكون رقم الفهرس لآخر عنصر في المصفوفة وبردو عرفنا إزاي نجيبها من خلال كلمة UBound وبين قوسين اسم المصفوفة يبقا خلاصة السطر الأول في الحلقة التكرارية ..بنقول إننا هنبدأ منين وننتهي فين ولازم القفلة يعني جملة For لازم يكون ليها مقابل أوقفلة والقفلة هي السطر Next I ... دي زي الترس اللي بيدور العجلة (حلو التشبيه ده) والترس ده يقف لما حكم الراية يوصل لنقطة النهاية بلغة البرمجة : لما المتغير I يساوي نقطة النهاية (زي المثال نقطة النهاية تساوي 5) لما المتغير I يساوي 5 ، بكدا تتوقف الحلقة التكرارية ..أي يتوقف الترس المهم في الكود كله السطر اللي بين سطري الحلقة التكرارية (هو دا اللي هيتنفذ مع كل لفة) Cells(I, "A") = Arr(I) كلمة Cells اللي يعرف شوية في البرمجة يعرف إنها متبوعة بين قوسين برقم الصف ورقم أو اسم العمود فلو كنا في اللفة الأولى يبقا المتغير I يساوي واحد ...في الحالة دي رقم الصف هو 1 واسم العمود A أي الخلية A1 >> ملحوظة هامة ممكن نشيل حرف "A" ونضع مكانه رقم العمود 1 بالشكل ده cells(I,1) يبقا الخلية A1 تساوي ؟؟؟ مجهول !!! تساوي العنصر في المصفوفة الذي يحمل رقم الفهرس ..يعني إحنا قلنا إن المتغير I يساوي واحد إذاً الخلية A1 تساوي أول عنصر في المصفوفة ثم تبدأ اللفة الثانية ويتغير المتغير I يصبح 2 فنبدأ بالتعامل مع الصف الثاني والعمود الأول أي الخلية A2 ونقول تساوي قيمة ثاني عنصر من عناصر المصفوفة وهكذا وهكذا أرجو أن أكون وفقت في توصيل المعلومة شكل سلس يسهل معه فهم البرمجة وفهم كيفية التفكير العلمي والكروي والميكانيكي (حيث تحدثنا بلغة البرمجة وتطرقنا للغة كرة القدم وأخيراً عملنا بالميكانيكا مع التروس) تقبلوا تحياتي
    2 points
  2. أخي الحبيب / محمد حسن السلام عليكم ورحمة الله قرأت مشاركاتك عدة مرات ويمكن لا اجد كلمات اعبر بها عما بنفسي من اثر كلماتك اخي الحبيب كلنا اخوة في الله جمعنا الله علي محبته وطاعته نتبادل الخبرات وتعلمنا وما زلنا نتعلم من أسئلة السائلين وردود الاخوة جمعيا وكل منا يساعد بما من الله عليه وفتح ... حسب ماا تيسر له من وقت وجهد . انا بدات لك في شرح فورم سند صرف خطوة خطوة كل يوم اول ما أنتهي من عملي استكمل جزء وان شاء الله خلال هالاسبوع يكون عندك شرح وافي ويسير ومبسط لكل كبيرة وصغيرة بالملف حتي يتسني لك البدء منه وتطويره كما تريد ويكون مرجع لكل سائل ان شاء الله وهون علي نفسك وانت والله اخا عزيزا كريما وسامحنا علي تقصيرنا في الرد في حينه مع تحياتي
    2 points
  3. 1 point
  4. السلام عليكم نموذج فواتير منوع (مبيعات /مشتروات/ مردوات المبيعات/مردودات المشتروات) بامكانية: الترحيل والبحث والتعديل وحذف الكل طلب للاخ تامر جمال جعلته هنا لفائدة الجمع الكريم ______________.rar
    1 point
  5. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله مع التحديث الجديد .. للأسف لم أجد التوجيهات التي تم وضعها من قبل ، وهذه القواعد والأسس هامة جداً ليدرك الأعضاء كيفية التعامل مع المنتدى طبعاً الموضوع سيكون متجدد .. سيتم وضع القواعد مرة أخرى فالرجاء الرجاء أن تساعدوني في اتمام الأمر .. كل عضو يذكرني بتوجيه من هذه التوجيهات ليتم إرساء القواعد ، إذ أن نجاح أي مؤسسة يعتمد في المقام الأول على قواعد ومنهج ثابت للسير على دربه التوجيهات والقواعد التي يجب مراعاتها التوجيه الأول : قبل طرح موضوع جديد يتعلق بطلب محدد يرجى استخدام خاصية البحث أولاً ، فإذا لم يجد طارح الموضوع بغيته ، فعليه أن يقوم بطرح موضوع جديد ، وفي هذه الحالة على طارح الموضوع أن يعلم أن حسن السؤال شطر الإجابة ، فاللباقة واللياقة والكياسة من الصفات التي يجب أن يتحلى بها طالب العلم. التوجيه الثاني : عند طرح موضوع جديد ، يتم وضع عنوان مناسب للطلب بحيث يفهم الطلب قبل الإطلاع عليه ، وعلى طارح الموضوع أن يبتعد عن العناوين الغير مجدية مثل : ( طلب مساعدة - الرجاء المساعدة - ساعدوني من فضلكم - عاجل وهام - الحقوني - نداء للعباقرة - نداء للعمالقة - إلى آخر تلك العناوين ...) ، وأمر آخر ألا يكون العنوان على شكل سؤال أو طلب .. نبتعد عن كلمة "طلب" مثال تطبيقي : نفترض أنني أريد معادلة تجمع القيم في عمودين العنوان المناسب للطلب يكون بهذا الشكل : معادلة جمع القيم في عمودين والنتائج في عمود آخر التوجيه الثالث : أن يتم توضيح المطلوب بالموضوع بشكل يزال معه أي لبس ، وفي نفس الوقت يراعى الإجمال في الطلب ، فأقصر الخطوط هو الخط المستقيم ، بمعنى "لا إطالة مملة ولا اختصار مخل" ، أي لا يكون طرح الموضوع مختصر للغاية بل يجب أن يستوفي جميع العناصر المطلوبة ، ومن ضمنها أن يحدد طارح الموضوع هل الحل المطلوب بالمعادلات أم بالأكواد أم بكلاهما لتكون الأمور واضحة بالنسبة لمن يريد تقديم المساعدة ، وأن يقوم صاحب الموضوع بإرفاق ملف به بيانات وهمية لتوضيح طلبه وللوصول إلى حل سريع ودقيق ، وإذا صعب على طارح الموضوع شرح المطلوب يمكنه إرفاق بعض النتائج المتوقعة كي يسهل الوصول لحل. التوجيه الرابع : نلاحظ أن شكل المنتدى لا يعجب معظم الأعضاء ، فلما لا نغير بأيدينا الشكل العام للمشاركات ، فيفضل على سبيل المثال استخدام حجم خط كبير 22 على سبيل المثال وجعل الخط عريض Bold مما يجعل المشاركة واضحة ومقروءة بشكل جيد ، كما يمكن استخدام الألوان أي قم بتنسيق المشاركة بشكل جذاب يجعل القاريء لا ينفر منها. التوجيه الخامس : بعد الانتهاء من الموضوع والوصول لحل يرضي صاحب الموضوع ، يرجى أن يتم تحديد أفضل إجابة من خلال النقر على علامة الصح الموجودة بجانب كل مشاركة ، وأن يسجل صاحب الموضوع إعجابه من خلال النقر على "سجل اعجاب بهذا" كنوع من رد الجميل لمن قدم المساعدة ، ويمكن أيضاً أن يقوم بتقييم المشاركة تقييم إيجابي كنوع من التقدير ، وأن تشكر من قدم المساعدة فمن لم يشكر الناس لا يشكر الله. فيما يخص لو كان هناك أكثر من إجابة للموضوع ، يمكن لصاحب الموضوع عمل مشاركة جديدة يجمع فيها كل الحلول ويختار هذه المشاركة كأفضل إجابة التوجيه السادس : لا تكن لحوحاً ، يكفي أن أعضاء المنتدى يقدمون وقتهم و خبرتهم مقابل لا شيء وعندهم أعمال أخرى (مشاغلهم الخاصة) يقومون بها ، و إذا تأخر الرد ، فمن الممكن أن يكون أحد الأعضاء يقوم بمحاولة الإجابة ، وهذا يستغرق بعض الوقت خاصةً إذا كان الموضوع صعباً. التوجيه السابع : حمل الملف المرفق دون زركشات (ألوان و تنسيقات مختلفة) مما يزيد من حجم الملف و أحياناً تكون الألوان مقززة بشكل ينفر منها المساعد (خاصةً إذا كانت ألوان الخلايا غير متناسقة مع لون الخط) التوجيه الثامن : تأكد أن الملف المرفوع غير مصاب بفيروس و غير محمي بكلمة سر ، وإلا لن تجد المساعدة من قبل الأعضاء. التوجيه التاسع : متابعة صاحب الموضوع لموضوعه والتفاعل معه ، فلا يعقل أن يطرح أحدهم موضوع ولا يتابعه إلا بعد مرور وقت طويل ، فهذا يعد من اللامبالاة الغير مرغوب فيها ، والتي تنفر الجميع من العضو. التوجيه العاشر : عدم التسجيل في المنتدى بأكثر من حساب ، وأن يكون اسم الظهور باللغة العربية ومعبر عن الاسم الحقيقي أي (تعريب اسم العضو) ، فلا يجوز أن يكون اسم الظهور اسم واحد وفقط بل أن يكون ثنائي على الأقل أو أن يكون اسم ولقب ، ولذا يرجى عدم استخدام الأسماء المستعارة أو الأسماء باللغة الأجنبية ، فاللغة العربية هي هويتنا ولابد من الحافظ عليها. ** يتم تغيير اسم الظهور أو اسم المستخدم من خلال إعدادات الحساب ثم التبويب اسم المستخدم ، قم بتغيير الاسم ثم انقر كلمة حفظ التوجيه الحادي عشر : عدم طرح أكثر من موضوع لنفس الطلب من نفس العضو ، فهذا يعد مخالفة صريحة ، وليعلم العضو الذي يقوم بذلك أن تكرار الموضوع لن يجدي نفعاً في حالة عدم توضيحه للمطلوب. وفي حالة أن قام العضو بذلك عن طريق الخطأ يقوم العضو بالتنويه في الموضوع وطلب حذف الموضوع نظراً لتكراره. التوجيه الثاني عشر : على من يقدم المساعدة أن يكون مثالاً يحتذى به في العطاء والصبر والحلم وكرم الأخلاق وحسن الإجابة ، يجتذب بتلك الصفات عقول الآخرين وأفئدتهم التوجيه الثالث عشر : عند طرح موضوع يفضل أن يكون هناك طلب واحد فقط إذ أن الموضوع الذي تكثر فيه الطلبات ينفر الأعضاء الذين يريدون تقديم يد المساعدة ، وعلى رأي المثل (من يطارد عصفورين يفقدهما) فما بالك لو طاردت أكثر من طلبين أقصد أكثر من عصفورين ، يمكنك أن تتعامل بذكاء بأن تطرح الموضوع بطلب واحد حتى إذا تم على خير قم على الفور بطرح موضع جديد بطلب جديد وهكذا إلى أن يتم الأمر التوجيه الرابع عشر : يرجلا عدم إرسال رسائل خاصة للأعضاء لطلب المساعدة بشكل شخصي ، لأن هذا الأمر يضايق الكثير من الأعضاء ، وتأكد أن العضو إذا كان لديه معلومة أو يستطيع أن يفيد بشيء ووقته يسمح بذلك فلن يتأخر عنك ، يكفي أن تكتب كلمة "للرفع" في موضوعك ، ليشاهده أكبر عدد من الأعضاء. ** كيفية رفع الصور في المشاركات : ******************************* دمتم على طاعة الله
    1 point
  6. السلام عليكم و رحمة الله و بركاته صدقني أستاذي الغالي ياسر خليل .. أنا عن نفسي أتابع ليلاً و نهارًا مواضيعك الشيّقة حتى إنّي الآن منهمك تمامًا بوضوعك "افتح الباب" ..قلة معلوماتي وكوني مبتدئا بعالم الأكواد جعلتني أكون من المقصّرين في اللعب ..لكني متفرج بكل جوارحي لمواضيعك الممتعة.. تحياتي
    1 point
  7. أخي الحبيب إبراهيم مشكور على متابعتك الجيدة للموضوع والتجاوب بشكل فعال ، وصدقني أنا بتعلم معكم تماماً ... الموضوع شيق ومفيد جداً ولكن أعاني دائماً قلة المتابعين تقبل تحياتي
    1 point
  8. نعم اخي ياسر جزاك الله كل خير و بارك بك و بكل الاخوة في هذا المنتدى المبارك
    1 point
  9. قم بjتحميل الأداة التي تمكنك من تحميل النسخة 32 بت من هنا 64 بت من هنا شوف النطام المطلوب . وحمل الأداة الخاصة بيه واتبع الخطوات حتى تستطيع أن تحمل النسخة 10
    1 point
  10. وعليكم السلام أخي وائل اخذت لك هذا الكود من احد برامجي Private Sub Form_Close() On Error GoTo err_Form_Close 'make a backup of BE BE_or_FE = "C:" Backup_Folder = "D:" BE_Address = BE_or_FE & "\Haj_BE.accdb" BK_Address = Backup_Folder & "\Program\Haj_BE_" & Format(Now(), "yyyy-mm-dd_-hh-mm-ss") & ".accdb*" Call Shell("xcopy " & BE_Address & " " & BK_Address, vbHide) Exit Sub err_Form_Close: If Err.Number = 2450 Then 'ignor Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub وهذا الكود لنسخ الملف وليس لحذف القديم ، وفي هذا الرابط ستجد طريقة مشابهة لما تريد (اعذرني ، فوقتي لا يسمح لي بعمل المطلوب الان :( ) http://www.officena.net/ib/topic/61847-تعديل-على-كود-حفظ-مكان-الصورة/?do=findComment&comment=399928 جعفر
    1 point
  11. إليك الملف التالي عله يكون الحل النهائي للموضوع Function AvAngles(Param As Range) As Double Dim Cell As Range, AvSin As Double, AvCos As Double, At2 As Double Dim F As WorksheetFunction Set F = WorksheetFunction For Each Cell In Param AvSin = AvSin + Sin(F.Radians(Cell.Value)) AvCos = AvCos + Cos(F.Radians(Cell.Value)) Next Cell AvSin = AvSin / Param.Count AvCos = AvCos / Param.Count At2 = F.Degrees(F.Atan2(AvCos, AvSin)) AvAngles = IIf(At2 < 0, At2 + 360, At2) End Function النتائج للدالة المعرفة تماماً مثل النتائج المرفقة لا تنسى أن تحدد أفضل إجابة ليظهر الموضوع مجاب ومنتهي AvAngles UDF Function.rar
    1 point
  12. الحمد لله أن ولدي وإخوتي وأخواتي بخير إلا أنه ما يشق في نفسه ذلك الفراق الذي طال وقد يطول أمده إلى مدى لا يعلمه إلا الله تعالى ونحن هنا نعيش ضمن أكياس نايلون"خيم" وكأننا بضاعة موضبة ومعدة للبيع. وحياة هنا لا نحس بها بكرامتنا وعزة أنفسنا كلاجئين...هذا ماوددت التنويه عليه لكي لا تبتعد بفكرك أكثر..كما أشكر أخي عبد العزيز على حسن رده الطيب. والسلام عليكم.
    1 point
  13. السلام عليكم و رحمة الله و بركاته صباح الفل أبانا محمد حسن المحمد صباح الورد أستاذنا ياسر خليل أبو البراء .. صدقني كأنّك علمت ما بفكري و عبّرت عنه .. بصراحة أنا بعيد بعد السماء عن الأرض عن المصطلحات " سند - شيك - قبض - صرف " ولا تدخل بالي ولا أفهم معناها وما المقصود منها ..عملي في مجال التربية قد أفهم ليس الفهم فقط لأنني قد تكون معلومات زائدة ..المشكلة أنني لا أرغب ..أكره هذه المصطلحات المذكورة ولو من باب التعلم..أتجاوب مع "كشف - نقاط - ترتيب - معدلات ...." لكن هذه الكلمات أراها صعبة عني ..معذرة أبي محمد حسن المحمد عن التقصير ليس في الاضافة لأني أنا محتاج من يضيف لي المعلومات و إنما عن التقصير في عدم إثارة الموضوع من حين لآخر.. وافر تقديري واحتراماتي
    1 point
  14. وعليكم السلام ورحمة الله وبركاته لا أجد من الكلمات ما أعزيك به فوالله لقد أبكيتني وأدميت قلبي .. ولكن لا أقول إلا "إنا لله وإنا إليه راجعون ..إن لله ما أخذ وله ما أعطى وكل شيء عنده بمقدار" .. فصبرجميل والله المستعان على ما تصفون .. الجأ إلى الله تزال كل هموم الدنيا ولا يبقى منها صغيراً ولا كبيراً .. وأنت هنا بين إخوانك وأحبابك وتأكد أنه لا يتجاهلك أحد من أحبابك وإخوانك اللهم فرج عنا كل كرب وهم وأبدل الآلام في قلوبنا إلى أفراح مع خالص حبي وتحياتي لشخصكم الكريم
    1 point
  15. اخى خالد السلام عليكم ورحمة الله وبركاته ........... برنس والله ماشاء الله عليك اجمل ما فيك انك واضح وصريح تقبل تحياتى
    1 point
  16. ماشى يااستاذ ياسر نعيد الاجابه لتتوافق مع السؤال Sub OneDimensionalArray5() Dim Arr Arr = Range("A1:A15") Cells(5, "K").Resize(UBound(Arr), 1) = Arr End Sub تقبل تحياتى
    1 point
  17. وعليكم السلام ورحمة الله وبركاته أخي وحبيبي في الله أبو يوسف هديء من روعك ... ما الذي أثار غضبك ؟ وأين هذا الجفاء ؟ وما هو التجاهل الذي تقصده ؟ في حقيقة الأمر أنا لست متابعاً جيداً للموضوع حيث أنني لا أفهم طبيعة الملف بحكم أن عملي بعيد عن هذه المصطلحات (سند وقبض وصرف وحاجات كدا ولا أفهم فيها) حاولت أن أقدم في بداية الأمر الشكل العام وتوضيح للنقاط الرئيسية وآملت أن أجد من يقدم أو يكمل المعلومة ..لكن ما باليد حيلة ... أرجو ألا تحزن .. وأقول لك فصبر جميل .. مشكلتي أنني لا أجيد التعامل مع الفورم ولكن هذا لا يمنعني من المحاولة .. إن شاء الله عندما أنتهي من موضوع المصفوفات (لأنه موضوع مفيد جداً) سأحاول أن أكمل معك مشوار هذا البحث رغم أنني أجهل فيه الكثير تقبل وافر تقديري واحترامي
    1 point
  18. السلام عليكم ورحمة الله وبركاته.. أخطأت وليعفو عني إخوتي في مجال إنهاء هذا البحث ..ولم يكن ذلك إلا أنه كان أرضاً خضراء يانعة فما لبث أن جفت ينابيعه فأصبح كمقبرة لا يأتيها الناس إلا لدفن موتاهم أو الدعاء لهم. لم أغلقه إلا بعد انتظار ورود أية مشاركة ...إلا أنها جاءت على استحياء.إن كنتم ترون أنني لست أهلاً لإدارة هذا الملف فأتوا بمن ترونه ليديره لا أن يتوقف فيصبح أرضاً بوراً كما حصل لي وأتشرف بمن ترونه لإدارة هذا الملف كوني لا أمتلك علماً يؤهلني لذلك. لم أجد من يصحح لي خطأي أو ينبهني عليه بل وجدت التجاهل وهذا ما حزّ في نفسي, وفي ذلك عتب على إخوة كثر كنت معهم كالمرآة ...أنبههم وأصحح لهم ومن منا لا يخطئ...ولكن هذا الجفاء لا يليق .أليس الدين النصيحة؟ فأين النصيحة؟ فإن وجدتم مني ما تكرهونه ...أو تظنونه ... لكم أن تلوموني...أو تعذلوني . لا أن تتجاهلوني. ولكم في رسول الله أسوة حسنة...ألا تذكرون قصة الرسول صلى الله عليه وسلم عندما قال لعلي رضي الله عنه:" قم أبا تراب". والسلام عليكم ورحمة الله وبركاته.فإن تجاهلتم قولي أرجو أن تتركوا رسالتي هذه ليأتي من يقرأها ذات يوم.
    1 point
  19. السلام عليكم ورحمة الله بعد مراجعة المعادلات وُجد خطأ في بعضها وتم تصحيحه في المرفق الجديد مع اعتبار عدم تكرار الأسماء وإضافة تحسينية بتنسيق شرطي (تلوين بالأخضر للصف الذي يحوي نتائج الاختبار)... أرجو أن ينال إعجابك... بن علية bjn3000.rar
    1 point
  20. اشكرك اخي نور الدين على مشاركتك ومساندتك جزيل الشكر واضافتك ممتازه بان يوضع خاصية القيمة الافتراضيه= صفر لحقل القسط ! اذكر فقط بان هناك دالة nz وهي لاستبدال القيم اخالية بقيمة تحددها انت وحيث هنا القيمة صفر هي المناسبة لتحل محل الفراغ ! ولكن للاسف لا يقبلها الاكسس ضمن تعبير الحقل المحسوب من ما اضطررنا الى استخدام الدالتين السابقة ومتداخلتين وكما تفضل بالشرح اخي نور الدين تحياتي لكم جميعا
    1 point
  21. اخينا محمد ومشاركة مع اخي نور الدين عرف ان حقول الجدول لتخزين البيانات الخام ! وانه ليس لوجود الحقل المحسوب مكان في الجدول وكما ذكر اخي نور الدين ! ولكن اتت ميزة جديدة في 2010 وما بعد وهو انه يمكن اجراء العمليات الحسابية في الجدول ولكن العمليات فقط الرياضية البسيطة وكما في سؤالك ! لذلك اليك الطريقة : 1. سيكون عمود ا sel من نوع بيانات محسوب 2. ضع التعبير التالي في خاصية التعبير للحقل المحسوب: [pay]-IIf(IsNull([loan]);0;[loan]) بالتوفيق
    1 point
  22. السلام عليكم ورحمة الله وبركاته جزاكم الله خير الجزاء على البرنامج الرائع سؤال ربما أجد إجابة له لأنني رأيت بعض الإخوة طرحت نفس السؤال وتم غض النظر عنه بما أن البرنامج وقف فلمذا لم يتم رفع الملف إكسل عادي مع ترك البرنامج بدون حماية للأكواد أضن أن الجواب هو خوفكم على أن يتم التعديل عليه وبيعه إن كان هذا هو الجواب الصحيح فيجب عليكم أن تنبهو لهذا الغرض كل من استفاد منه أن لا يتم بيعه وتشكوا أمر من قام ببيع النسخة لله وما أعظم شكواكم لله في هذا الشأن مع العلم أنه وقف وكما لا يخفى عليكم أن جزاء الوقف صدقة جارية ومن الضروري أن تفتحو المجال للإخوة بالتعديل لكي يتلاءم البرنامج مع أي شخص، ليستفيد منه الكثير وليس القليل وذلك بحماية البرنامج من التعديل وتكونوا أنتم الرابح الأكبر لأن مستخدميه ستتكاثر إنشاء الله ويزداد أجر الصدقة الجارية وللإشارة فإن من قام ببيع النسخة تكتب لكم صدقة جارية إنشاء الله وله الجزاء من الله لا محالة ولمجلسكم واسع النظر أقول قولي هذا وأتمنى لكم التوفيق لكل خير أخوكم في الله // الخليفة الأول
    1 point
  23. بعد أذن اخينا الغالي ابو خليل ضع في الاستعلام الشرط التالي Like "*" & نص البحث & "*"
    1 point
  24. جرب تعديل الكود بهذا الشكل .. Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo Reset_EnableEvents Application.ScreenUpdating = False Application.EnableEvents = False If Not Intersect(Target, Range("C18:C2014")) Is Nothing Then If IsEmpty(Target) Then Target = "" ElseIf Target.Value = 1 Then Target.Value = "اولي ابتدائي" ElseIf Target.Value = 2 Then Target.Value = "ثانية ابتدائي" ElseIf Target.Value = 3 Then Target.Value = "ثالثة ابتدائي" ElseIf Target.Value = 4 Then Target.Value = "الصف الرابع" ElseIf Target.Value = 5 Then Target.Value = "الصف الخامس" ElseIf Target.Value = 6 Then Target.Value = "الصف السادس" ElseIf Target.Value = 7 Then Target.Value = "الصف السابع" ElseIf Target.Value = 8 Then Target.Value = "الصف الثامن" ElseIf Target.Value = 9 Then Target.Value = "الصف التاسع" End If End If If Not Intersect(Target, Range("D18:D2014")) Is Nothing Then Select Case Target Case "ك" Target = "ذكر" Case "ن" Target = "انثى" End Select End If Application.ScreenUpdating = False If Target.Column = 4 Or Target.Column > 8 Then GoTo Reset_EnableEvents LR = Cells(Rows.Count, 2).End(xlUp).Row If Range("B" & LR) = "" Or Range("C" & LR) = "" Or Range("D" & LR) = "" Or Range("E" & LR) = "" Then GoTo Reset_EnableEvents Range("B18:E" & LR).Select Selection.Sort Key1:=Range("b18"), Order1:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal ''''''''''''''''''''''''''''''''''''''''''''''' With Range("b18:b" & LR + 3) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Font.Size = 18 .Font.Bold = True End With '''''''''''''''''''''''''''''''''''''''''''' With Range("B18:B" & LR + 3) .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Font.Size = 18 .Font.Bold = True End With Range("B" & LR + 5).Select Reset_EnableEvents: Application.ScreenUpdating = True Application.EnableEvents = True End Sub
    1 point
  25. اليك الحل اخى الكريم يارب يكون المطلوب اختيار عميل من يوزرفورم.rar
    1 point
  26. السلام عليكم ورحمة الله وبركاته اخي الكريم الوافي عذرا" للتاخير لانشغالي يوم السبت اما يوم الاحد لدي عطلة فلم استطع العمل على الكمبيوتر هذان المرفقان شرح لطريقة عمل قائمة منسدلة وملفك الذي تم التعديل عليه لك تحياتي اخوك سمير نجار السلام عليكم ________________.rar _______11.rar
    1 point
  27. السلام عليكم كود مشابه للكود للاخ الفاضل ابواسامة مع امكانية البحث عن الدولة دبل شيك على خلية الاسم KH_TEST.rar
    1 point
  28. الاستاذ القدير خبور ارجو من سعادتكم ملفات اكسل لعمل محاسبه الاغذيه والمشروبات بالفنادق ياسر yasser1965@hotmail.com
    1 point
  29. والله فعلا روعة روعة روعة روعة شكرا لك سيد / خبور على هذا المجهود الكبير لمساعدتنا شكرا شكرا شكرا شكرا :clapping:
    1 point
×
×
  • اضف...

Important Information