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

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

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

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

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


    • نقاط

      37

    • Posts

      13165


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      8

    • Posts

      9927


  3. رمهان

    رمهان

    الخبراء


    • نقاط

      5

    • Posts

      2390


  4. خالد الرشيدى

    خالد الرشيدى

    الخبراء


    • نقاط

      4

    • Posts

      889


Popular Content

Showing content with the highest reputation on 03/07/16 in مشاركات

  1. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله .. بصراحة أعجز عن البداية في هذا الموضوع نظراً لكثرة المعلومات في هذا الموضوع وتشعب الموضوع بشكل كبير ، ويرجع هذا التشعب إلى أهمية الموضوع لأن العمل بالمصفوفات يجعل الأكواد تكون أسرع بكثير من التعامل بالأكواد العادية خصوصاً مع البيانات الكثيرة .. الموضوع سيكون مستمر بإذن الله .. فأنا أؤمن بالحكمة التي تقول : قليل دائم خير من كثير منقطع .. سنبدأ في تناول الموضوع جزء جزء لكي نستطيع أن نهضم سوياً الموضوع ، ونستفيد من هذا الموضوع أقصى استفادة ممكنة نبطل رغي ونبدأ في المهم يعني ايه مصفوفة Array ؟ قبل ما نتعرف على المصفوفة .. عرفنا في دورة افتح الباب وادخل لعالم البرمجة "المتغير Variable" وقلنا إن المتغير وظيفته إنه بيخزن قيمة (سواء القيمة دي نص أو رقم أو تاريخ أو أي نوع من أنواع البيانات) .. بس المتغير بيخزن قيمة واحدة مثال : لو عايز أخزن القيمة النصية Officena Forums في متغير كنا بنعمل ايه ..؟! بنعلن عن المتغير من النوع النصي في سطر وفي السطر التالي بنقوم بتعيين قيمة للمتغير .. Sub StringVariable() Dim str As String str = "Officena Forums" End Sub طيب عشان نتأكد إن شغلنا مضبوط عايزين نعرف المتغير دا تم تخزين القيمة النصية فيه ولا لا .. ممكن نستخدم طريقة من اتنين : الطريقة الأولى باستخدام MsgBox لإظهار رسالة للمستخدم بقيمة المتغير .. MsgBox str الطريقة التانية ودي مهمة جداً لأننا هنستخدمها أثناء شرح المصفوفات لمتابعة تنفيذ أسطر الكود .. الطريقة باستخدام Debug.Print Debug.Print str طيب الطريقة دي هتظهر لنا إزاي : هتظهر النتائج في نافذة اسمها النافذة الفورية Immediate Window (طيب دي أجيبها منين وإزاي؟!) روح للقائمة الموجودة في محرر الأكواد وانقر على View هتلاقي Immediate Window أو باختصار من لوحة المفاتيح اضغط على Ctrl + G .. هتظهر النافذة الفورية في أسفل محرر الأكواد .. جرب الكود بالشكل الكامل بهذا الشكل Sub StringVariable() Dim str As String str = "Officena Forums" MsgBox str Debug.Print str End Sub طيب لما نحب ننفذ الكود يا ريت لا يتم التنفيذ مرة واحدة من خلال الأمر Run .... عايز التنفيذ يتم واحدة واحدة وسطر بسطر عشان تتعلموا إزاي تتابعوا عمل الكود .. عشان ننفذ الكود سطر بسطر ونتابع عايزين نظهر نافذة تانية كمان اسمها Local Window وبردو من نفس القائمة View وحاول تظبط النافذتين بحيث يكونوا بجانب بعضهم البعض كما في الصورة بحيث تتابع التنفيذ خلينا عمليين ونطبق أول بأول : روح لمحرر الأكود وأدرج موديول وانسخ الكود وأظهر نافذة Local Window والنافذة الفورية وضع مؤشر الماوس داخل الكود في اي سطر واستعد للانطلاق (على السادة المبرمجين ربط الأحزمة وشحذ الهمة والتركيز) اضغط F8 من لوحة المفاتيح هتلاقي أول سطر Sub StringVariable اتلون باللون الأصفر .. هنا بيتم الإعلان عن المتغيرات (بص في نافذة اللوكال) هتلاقي اسم المتغير str في عمود اسمه Expression ، وقيمته "" في عمود اسمه Value (طبعاً لسه فراغ لأن لسه مخزناش فيه حاجة) ، ونوعه String في عمود Type .. يعني ببساطة عرفنا تاريخ حياته في اللحظة دي ..عرفنا اسمه وقيمته ونوعه (الكلام دا رغم إنه ملوش علاقة بموضوع المصفوفات لكنه مهم جداً عشان نفهم إزاي نتعامل مع محرر الأكواد بشكل احترافي ونعلم نفسنا إزاي الكود بيتم تنفيذه) نضغط F8 تاني (هنا مفيش حاجة حصلت) السطر الأصفر انتقل للسطر ده str = "Officena Forums" ولكن محصلش أي تغيير في نافذة اللوكال ..دا لأن التغيير بيحصل لما بخرج من السطر الأصفر .. اضغط F8 للمرة التالتة وشوف نافذة اللوكال ولاحظ قيمة المتغير .. اتغيرت القيمة من فراغ إلى النص Officena Forums اضغط F8 للمرة الرابعة هتظهر لك رسالة فيها قيمة النص اضغط F8 للمرة الخامسة هيظهر قيمة المتغير في النافذة الفورية اضغط F8 للمرة السادسة والأخيرة على سطر End Sub لإنهاء الإجراء الفرعي بكدا نكون عرفنا إزاي هنتعامل مع تنفيذ الكود أثناء الدورة ... طولت في النقطة اللي فاتت شويتين بس كان لازم منها عشان ننتقل إلى مرحلة الاحترافية في التعامل مع الأكواد *************** طيب سؤال ايه علاقة المتغير بالمصفوفة؟ الإجابة إن المصفوفة متغير بس مش بيخزن قيمة واحدة (دا بيخزن مجموعة من المتغيرات دفعة واحدة) مثال عملي لفهم المصفوفة بشكل أعمق ::: نفترض أن لدينا 5 طلاب وليهم درجات ..نروح لورقة العمل ونكتب 5 أسماء بدرجاتهم كما بالشكل التالي نروح لمحرر الأكودا وننفذ الكود التالي ..الكود مش محتاج شرح الكود بسيط جداً Sub StudentMarks() With ThisWorkbook.Worksheets("Sheet1") 'الإعلان عن متغير لكل طالب Dim Student1 As Integer Dim Student2 As Integer Dim Student3 As Integer Dim Student4 As Integer Dim Student5 As Integer 'تعيين قيم المتغيرات من الخلايا المشار إليها Student1 = .Range("B1").Offset(1) Student2 = .Range("B1").Offset(2) Student3 = .Range("B1").Offset(3) Student4 = .Range("B1").Offset(4) Student5 = .Range("B1").Offset(5) 'طباعة الدرجات في النافذة الفورية Debug.Print "درجات الطلاب" Debug.Print Student1 Debug.Print Student2 Debug.Print Student3 Debug.Print Student4 Debug.Print Student5 End With End Sub أول سطر في الكود عشان نتعامل مع المصنف الحالي الذي يحتوي الكود .. والتعامل هيكون مع ورقة العمل Sheet1 ... الجزء الأول بيتم الإعلان عن المتغيرات لدرجات الطلاب من النوع Integer أي عدد صحيح (طبعاً دا مجرد مثال .. لأن الدرجات من المفترض إنها تكون Double لأن أكيد بيكون فيه كسور)>>المهم الجزء التاني بيتم تعيين قيم للمتغيرات (الدرجات) انطلاقاً من الخلية B1 ... بإزاحة بمقدار صف واحد لأسفل هيجيب قيمة الخلية B1 ... بإزاحة بمقدار صفين هيجيب الخلية B3 وهكذا الجزء التالت هيطبع درجات الطلاب في النافذة الفورية لتكون النافذة الفورية بهذا الشكل طيب المثال اللي فات 5 طلاب ..طيب لو عندي 100 طالب .. 500 طالب .. 1000 طالب .. 10000 طالب (هل سيكون التعامل مع طالب طالب ..؟؟ دا أكيد انتحار ) من هنا تأتي أهمية المصفوفة لتخزين جميع القيم في متغير واحد فقط .. يعني المصفوفة هتخليني أخزن القيم (درجات الطلاب) في متغير واحد فقط Sub StudentMarksArr() With ThisWorkbook.Worksheets("Sheet1") 'الإعلان عن متغير من النوع مصفوفة وأبعاد المصفوفة 5 عناصر 'لأن عدد الطلاب 5 طلاب والمطلوب تخزين درجاتهم في المصوفة Dim Students(1 To 5) As Integer 'قراءة درجات الطلاب من ورقة العمل Dim I As Integer For I = 1 To 5 Students(I) = .Range("B1").Offset(I) Next I 'طباعة الدرجات من المصفوفة في النافذة الفورية Debug.Print "درجات الطلاب" For I = LBound(Students) To UBound(Students) Debug.Print Students(I) Next I End With End Sub تم الإعلان عن اسم المتغير Students وطالما وضعنا أقواس بعد المتغير ..محرر الأكواد بيفهم إن دي مصفوفة .. طيب ايه الأرقام اللي ما بين الأقواس 1 إلى 5 دا اسم البعد الأول للمصفوفة (لأن المصفوفة دي عبارة عن عمود واحد اللي هو عمود الدرجات ودي بيسموها مصفوفة ذات بعد واحد (أحادية الأبعاد) وإن شاء الله هنتكلم عنها بالتفصيل نضع المؤشر داخل الكود ونضغط F8 ونبص في اللوكال ... ركز يا مان وشوف المتغير اللي اسمه Students في نافذة اللوكال هتلاقي علامة زائد انقر عليها زي ما إحنا شايفين اللوكال قالت كل حاجة ..قالت الأبعاد وقالت لنا على عناصر المصفوفة ورقم الفهرس لكل عنصر (الرقم اللي بين أقواس بعد اسم المصفوفة دي رقم الفهرس ) طبعاً لسه الكود في بدايتة فالقيم كلها ما زالت صفر .. ابدأ في التنقل باستخدام F8 كما تعلمنا وارجع بعد شوية .... لاحظت في الحلقة التكرارية اللي بدأت من 1 إلى 5 إن القيم الموجودة بدأت تتغير من أصفار إلى قيم (درجات الطلاب) لمزيد حول الحلقة التكرارية للمصفوفة راجع الموضوع التالي من هنا نيجي لآخر جزئية وهي طباعة الدرجات في النافذة الفورية ... هنا تم استخدام الحلقات التكرارية من بداية المصفوفة باستخدام كلمة LBound يليها اسم المصفوفة ، إلى نهاية المصفوفة باستخدام كلمة UBound يليها اسم المصفوفة .. ببساطة الكلمتين دول بيجيبوا الحد الأدنى للمصفوفة (1 كما في المثال) والحد الأعلى للمصفوفة (5 كما في المثال) قم بالضغط على F8 واحدة واحدة وشوف التغيرات اللي بتحصل في نافذة اللوكال والنافذة الفورية عشان تقدر تستوعب عمل الكود بشكل جيد إلى هنا حانت لحظة النوم وبدأ النوم يداعب جفوني ، ألتقي بكم على خير إن شاء الله وإلى لقاء آخر وموضوع متجدد بإذن الله دمتم على طاعة الله والسلام عليكم ورحمة الله وبركاته
    9 points
  2. السلام عليكم ورحمة الله وبركاته إخواني الكرام ... ارتأيت أن موضوع المصفوفات بات من الأهمية بمكان بحيث لا يجب أن ننساه لما له من أهمية كبيرة في التعامل مع الأكواد بسرعة كبيرة جداً وخصوصاً في حالة التعامل مع كم هائل من البيانات .. فقررت أن أشارككم بما تقع عليه يدي من أكواد فيما يخص المصفوفات لنتعلم ونرتقي سوياً .. سأتناول كود بسيط بالتفصيل لنعرف ما هية المصفوفات وكيفية التعامل معها بشكل جيد الكود عبارة عن عمل حلقة تكرارية لعناصر المصفوفة من أول عنصر لآخر عنصر .. وإظهار العناصر في رسالة أو وضعها في نطاق أو التعامل معها كما تريد نبدأ بالكود بالكامل ثم نتناوله بالتفصيل Sub LoopInArray() Dim myArray As Variant Dim X As Integer myArray = Array("Yasser", "Khalil", "Officena", "Forum") For X = LBound(myArray) To UBound(myArray) MsgBox (myArray(X)) Next X End Sub السطر الأول هو بداية الإجراء الفرعي ويبدأ بكلمة Sub كما تعودنا يليه اسم الإجراء الفرعي ويفضل تسميته باسم يعبر عن الهدف من الكود ...قمت بتسميته LoopInArray حيث أننا سنتعامل بالحلقات التكرارية داخل عناصر المصفوفة .. وطبعاً لكل شيء بدأته لازم تقفله ..وقفلة الـ Sub بتكون بكلمة End Sub في نهاية الكود بالطبع السطر الثاني الإعلان عن متغير myArray وهو متغير للمصفوفة التي سنتعامل معها وقمت بتسميتها باسم مناسب وليس أي اسم (أفضل دائماً أن تكون أسماء المتغيرات معبرة عن المتغير والهدف منه ونوعه ..) السطر الثالث هو إعلان عن متغير من النوع Integer ووظيفة هذا المتغير أنه بمثابة عداد ..إذ أن من يعرف الحلقات التكرارية يعرف أنه لعمل حلقة تكرارية يستلزم أن يكون هناك عداد لهذه الحلقة التكرارية .. وقيمة المتغير X ستتغير مع كل حلقة .. أقصد أنه في أول لفة ستكون قيمة المتغير تساوي رقم البداية (فإذا كان رقم البداية 1 فإن المتغير يساوي 1) وفي اللفة الثانية تزداد قيمة المتغير بمقدار 1 ليصبح على سبيل المثال 2 وفي اللفة الثالثة يساوي 3 وفي اللفة الرابعة ..كمل إنت !! انتهينا من الأسطر التقليدية (تسمية الإجراء والإعلان عن المتغيرات) ... نتوقف قليلاً لللتجربة !! ماذا سنجرب يا ترى ؟ هل هناك ما يستدعي منا أن نجربه ونحن ما زلنا في البداية ولم نكتب أسطر فعلية للكود .. نعم لابد أن نتعلم شيئاً جديداً ومفيداً عند التعامل مع الأكواد ...... تطبيق : انسخ الكود السابق في موديول جديد ثم ضع الماوس داخل الإجراء الفرعي .. ومن قائمة View في محرر الأكواد اختر الأمر Local Window إنها نافذة ستجعل منك محترفاً في فهم الأكواد (صدقوني ستذهلون منها بشكل كبير جداً) ..إنها بمثابة نافذة لك لتدرك كيف يتم تنفيذ أسطر الكود سطر سطر انتبهوا لهذه النافذة بشكل كبير ... كيف سيتم التعامل مع هذه النافذة المدهشة ؟ الأمر في غاية اليسر والسهولة والبساطة .. ستستخدم من لوحة المفاتيح F8 وهو يمكنك من متابعة الكود سطر بسطر .. كفانا كلام نظري وننتقل للتطبيق .. ضع الماوس داخل الإجراء الفرعي (الكود) ثم اضغط F8 مرة واحدة فقط .. وانظر للنافذة التي كانت فارغة منذ قليل لقد أصبحت ثرية .. نعم ثرية .. بضغطة واحدة ستتمكن الآن من تحليل المتغيرات .. لقد تم وضع سطر باللون الأصفر على أول سطر بالكود كما تم وضع المتغيرات في النافذة بهذا الشكل في الناحية اليسار من النافذة توجد أسماء المتغيرات التي تم الإعلان عنها وفي العمود الأوسط قيمة المتغير ..فقيمة المتغير الأول Empty ما زالت المصفوفة فارغة لم يتم إضافة أي عنصر لها ، وقيمة المتغير الثاني لأنها من النوع Interger فتحمل القيمة صفر لأننا لم نضع قيمة لها بعد وفي العمود الثالث نوع المتغير فالمتغير الأول من النوع Variant وهذا النوع غالباً ما نستخدمه مع المصفوفة لأن المصفوفة مرنة ربما تحمل نصوص وربما أرقام وربما حتى نطاقات (موضوع يطول شرحه) إلى الخطوة الثانية والتي هي نفس الخطوة الأولى (حد يفكرني !!) محدش مركز !! ... الخطوة التانية اضغط F8 مرة تانية .. ماذا حدث ؟ لقد تجاوز السطر الأصفر أسطر الإعلان عن المتغيرات .. نعم لأنها أسطر غير قابلة للتنفيذ إنما تظهر المعلومات المرتبطة بهذه المتغيرات مع أول ضغطة على F8 بعد السطر الأول في الكود .. انتقل السطر الأصفر ليظلل السطر التالي .. ولم يحدث أي تغيير في نافذة الـ Local Window myArray = Array("Yasser", "Khalil", "Officena", "Forum") هل التنفيذ مرتبط بالسطر الأصفر ؟ نعم يتم تنفيذ السطر الملون بالأصفر بعد الخروج من السطر الأصفر وليس عند تظليل السطر الأصفر الخطوة الثالثة .. ماذا تتوقع أن يحدث بعد أن نضغط F8 للمرة الثالثة؟؟؟ فكر ثواني عشان تفهم اللعبة .. سيتم تنفيذ السطر الأصفر السطر الحالي عبارة عن تعيين قيم أو وضع عناصر للمصفوفة .. لدينا بعض الأسماء (وبما أن الأسماء نصوص فتم وضعها بين أقواس تنصيص) وهذه الأسماء سيتم وضعها داخل المتغير الذي قررنا أنه سيكون للمصفوفة انتبه انتبه ..لم أطلب منك أن تبدأ الخطوة الثالثة بعد ..!! فقط انظر لنافذة الـ Local Window على المتغير myArray وشوف القيمة هتلاقيها Empty أي أن المصفوفة فارغة (وكما بص على يسار اسم المتغير ..هل يوجد علامة زائد بجانب اسم المتغير myArray ؟؟ الإجابة لا يوجد) ابدأ تنفيذ الخطوة الثالثة ألا وهي نفس الخطوة الأولى ونفس الخطوة الثانية ..حد يفكرني !! محدش مركز .. اضغط F8 بردو (أنا مش عايز أتعبك أنا عايز تشوف وتتعلم وبعديها خلي دماغك يتكلم) ضغطت يا وائل ولا لسه على F8 ؟؟؟ تمام تمام الله ينور عليك ايه اللي حصل يا حوسو .. لما نحب نعرف ايه اللي حصل هنبص على الكود وعلى النافذة .. نبص الأول على الكود هنلاقي إنه تم الانتقال للسطر التالي وأصبح السطر التالي مظلل باللون الأصفر .. طيب الأهم إننا نبص على النافذة Local ونشوف المتغير myArray هنلاقي حاجة غريبة بتحصل .. حاجة بسيطة لكن مهمة المصفوفة اللي كانت فارغة Empty من شوية ومفيش علامة زائد جنبها .. أصبح فيه علامة زائد على يسار اسم المتغير ولما نبص في عمود القيمة هنلاقي كلمة Empty أصبحت مش موجودة .. دا لأنها بعد الانتقال من السطر اللي فات بقت المصفوفة فيها قيم .. نبص للعمود الثالث هنلاقي بردو فيه شيء اتغير ..نوع المتغير لم يتغير زي ما هو Variant بس فيه شيء إضافي .. هتلاقي ما بين قوسين بداية المصفوفة ونهاية المصفوفة بمعنى آخر المصفوفة اللي بنتعامل معاها دلوقتي فيها 4 قيم .. ولما نبص نلاقي الأرقام من 0 إلى 3 (افتراضي المصفوفة بتبدأ من الرقم 0 وليس الرقم 1 ) الأرقام دي عبارة عن فهرس للمصفوفة (زي فهرس كتاب) يعني مثلاً أول قيمة في المصفوفة اللي هي Yasser لها الرقم 0 في الفهرس .. والقيمة Khalil ليها رقم 1 وهكذا لنهاية القيم كل عنصر داخل المصفوفة ليها رقم في الفهرس .. عايز تتأكد من كلامي تعال على نفسك شوية ونتعب ونضغط علامة الزائد اللي على يسار اسم المتغير (خلي الصورة تتكلم شوية عشان أنا تعبت) زي ما إحنا شايفين الفهرس من 0 1 2 3 وكل عنصر له رقم في الفهرس وله قيمة يعني دلوقتي لو عايز أعرف تاني قيمة في المصفوفة هعمل ايه؟ ببساطة ممكن استخدم كلمة Msgbox ثم اسم المصفوفة ثم افتح قوس ثم أضع رقم القيمة المطلوبة ثم اقفل القوس MsgBox myArray(1) واحد يقولي إنت مش بتجيب تاني عنصر في المصفوفة ..طيب ليه كتبت واحد مش 2 (أقوله لأن المصفوفة بتبدأ من الصفر وليس من الواحد ..) فالواحد بمثابة 2 (عد من البداية ::: رقم صفر هو أول عنصر في المصفوفة .. رقم 1 هو ثاني عنصر في المصفوفة وهكذا) المهم عشان أنا بدأت أتوه من نفسي ننتقل للحلقة التكرارية ودي بيكون ليها عداد زي ما قلنا والعداد هنا X فبنقول For X وبعديها علامة يساوي ... بعد يساوي بداية الحلقة التكرارية يليها كلمة To ثم نهاية الحلقة التكرارية بداية الحلقة هتكون أول رقم فهرس في المصفوفة اللي هو في مثالنا يساوي صفر ، ونهاية الحلقة التكرارية هو آخر رقم في الفهرس اللي هو 3 وبدل ما نكتب من 0 إلى 3 (استخدمنا دالة بتجيب أول رقم في المصفوفة واسمها LBound ودي اختصار لكلمة Lower Bound أي الحد السفلي أي أول رقم في الفهرس ... وأيضاً بالمثل استخدمنا دالة عشان تجيب آخر رقم في المصفوفة والدالة هي UBound ودي اختصار لكلمة Upper Bound أي آخر رقم في الفهرس) طيب العداد لازمته ايه ؟؟ قلنا بيحمل القيمة الحالية ..فأول قيمة عندي هتكون صفر بالتالي قيمة X هتساوي صفر .. إحنا دلوقتي واقفين في السطر الملون باللون الأصفر مع بداية الحلقة التكرارية لو وقفنا بالماوس على كلمة X سيظهر تليح صغير في مستطيل أصفر صغير به قيمة المتغير ( في الصورة قيمة X تساوي صفر) وهو أول رقم في الحلقة التكرارية لأن رقم البداية صفر (والمتغير X يحمل قيمة أول رقم في بداية الحلقة) المهم اضغط F8 لتنتقل للسطر التالي وعايز تروح بالماوس وتقف على الكلمة دي myArray(X) هتلاقي مربع أصفر فيه القيمة Yasser وروح للـ X وقف عليها ستجد القيمة صفر أي أن المصفوفة المسماة myArray ثم نفتح قوس ونضع رقم الفهرس المطلوب ورقم الفهرس هنا هو صفر ..يحمل القيمة Yasser اضغط F8 لتظهر لك رسالة بقيمة أول عنصر في المصفوفة .. اضغط F8 مرة أخرى لتنتقل للفة الثانية في الحلقة .. ولاحظ أن الانتقال بعد ذلك سيكون ما بين السطرين MsgBox (myArray(X)) Next X القيمة X تتغير ويتغير معها القيمة التي تظهر في الرسالة .. أكمل الضغط على F8 لترى نتائج الكود بنفسك ... وعينك دائماً على نافذة Local لترى قيمة المتغير X وهي تتغير مع كل لفة وطبعاً عند وصول قيمة X لـ 3 تنتهي الحلقة التكرارية لأن نهاية الحلقة هو الرقم 3 أتمنى أن يكون الشرح واضح ومفيد للجميع مع تحياتي أخوكم ياسر خليل أبو البراء
    4 points
  3. أخي الكريم علي لطفي بعد إذن أخي الحبيب الغالي خالد الرشيدي قم بتحديد الخلية A1 ومن التبويب Data ثم Data Validation اختر الأمر List لعمل قائمة ثم اكتب Male,Female ثم قم بعمل كليك يمين على اسم ورقة العمل واختر الأمر View Code وضع الكود التالي .. Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.CountLarge > 1 Then Exit Sub If Target.Address = "$A$1" Then If Target.Value = "Male" Then Target.Offset(, 1).Value = 1 ElseIf Target.Value = "Female" Then Target.Offset(, 1).Value = 2 End If End If End Sub قم بحفظ المصنف بامتداد xlsm .. جرب تختار أحد الخيارين Male أو Female من الخلية A1 .. ستتغير قيمة الخلية B1 (الخلية المجاورة) إلى رقم 1 في حالة اختيارك للخيار Male وإلى رقم 2 في حالة اختيارك للخيار Female أرجو أن يكون المطلوب .. تقبل تحياتي
    3 points
  4. بسم الله الرحمن الرحيم اراد احد الاخوة كود لازالة بيانات من خلايا متفرقة داخل نطاق معين فخطرت ببالي هذه الفكرة وهي حذف البيانات بمعلومية لون الخليه فوضعت لكم مثال بسيط لعله يفيدكم Sub Yasser() Dim Rng As Range Application.ScreenUpdating = False For Each Rng In Range("a3:g31") If Rng.Interior.Color = Range("h1").Interior.Color Then Rng.ClearContents End If Next Rng Application.ScreenUpdating = True End Sub مع تحياتي ياسر العربي مسح بيانات بمعلومية اللون.rar
    2 points
  5. أخي الكريم جمال الدين يرجى تغيير اسم الظهور للغة العربية فضلاً لا أمراً جرب الكود التالي لحذف كل أوراق العمل ما عدا الورقة الأولى (حركة الحسابات) والورقة الثانية (Statement) Sub DeleteAllSheetsExceptTwo() Dim Sh As Worksheet Application.DisplayAlerts = False For Each Sh In ThisWorkbook.Sheets If Sh.Name <> Sheet1.Name And Sh.Name <> Sheet2.Name Then Sh.Delete End If Next Sh Application.DisplayAlerts = True End Sub تقبل تحياتي
    2 points
  6. أخي الحبيب رجب جاويش وهذا الكود هدية مني Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = [B4].Address Then Application.EnableEvents = False Dim vSheet For Each vSheet In Array("Sheet1", "Sheet2", "Sheet3") Sheets(vSheet).Range("B4").Value2 = Target.Value Next vSheet Application.EnableEvents = True End If End Sub تقبل تحياتي
    2 points
  7. أخي الكريم ابراهيم الديب يرجى ضبط اسم الظهور الخاص بك حيث أن اسم ابراهيم ملتصق بالديب ..فمش عايزين الديب ياكل ابراهيم جرب الكود التالي ...يوضع في حدث ورقة العمل التي تحتوي على الارتباطات التشعبية لأوراق العمل الأخرى 'Steps: '[Main][Sheet1][Sheet2][Sheet3] قم بإنشاء أربعة أوراق عمل 'في ورقة العمل الرئيسية قم بعمل ارتباط تشعبي لكل أوراق العمل الأخرى '[Main] قم بإخفاء أوراق العمل كلها ما عدا ورقة العمل الرئيسية المسماة 'يوضع الكود في حدث ورقة العمل الرئيسية ويقوم الكود بإظهار الشيت الهدف '--------------------------------------------------------------------- Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) Dim strSheet As String If InStr(Target.Parent, "!") > 0 Then strSheet = Left(Target.Parent, InStr(1, Target.Parent, "!") - 1) Else strSheet = Target.Parent End If Sheets(strSheet).Visible = True Sheets(strSheet).Select End Sub Private Sub Worksheet_Activate() Dim WS As Excel.Worksheet For Each WS In ThisWorkbook.Worksheets WS.Visible = (WS.Name = Me.Name) Next End Sub تقبل تحياتي
    2 points
  8. وعليكم السلام استخدم التنسيق التالي للحقل: #,###.00 جعفر
    2 points
  9. السلام عليكم استاذى / ابو البراء .. جزاك الله خيراً .. واستأذنك استاذى فى عرض فكرة اخرى بإستخدام المعادلات بإفتراض ان مرجع القائمه المنسدلة هى الخلايا A3:A5 وان خليه القائمه هى E3 يتم وضع المعادلة التاليه فى الخليه المراد بها الرقم =SUMPRODUCT(--(E3=A3:A5);ROW(A3:A5)-2) Book1ffff.rar
    2 points
  10. اخواني الاكارم البرنامج التالي يخص محلات بيع النظارات و اطباء العينية و هو مأجور و ليس مجاني الأجرة ( دعوة صالحة لي و لمعلمي ( أبو آدم )) :rol: اترككم مع المرفق و انا بانتظار الردود ( في حال وجود خطأ لا سمح الله ) -------------------------------------------------------------------------------------------------------------------------- اعتذر لجميع الاخوة يرجى اضافة المرفق التالي مع المرفق الأول وهو وحدة نمطية لمنع التحرك بين السجلات عن طريق دولاب الفارة فقط استخرج المف المرفق وضعه في فولدر البرنامج MyCustomerData.rar std.rar
    1 point
  11. السلام عليكم احبابي في الله بالله عليكم اللي يعرف كيف اعمل حجم معين للمرفق بحيث لا يتعداه يعرفني لان القاعدة اللي عاملها فيها مرفقات وللاسف اللي شغال عليها بيسحب الصور بطريقة عشوائية فتكون كبيرة وبيتقل حجم القاعدة وبالتالي الحجم بيزيد بطريقة غير عادية انا لقيت كود بس مش عارف احطه فين خاص بتحجيم المرفق
    1 point
  12. أخي الكريم برجاء تغيير اسم الظهور للغة العربية فضلاً لا أمراً يرجى الإطلاع على موضوع التوجيهات في الموضوعات المثبتة في المنتدى لمعرفة كيفية التعامل مع المنتدى بشكل أفضل ضع عنوان مناسب لمضمون الموضوع وليس عنوان عشوائي ليسهل على الباحث فيما بعد الوصول لمبتغاه بسهولة تقبل تحياتي
    1 point
  13. لو يتابع المتابع تعليقاتك ودروسك لأصبح عضو في اتحاد مطوري لغات البرمجة جزاك ربنا من خيراته واسبغ عليك من نعماته درس جميل وسهل وميسور لا تحرمنا من جمايلك كما يقول احد المتوترين "المغردين في تويتر" افضل الصدقة ان تتعلم علما ثم تعلمه لأخيك
    1 point
  14. السلام عليكم المعادلة دى عرفنا عليها الأخ ياسر أبو البراء جزاه الله خيرا وفى مشاركتك السابقة ونفذتها على الملف عندك عسى أن يكون المطلوب Copy of Xl0000128.rar
    1 point
  15. ابدا مافي مشكلة ولا اشكال جعفر
    1 point
  16. اذا انت مرتاح من "شكل" التنسيق ، فتوكل على الله لأن التنسيق هو عبارة عن: إعطاء شكل النتيجة ، بالطريقة التي نريدها ولأن التنسيق "شكل" فقط ، لهذا السبب ، وعند التعامل مع بيانات هذا الحقل ، لا نهتم بالتنسيق يعني في الاستعلام لما تريد ان تعمل تصفية للحقل aaaa اعلاه ، فتكتب الرقم 12345 مثلا (بدون تنسيق) ، ولا تكتب .12,345$ جعفر
    1 point
  17. وعليكم السلام ورحمة الله وبركاته أخي الكريم سيف الدين أبو باسم جرب الملف المرفق (تم تعديل المعادلات في الفئة أ) رغم أنني ما زلت لم أفهم المطلوب بشكل واضح .. جرب المرفق وأخبرنا بالنتيجة : هل ضبطت معك أم لا؟ برنامج توزيع مبلغ بنسب.rar
    1 point
  18. هذا لازم تستخدم معادلة علشانه ، في الاستعلام مثلا: IIf([Selling] - Int([Selling])=0,Format([Selling],"#,###",Format([Selling],"#,###.##")) جعفر
    1 point
  19. مشكور أخي العزيز نايف على مرورك العطر وكلماتك الطيبة ربنا ييسر الأمور إن شاء الله .. سنحاول أن نعطي فرصة للأعضاء لدراسة جزء جزء .. حتى يتم هضم الموضوع بشكل جيد ... تقبل تحياتي
    1 point
  20. ملفين رائعين المنتدي صراحة كلة خبرات وعقول فولازية الله يجعلة في ميزان حسناتكم يا رب تسلم اديكو
    1 point
  21. أخي الحبيب ياسر العربي بارك الله فيك وجزاكم الله خيراً على الموضوع المتميز ...والفكرة الجميلة تسلم الأيادي تقبل تحياتي
    1 point
  22. السلام عليكم ورجمة الله وبركاته اعضاء اوفيسنا هل هناك كود يمنع تكرار سجلين بنفس الاسم بمعنى لدي حقل باسم ( رقم ملف ) وحقل ثاني باسم ( التخصص ) لا ارغب ان يتكرر رقم الملف بنفس التخصص التي سبق سجل به هل هناك امكانية بحل هذا Database4.zip وشكراً لكم
    1 point
  23. أخي الغالي رجب جاويش أنتم من علمتمونا الإبداع ..فإذا كنت قمراً فأنت النجم في سماء المنتدى (القمر غير منير بذاته إنما يعكس أشعة الشمس ..بينما النجم مضيئ بذاته) بارك الله فيك وجزاك الله كل خير ... تقبل وافر تقديري واحترامي
    1 point
  24. أخى الحبيب / ياسر خليل جزاك الله خيرا على هذا الموضوع القيم سر على بركة الله ونحن جميعا فى انتظار المزيد لنتعلم من ابداعاتكم تقبل تحياتى وتقديرى
    1 point
  25. أخي الحبيب صلاح أنت صاحب فكرة الدورة الجديدة الخاصة بالمصفوفات ..رأيت أن أبدأ من جديد في هذا الموضوع نظراً لأهميته فبارك الله فيك يا ملهم .. تقبل تحياتي
    1 point
  26. اخى الكريم ماذا تقصد من سؤالك ،، وماذا تعنى جملة (( لأننى لا أجد أى تغيير )) على ما اعتقد انكم طلبتم ترقيم تلقائى داخل الفورم ومرفق صورة توضح ذلك وقد اضفت كود داخل الفورم وهو Private Sub UserForm_Activate() Lr = Sheets("المبيعات").Cells(Rows.Count, 5).End(xlUp).Row Me.Code_Fatora = Application.WorksheetFunction.Max(Sheets("المبيعات").Range("B6:B" & Lr)) + 1 End Sub
    1 point
  27. أخي الحبيب محمود الشريف أخي الغالي محي الدين أبو البشر أخي الفاضل صلاح المصري أخي العزيز عبد العزيز البسكري أخي المتميز زيزو العجوز أخي المحبب لقلبي خالد الرشيدي صاحب الأعمال الخفية بارك الله فيكم جميعاً وجزيتم خيراً على تسجيعكم الدائم لي .. لا تعرفون مدى سعادتي بتشجيعكم لي وبتقديركم المميز لي رغم أن ما قدمته بسيط جداً مقارنةً بما تقدمونه جمعني الله وإياكم في مستقر رحمته يوم القيمة إنه ولي ذلك والقادر عليه إن شاء الله بالنسبة للحلقات الجديدةسوف يتم إدراجها في مشاركة في ترتيبها بشكل عادي وفي النهاية يمكن تجميع المشاركات كلها في موضوع واحد مستقل .. بارك الله فيكم وجزيتم خير الجزاء ، ودمتم على طاعة الله تقبلوا تحياتي
    1 point
  28. اخى الحبيب السلام عليكم ورحمة الله ايقونة المنتدى وزهرتها الباسقة موضوعاتك عبارة عن مجموعة من الكنوز هنيئا لمن يعرفها حقيقة لا اجد تعبيرات مناسبة كى اصف بها اعجابى ولن اقول سوى بارك الله فيك
    1 point
  29. السّلام عليكم و رحمة الله و بركاته ألف شكر أخي الغالي و استاذي القدير " ياسر خليل أبو البراء " بارك الله فيك جزاك الله خيرًا و زادها بموازين حسناتك " إنَّ الله يحبّ إذا عمل أحدكم عملاً أنْ يتقنَه " و الحمد لله ..مواضيعك و أعمالك و تدخّلاتك و شروحاتك و حلولك كلّها باسم الله ما شاء الله أكثر من متقنة وفّقك الله لما يحبّه و يرضاه و نفع بك الاسلام و المسلمين موضوع شيّق يستحق المتابعة .. مميّز و ممتاز كعادة مواضيعك فائق إحتراماتي
    1 point
  30. اخى الكريم افضل ان تصمم النموذج وتعطى مثال عملى لكى تصل المعلومة بشكل اوضح وتقبل منى وافر الاحترام والتقدير
    1 point
  31. السلام عليكم ورحمة من لدنه وبركات بارك الله بجودك وجعله في ميزان حسناتك وسر الله خاطرك جزاك الله كل خير تقبل تحياتي هذه المرة قبلي
    1 point
  32. اليكم اخى الكريم بالمرفقات محاولة منى بالمعادلات على حسب فهمى للطلب وتقبل منى وافر الاحترام والتقدير استدعاء بيانات1.rar
    1 point
  33. أخى الحبيب و أستاذى القدير // ياسر خليل مبدع كعادتكم ، تسلم ايدك يا كبير أساسيات فى غاية الروعة والدقة بارك الله فيكم وزادكم الله من فضله ومن علمه وأسأل رب العرش العظيم أن يعينكم على تكملة هذه النوعيات من الدروس التى تمثل اساسيات لا غنى عنها فى هذا المجال وجزاكم الله خير الخير وتقبل منى وافر الاحترام والتقدير
    1 point
  34. السلام عليكم هناك طريقه غادرناه مع النسخه 2003 تسمى النسخ المتماثل فاذا انت تستخدم النسخه 2003 تنفع معاك وسوف اجد لك شرحها ان شاء الله (شرح طيبة الذكر --- زهره العبدالله ----ام عهود) لان نستخدم نسخة 2013 بالتوفيق السلام عليكم للامانه العلميه هذا الشرح لطيبة الذكر الاستاذه زهره العبدالله ام عهود جزاها الله عنا خير ما هي الفائدة من اجراء عمل النسخ المتماثل لقواعد البيانات ؟ الفائدة او الغرض من ذلك انه لو كان لديك عدة مستخدمين يعملون على عدة اجهزة سواء على الشبكه المحلية او في مناطق متفرقه مثلا فروع منتشره في ارجاء الدوله ولا تستطيع الوصول لهذه الفروع فكل ما عليك هو عمل نسخة " تصميم رئيسي " ومن ثم عمل نسخ متماثله حتى لو كانت مليون نسخة متماثله فلا يوجد مشكله في ذلك وتوزيعها على كافة الفروع المنتشره سواء بالبريد او بأي وسيله المهم ان تصل للفروع او الاشخاص العاملين . بعد فترة من الزمن سواء كانت يومية او اسبوعية او شهريه يتم استعلام ( نسخه من ) النسخ المتماثله من جميع الفروع وسواء ارسلوها بالبريد او بأي طريقه المهم ان تصل الى الفرع الرئيسي الذي به القاعدة الأساسية " التصميم الرئيسي " وهنا يتم استخلاص البيانات من النسخ المتماثله واحدة بعد الاخرى وذلك عن طريق مزامنتها مع النسخه الرئيسية " التصميم الرئيسي " وبهذا يتم تحديث القاعدة الرئيسية بأحدث البيانات بشكل دوري . كيف نقوم بإنشاء النسخ المتماثل ؟ 1. نقوم بإنشاء مجلد جديد على محرك الأقراص C وليكن مثلا اسمه MyDataBase ونضع به قاعدة البيانات الخاصة بنا وليكن اسمها مثلا zaDataBase 2. نقوم بفتح قاعد البيانات المطلوبه ثم نتأكد من عدم وجود اخطاء بها وخاصة في الأكواد . 3. نستخدم خيار الضغط والإصلاح لقواعد البيانات ( قوائم الأكسيس - ادوات - ادوات مساعدة لقواعد البيانات - ضغط واصلاح ) 4. اذا كانت قاعدة البيانات عليها رقم سري يتم ازالته . 5. نقوم بفتح قاعدة البيانات المطلوبه ثم نذهب الى قوائم الاكسيس ونختار ادوات ثم نسخة متماثلة ثم انشاء نسخة متماثلة ستظهر لنا رسالة تنبيه انه يجب اغلاق القاعدة الحالية لأنه سيتم تحويلها الى نسخة " تصميم رئيسي " نضغط على نعم سيتم البدء بالمعالجة واثناء ذلك ستظهر لك رسالة تفيدك ان قاعدة بيانتك ستتحول الى نسخة " تصميم رئيسي " وهذا الأختيار مهم جدا وسيقوم المعالج بتحويل قاعدة بياناتك الى نسخة احتياطية تنتهي بالإمتداد bak - ( للرجوع لها فيما لو احتجتها وذلك عن طريق تحويل الإمتداد فقط من bak الى mdb ولكن تضعها في مجلد مختلف ) - وفي الرسالة يظهر لك موقع القاعدة التي سيتم تحويلها الى نسخة احتياطية فكل ما عليك هو الضغط على زر نعم ستظهر لك نافذة تخبرك بموقع النسخة المثماثلة ولكن قبل الضغط على موافق عليك التأكد من موقع النسخة انها على نفس المسار السابق وايضا نقوم بإختيار علامة الصح في خانة الاختيار ( منع الحذف ) - هذه الميزه مفيدة جدا حتى لا يقوم المستخدمين بحذف الكائنات من النسخة المتماثلة سواء كانت مربعات النص او التعديل او التبديل في واجهة البرنامج وكل ما عليهم هو الاضافة او التعديل او حذف البيانات فقط وعند عملية تزامن النسخة المتماثلة مع التصميم الرئيسي فإنه فقط يتم جلب البيانات الجديده من جداول النسخة المثماثله الى التصميم الرئيسي ( فقط النسخة الرئيسية " التصميم الرئيسي هو الذي يمكن التعديل فيه ونشره الى باقي النسخ المتماثله ). بالنسبة للحفظ بنوع فسيكون عام حتى يمكن الإضافة والتعديل ولكن ليس الحذف اما بخصوص الأولوية فيتم تحديدها على افتراضي ( وهي موضوعة اصلا على ذلك ) نقوم الآن بالضغط على موافق وستظهر لنا رسالة اخيره تخبرنا ان برنامج الأكسيس قام بعمل نسخ متماثل لهذه القاعدة على نفس المسار في المجلد ويمكن لنسخة التصميم الرئيسي فقط قبول التغييرات التي حدثت في النسخ المتماثلة نقوم الان بالضغط على موافق لإنهاء المعالج بعد ان ينتهي المعالج من عمل النسخة المتماثله فنقوم بفتحها وسنجدها شبيهة تماما بنسخة التصميم الرئيسي ما عدى بعض الاختلافات من حيث رموز الكائنات لاحظ كيف يكون الاختلاف عن قاعدة البيانات العادية فقد تم اضافة ما يشبه الدائرة الصفراء وبها سهمين ( احمر و ازرق ) متعاكسين وهذا ينطبق على كل كائنات النسخ المتماثلة . نريد الان ان نقوم بتعديل تصميم قاعدة النسخة المتماثلة لهذا نعرض النموذج او التقرير او الجدول او الاستعلام او اي كائن في وضع التصميم لكي نقوم بحذف او تعديل او اضافة اي شيء عليها في هذه الحالة ستظهر لنا رسالة وتخبرنا انه لا يمكن اجراء اي تعديل او حذف على هذه الكائنات وانما هي للقراءة فقط وهذا يعتبر نوعا من انواع الحماية للقاعدة . نستطيع الان انشاء عدد لا متناهي من النسخ المتماثلة واعطاء كل نسخة رقم معين من خلال اختيار نسخة " التصميم الرئيسي " ومن ثم توزيعها على الأجهزة . بعد توزيع النسخ المتماثله على الاجهزه طبعا سيتم فتحها والبدء بإضافة البيانات فيها وبعد الانتهاء من اضافة البيانات سيتم نسخ النسخ المتماثلة من الاجهزة كل حسب رقمها المعطى لها ثم وضعها في نفس مجلد نسخة " التصميم الرئيسي " الان نقوم بفتح نسخة " التصميم الرئيسي " ومن ثم التوجه الى ادوات ثم نسخة متماثله ثم التزامن الآن لجلب البيانات الجديده الى نسخة " التصميم الرئيسي " نتابع ستظهر لنا رسالة بضرورة اغلاق كافة الكائنات المزامنه فنختار " نعم " سيقوم المعالج فورا بإختيار اول نسخة متماثلة موجوده في المجلد اذا لم نرغب ان يتم التزامن مع هذه النسخة نختار نسخة ثانية من خلال استعراض ثم نختار النسخة المطلوبه ستظهر لنا رسالة جديده تبلغنا بضرورة اغلاق قاعدة البيانات للنسخة المتماثلة المطلوب مزامنتها نضغط موافق واخيرا ستظهر لنا رسالة بنجاح العملية واتمام المزامنه حيث تم جلب جميع البيانات من النسخة المتماثلة الى قاعدة " التصميم الرئيسي " استكشاف أخطاء النسخ المتماثل وإصلاحها لا يمكنني العثور علي التصميم الرئيسي ؟ من المحتمل أنه قد تم نقل التصميم الرئيسي من موقعه الأصلي أو أنه قد تم إتلافه . للعثور على الموقع الجديد: افتح نسخة متماثلة في مجموعة نسخ متماثل . في القائمة أدوات، قم بالإشارة إلى نسخة متماثلة، ثم انقر فوق تزامن الآن. انقر فوق استعراض لتحديد موقع أعضاء آخرين لمجموعة النسخ المتماثل على الجهاز الخاص بك أو شبكة الاتصال. حدد عضو لمجموعة النسخ المتماثل. في حالة ظهور خانة الاختيار جعل 'اسم الملف' التصميم الرئيسي ، سيصبح العضو الذي تتزامن معه هو التصميم الرئيسي . لا يمكنني فتح التصميم الرئيسي ؟ من المحتمل أن التصميم الرئيسي قد تم إتلافه . قم بعمل نسخة متماثلة للتصميم الرئيسي الجديد . تأكد من عدم استخدام النسخة المتماثلة أو التصميم الرئيسي الحالي في أي مكان آخر . افتح النسخة المتماثلة الذي تريد جعلها التصميم الرئيسي الجديد . في القائمة أدوات، قم بالإشارة إلى نسخة متماثلة، ثم انقر فوق تزامن الآن. حدد التصميم الرئيسي الجديد كعضو للتزامن معه. تحقق من خانة الاختيار جعل 'اسم الملف' التصميم الرئيسي . أريد استرداد التصميم الرئيسي ؟ يمكنك استرداد التصميم الرئيسي في حالة فقدان الملف أو إتلافه أو نقله . بالرغم من ذلك ، لا يعد هذا الخيار متاحاً إذا كانت النسخة المتماثلة المفتوحة حالياً هي نسخة متماثلة جزئية . تأكد أنه لا يوجد تصميم رئيسي في مجموعة النسخة المتماثلة . افتح النسخة المتماثلة حيث تريد إنشاء التصميم الرئيسي الجديد . في القائمة أدوات، قم بالإشارة إلى نسخة متماثلة، ثم انقر فوق تزامن الآن. انقر فوق نسخة متماثلة في القائمة, ثم انقر فوق موافق. كرر الخطوات من 2 إلى 4 حسب الضرورة لتزامن مع كل نسخة متماثلة متبقية في مجموعة النسخ المتماثل . هام تـأكد من التزامن مع كافة النسخ المتماثلة الأخرى في مجموعة النسخ المتماثل . في القائمة أدوات، قم بالإشارة إلى نسخة متماثلة، ثم انقر فوق تزامن الآن. انقر فوق نعم. لا يمكنني إنشاء النسخة المتماثلة للتصميم الرئيسي ؟ قد يتم استخدام النسخة المتماثلة بواسطة عملية أو تطبيق آخر ولا يمكن فتحها للاستخدام الخاص. انتظر عدة دقائق، وحاول مرة أخرى. إذا كنت مازلت غير قادر على جعل النسخة المتماثلة هي التصميم الرئيسي ولم تتلق أية رسالة خطأ أخرى فمن المحتمل أنه قد يكون تم إتلاف النسخة المتماثلة . قم بحذف النسخة المتماثلة وإنشاء نسخة جديدة . يوجد تصميمين رئيسيين في مجموعة النسخ المتماثلة ؟ يمنع وجود أكثر من تصميم رئيسي واحد في مجموعة النسخ المتماثل أعضاء المجموعة من التزامن بشكل صحيح . إذا حدث ذلك، قم بما يلي: تحديد أي التصميمات الرئيسية التي ستقوم بالاحتفاظ بها لكي تكون التصميم الرئيسي . حذف التصميم الرئيسي الذي لا يجب أن يتواجد . حذف كافة النسخ المتماثلة التي تحتوي على أحدث مزامنة مع التصميم الرئيسي المحذوف أو مع نسخ متماثلة أخرى تحتوي على أحدث مزامنة مع التصميم الرئيسي المحذوف . تنبيه لا تقم بحذف التصميم الرئيسي لـ مجموعة النسخ المتماثل ما لم يعد التصميم الرئيسي يعمل بشكل صحيح . يمنعك حذف التصميم الرئيسي من تغيير التصميم لقاعدة البيانات . إنها فكرة جيدة للتحقق من النسخة المتماثلة للتعارضات الموجودة. والا، قد يتم فقد السجل لأي تعارضات موجودة عندما تقوم بحذف (أو نقل) النسخة المتماثلة. في مستكشف Microsoft Windows، حدد النسخة المتماثلة التي تريد حذفها. انقر فوق النسخة المتماثلة التي تريد حذفها، ثم اضغط المفتاح DELETE. من خلال نسخة آخرى في مجموعة النسخ المتماثل، حاول تنفيذ التزامن مع نسخه متماثله محذوفه . ( ينشر هذا الإجراء الحذف للنسخ المتماثلة الأخرى ) . قم بإنشاء نسخ متماثلة جديدة من التصميم الرئيسي المتبقي لاستبدال النسخة المتماثلة أو النسخ المتماثلة التي قمت بحذفها. عندما أقوم بتغيير بيانات في نسخة متماثلة من مجموعة النسخة المتماثلة، لا يقوم بالتغيير في نسخة متماثلة أخرى؟ افتح اي نسخة متماثلة من مجموعة النسخ المتماثل التي تريد مزامنتها في القائمة أدوات، قم بالإشارة إلى نسخة متماثلة، ثم انقر فوق تزامن الآن. ادخل المسار واسم الملف لقاعدة بيانات لها نسخ متماثل التي تريد لقاعدة البيانات المفتوحة مزامنتها. انقر فوق موافق. اغلق قاعدة البيانات لعرض السجلات المحدثة وأعد فتحها. إذا لم تظهر البيانات، قد تكون قمت بتغيير البيانات في نسخة متماثلة محلية التي لا تكون متزامنة مع مجموعة النسخ المتماثل أو قد يكون قد حدث تعارض مع نسخة متماثلة اخرى . عند قيامي بتغيير تصميم كائن في التصميم الرئيسي، لا يظهر التغيير في أي نسخة متماثلة؟ افتح التصميم الرئيسي في القائمة أدوات، قم بالإشارة إلى نسخة متماثلة، ثم انقر فوق تزامن الآن. أريد استخدام برنامج مختلف لحل تعارضات التزامن؟ افتح التصميم الرئيسي لـ مجموعة النسخ المتماثل في القائمة "ملف"، انقر فوق "خصائص قاعدة البيانات". انقر فوق علامة التبويب "مخصص". في المربع اسم، اكتب دالة تعارضات النسخ المتماثل ReplicationConflictFunction. في المربع "نوع"، انقر فوق "نص". في المربع "قيمة"، اكتب اسم دالة المخصصة متبوعة بـ ( ). على سبيل المثال، إذا كان اسم الدالة المخصصة هو MyResolver، اكتب ( )MyResolver. لا أريد إجراء نسخ متماثل للنماذج أو التقارير أو وحدات الماكرو أو الوحدات النمطية عندما أقوم بنسخ متماثل لقاعدة البيانات؟ ملاحظة يجب إجراء هذه العملية قبل حدوث نسخ متماثل لقاعدة البيانات لهذا اتبع الآتي . في القائمة "ملف"، انقر فوق "خصائص قاعدة البيانات". انقر فوق علامة التبويب "مخصص". حدد الخاصية نسخ_تماثل_للمشروع في المربع خصائص . انقر فوق "لا"بجانب "القيمة". انقر فوق "تعديل". وهذه هي نسخة " التصميم الرئيسي " ومعه نسختين متماثلتين قم بالتجربه عليها وادخل بيانات جديده في النسخ المتماثله ثم قم بعملية المزامنه وجلب البيانات لقاعدة " التصميم الرئيسي " قاعدة " التصميم الرئيسي " هي zaSearch&AutoFillRecord.mdb قاعدة " النسخة المتماثلة رقم 1 هي 1zaSearch&AutoFillRecord.mdb قاعدة " النسخة المتماثلة رقم 2 هي 2zaSearch&AutoFillRecord.mdb وستجدهم في المجلد MyDataBase MyDataBase.rar اسأل الله العلي القدير ان ينفعنا واياكم بما علمنا إنه على كل شيء قدير ختاما لكم مني كل الشكر والتقدير
    1 point
  35. أخي الحبيب صلاح أفضل دائماً في عملية التعلم التدرج في المعلومة ... حاول أن تتدرج في التدرب على الموضوع ثم بإذن الله ستجد كل شيء سهل ويسير .... تقبل تحياتي
    1 point
  36. بسم الله ما شاء الله عليك أخي الغالي رمهان متمكن ... ورائع ما تسيبك من الأكسس وخليك معانا في الإكسيل ..!!
    1 point
  37. أخى الفاضل تسلم ايديك وجزاك الله خيرا
    1 point
  38. يا سلام على التواضع بجد أجمل تحياتى وتحيات بلشاى كلها
    1 point
  39. السلام عليكم أخى الحبيب ياسر أحسنت أخى الحبيب فكرتك أفضل بكتييييييييييير جدا طبعا تسلم ايديك
    1 point
  40. تفضل Private Sub SalNAme_Click() x = CurrentRecord Me.Parent.Form.RecordsetClone.FindFirst "[SalID]=" & Me.SalID Me.Parent.Form.Bookmark = Me.Parent.Form.RecordsetClone.Bookmark DoCmd.GoToRecord , , acGoTo, x End Sub تحياتي
    1 point
  41. السلام عليكم ورحمة الله وبركاته اليكم الملف بعد تعديل بسيط عليه فى تقرير كشف حساب تحليلى . وارجو العمل على اصدار 2010 لتفادى قصور الاصدارات السابقه لحين اصدار ملف جديد سيكون ان شاء الله بصيغة 2003 تقبلو خالص تحياتى ملف المقاولات الاصدار الاول تجريبى.rar
    1 point
  42. السلام عليكم تم تجميع كل الأوراق في ملف واحد وتحويله إلى النظام الثنائي أرجو أن يكون هذا هو ما تريده تفضل الشامل.rar
    1 point
  43. السلام عليكم ورحمة الله أخي الكريم محمود، والله جميل جدا وهذا ما يقال فيه "التلميذ الذي فاق معلمه" وقد وضعت في الملف أمورا لا أعرفها وصرت أتعلم منها... الشيء الوحيد الذي أبدي فيه ملاحظتي هو عملية الانتقال من ورقة إلى ورقة أخرى يُحبّذ أن يكون الانتقال بمجرد الاختيار من القائمة المنسدلة وليس أن يكون بعد الاختيار من هذه القائمة ثم النقر على خلية "الانتقال إلى"... أعجبتني كثيرا فكرة فتح الورقة المختارة في خاصية "الانتقال إلى" وإخفاء الأوراق الأخرى... وفي مجمل العمل المقدم هو عمل متقن فزادك الله علما على علم وجعل ذلك في ميزان حسناتك وبارك الله فيك... أخوك بن علية
    1 point
  44. 1 point
  45. أحبابي وإخواني الأعزاء لقد افتقدتكم جميعاً ويعلم الله لم يمنعني عنكم إلا الظروف الشديدة والحمد لله على كل حال . هذه هدية متواضعة لكم أحبابي . هام جداً : أرجو قبل التعامل مع الملف ضرورة الاطلاع على ورقة شرح الملف والتي أسميتها " HELP" ويمكن الانتقال إليها وسائر الأوراق من مفتاح " الانتقال إلى " والموجود بكل الأوراق ، وأرجو أن تكون الفكرة فيها ولو بعض الفائدة . وتقبلوا حبي وتقديري أبو عبدالله _________________________________.rar
    1 point
  46. الاخ الفاضل نظرا لضيق الوقت ... والى حين ايجاد حل مناسب شاهد هذا الملف الرائع من اعمال استاذنا الكبير " يحيى حسين " عسى ان تنتفع به وفقك الله كشف حساب بتاريخين ورصيد اولي.rar
    1 point
  47. الشكر الجزيل لك أخي العزيز لتلبية طلبنا نعم أخي العزيز ستعمل مع أكثر من مدرسة ولكن الفورم الذي نسجل به البيانات لا يحفظ البيان ومطلوب تقرير بكود الطالب يعطينا أيان غيابه وتواريح كل منها
    1 point
×
×
  • اضف...

Important Information