بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 12/25/15 in all areas
-
السلام عليكم ورحمة الله أخي الكريم، هذه محاولة بالمعادلات ومعية أعمدة إضافية مساعدة... الملف جلبته من موضوعك الثاني المكرر وأعتقد أنه قد تم حذفه... بن علية العشرة الاوائل بكود.rar3 points
-
بغد اذن اخي و صديقي بن علية حل اخر زيادة في اثراء الموضوع انظر الى الورقة Sheet2 العشرة الاوائل بكود salim.rar2 points
-
أبي الحبيب أبو يوسف بارك الله فيك ..شكلك فنان تشكيلي (تشكيلي غير تشكي لي .. !!) مجهود رائع وتنسيق جميل .. ولكن انتبه كثرة التنسيقات في الملف من شأنها أن تجعل الملف كبير الحجم وثقيل في التعامل ، فلا تكثر منها تقبل وافر حبي وتقديري2 points
-
السلام عليكم ورحمة الله ولإثراء الموضوع هذا كود من إبداعي ودن الرجوع لاي مصدر كود صغير جدا خفيف وسهل من 7 كلمات Dim MySh MySh = "KHMB" Sheets(MySh).Select يتم وضعة في حدث النقر علي زر الامر مرفق المثال KHMB الذهاب الي الشيت المحدد من الفورم.rar2 points
-
أخي الكريم أبو حمادة قم بوضع الكود التالي في موديول عادي Sub ShowForm() UserForm1.Show vbModeless End Sub Sub UnhideAll() Dim Ws As Worksheet For Each Ws In ThisWorkbook.Sheets Ws.Visible = xlSheetVisible Next Ws End Sub Sub HideAll() Dim Ws As Worksheet For Each Ws In ThisWorkbook.Sheets Ws.Visible = xlSheetHidden Next Ws End Sub أنشيء فورم وعليه 4 أزرار أوامر وقم بتسمية الأزرار باسم cmdClose للإغلاق الخاص بالفورم ، وزر أمر باسم cmdSheet والذي من خلاله يمكنك التعامل مع ورقة العمل المكتوب اسمها على زر الأمر فيخفي أوراق العمل الأخرى ويبقى ورقة العمل فقط ، وزر الأمر cmdRename ويقوم بتسمية زر الأمر السابق المسمى cmdSheet (يغير عنوان الزر وليس اسم الزر) ، وأخيراً زر أمر cmdUnhide لإظهار جميع أوراق العمل وإليك الكود الذي يوضع في حدث الفورم 'Author : YasserKhalil 'Released : 25 - Dec. - 2015 'Use : This UserForm Enables You To Navigate To Specific Sheet ' Depending On cmdSheet Caption & Hide Other Sheets. '-------------------------------------------------------------------- Private Sub cmdSheet_Click() Dim Str As String, Ws As Worksheet, Bln As Boolean Str = cmdSheet.Caption On Error Resume Next For Each Ws In ThisWorkbook.Sheets Ws.Visible = xlSheetVisible If Str = Ws.Name Then Bln = True Next Ws If Bln = True Then For Each Ws In ThisWorkbook.Sheets If Ws.Name = Str Then Ws.Activate Else Ws.Visible = xlSheetHidden End If Next Ws Else MsgBox "There Is No Such Worksheet Name", 64 End If On Error GoTo 0 End Sub Private Sub cmdRename_Click() Dim StrName As String On Error Resume Next StrName = InputBox("Rename Previous Command Button", "Rename Button") If StrName <> "" Then cmdSheet.Caption = StrName On Error GoTo 0 End Sub Private Sub cmdUnhide_Click() Call UnhideAll End Sub Private Sub cmdClose_Click() Unload Me End Sub أعلم أني قد زدت عن الطلب ..فعذراً لكن الموضوع استهواني قليلاً فقمت بعمل الفورم الذي تراه بحيث يلبي حاجة من في حاجة إليه تقبل تحياتي Navigate To Specific Sheet By Command Button Name YasserKhalil.rar2 points
-
الفكرة أخي الكريم السيفاني في الإعلان عن المتغيرات لا تكمن في أن يتم الأعلان عن كل متغير في سطر منفصل أو الإعلان عن كل المتغيرات في نفس السطر يمكن الإعلان عن الثلاثة متغيرات في سطر واحد ولكن يجب أن تكون كما ارفقت بالمشاركة الأولى أي يتم تحديد نوع كل متغير أما الخطأ الشائع الذي يقع فيه الكثيرون هو أن يتم الإعلان عن المتغيرات بهذا الشكل Dim c1, c2, c3 As Date هنا المتغير الثالث فقط هو الذي تم تحديد نوعه أما المتغير الأول والثاني فلم يتم تحديد نوعهما مما يترتب عليه أن يتعامل معهم المحرر أنهما من النوع Variant وليس من النوع Date أرجو أن تكون قد وصلت الفكرة2 points
-
السلام عليكم ورحمة الله بعد إذن اخونا وإستاذنا الفاضل ياسر خليل إليك الملف إن شاء الله يكون حسب طلبكم هذا مما تعلمناه من العلامة القدير الاستاذ / عبدالله احمد باغشير والذي غاب عننا ربنا يرفع عنهم وعننا وسائر بلاد المسلمين البلاء والوباء والغلاء. الإنتقال الي الصفحة بدلالة إسمها علي الزر.rar2 points
-
السلام عليكم ورحمة الله وبركاته كنت قد وضعت هذا المثال في منتدى الفريق العربي للبرمجة ، وأخي ابو الآ ما قصر وعمل نسخة منه الى هذا المنتدى (انا لم اكن من روّاد هذا المنتدى حينئذٍ) على هذا الرابط: http://www.officena.net/ib/topic/58001-منقول-هدية-برنامج-تصدير-بيانات-من-جداولاستعلامات-اكسس-الى-اكسل/ والآن ، وبعد عمل مجموعة تعديلات عليه واصبح في نسخته الخامسة ، واهمها ان البرنامج اصبح يعمل على 32بت و 64بت ، رأيت ان اضع البرنامج بين يديكم طريقة العمل هي كما في الرابط السابق (ولكن للأسف لا يمكن رؤية الصور التوضيحية هناك) ، فعليه ، سأقوم بعمل نسخة منه هنا مع الصور التوضيحية: رأيت الكثير من الاسئلة حول تصدير بيانات الاكسس الى الاكسل ، وكل سؤال يختلف عن غيره بطريقة او اخرى ، فحبيت ان اضع بين يديكم برنامج اشتغلت عليه ، واتمنى من الله سبحانه وتعالى انه يقدر يخدم الكل البرنامج سهل الاستعمال ، فكل المطلوب في الواجهة ، ولا تحتاج الذهاب للكود اولا: الواجهة: 1. تختار من مربع السرد ، جدول او استعلام ، 2. على اساس الاختيار في رقم 1 ، ستظهر لك قائمة باسماء الجداول او الاستعلامات في برنامجك ، 3. اسم ملف الاكسل المراد حفظه به ، ومجلد التخزين ، فتلقائيا يكون في نفس مجلد البرنامج ، 4. هنا تكتب اسم صفحة الاكسل التي تريدها (انظر الصورة في الاسفل) **1** تستطيع ان تصدر اي عدد من الصفحات الى اكسس (طبعا التصدير يكون باستعمال البرنامج عدة مرات ، في كل مرة تستخدم اسم صفحة جديدة) ، **2** تستطيع ان تصدر بيانات جديدة الى نفس الصفحة في اكسل (طبعا التصدير يكون باستعمال البرنامج عدة مرات ، في كل مرة تستخدم *الادخال من خانة* اسفل الخانات الموجودة في الاكسل) ، 5. تستطيع بدء تصدير البيانات الى اي خانة في اكسل مثل A2 او C5 او اي خانة اخرى ، **3** تستطيع ان تصدر بيانات جديدة الى نفس الصفحة في اكسل (طبعا التصدير يكون باستعمال البرنامج عدة مرات ، في كل مرة تستخدم *الادخال من خانة* اسفل الخانات الموجودة في الاكسل) ، 6. تستطيع ان تحفظ ملف الاكسل بالصيغ التاليه: "xls" او "xlsx" او "xlsm" او "xlsb" او "csv" او "txt" ، والصيغتين الاوليتين هما الاهم ، والصيغتين الاخيرتين بهم قيود معينة ، 7. تستطيع ان تختار المجلد الذي تريده ، مع كتابة اسم الملف المناسب لك (انظر الرقم 3 اعلاه) ، 8. تستطيع تصدير البيانات مع اسماء الحقول (في الاكسس) ، وتستطيع تصدير البيانات مع عناوين/مسميات الحقول (في الاكسس) ، نلاحظ اعلاه ، بان الجدول elemnts لا يحتوي على عناوين/مسميات الحقول بالعربي ، بينما الجدول elemnts2 يحتوي عليها ، وتستطيع تصدير البيانات فقط بدون اسماء الحقول ، 9. تستطيع ان تصدر البيانات الى ملف اكسل فيه بيانات سابقة ، وهنا تستطيع الاستفادة من الارقام 4 و 5 اعلاه ، او ان تحذف ملف الاكسل الموجود حاليا بنفس الاسم ، وتبدأ تصدير ملف جديد ، 10. بعد تصدير البيانات الى اكسل ، هل تريد إحتواء وتوسيع كل الاعمدة فيه ، حتى ترى كل البيانات بدون الحاجة الى توسيع كل عمود على حدة ، او لا تريد توسيع الاعمدة. 11. الزر الذي يقوم بعملية تصدير البيانات الى اكسل ، حسب الاختيارات اعلاه ، مع ملاحظة: يجب تعبئة الحقول داخل المربعات الحمراء ، اما بقية الحقول فإختيارية ، 12و 13. لجعل هذا البرنامج يعمل على اي من برامجكم الحاليه ، يجب تصدير النموذج frm_Export_to_Excel و الوحدة النمطية fFolder_Dialog اليها. طبعا هناك أفضلية تصدير البيانات من الاستعلام ، حيث تستطيع ان تتحطم بالبيانات المطلوب تصديرها. ملاحظات؟ اخطاء/عطل؟ إضافات؟ انا في الخدمة ، قدر المستطاع جعفر 7.Export_to_Excel_05.1.mdb.zip1 point
-
السلام عليكم ،، ارفق اليكم البرنامج يعمل الان داخل معظم الشركات التى تعمل في مجال التجارة بالكويت (المنتجات التى تشتري من الصين -ويتم بيعها بالقطعة ) والبرنامج متعرض للموضيع الاتية : - أضافة اصناف . - أضافة عملاء وموردين. - أضافة نقاط بيع. - أضافة موظفين . - العهده النثرية بشكل شامل تمام.ا ارجو ان ينال اعجباكم والذي يريد اي استفسار يرسل لي بالبريد khaled95@yahoo.com Sales_Ma...ed_Ahmed.rar] Sales_Managment_By_Khaled_Ahmed.rar1 point
-
السلام عليكم ورحمة الله وبركاته إخواني الكرام ... ارتأيت أن موضوع المصفوفات بات من الأهمية بمكان بحيث لا يجب أن ننساه لما له من أهمية كبيرة في التعامل مع الأكواد بسرعة كبيرة جداً وخصوصاً في حالة التعامل مع كم هائل من البيانات .. فقررت أن أشارككم بما تقع عليه يدي من أكواد فيما يخص المصفوفات لنتعلم ونرتقي سوياً .. سأتناول كود بسيط بالتفصيل لنعرف ما هية المصفوفات وكيفية التعامل معها بشكل جيد الكود عبارة عن عمل حلقة تكرارية لعناصر المصفوفة من أول عنصر لآخر عنصر .. وإظهار العناصر في رسالة أو وضعها في نطاق أو التعامل معها كما تريد نبدأ بالكود بالكامل ثم نتناوله بالتفصيل 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 أتمنى أن يكون الشرح واضح ومفيد للجميع مع تحياتي أخوكم ياسر خليل أبو البراء1 point
-
ما شاء الله عليك أخي رضا ، من وينك لك الوقت لكل هذه البرامج تفضل جعفر 316.students.accdb.zip1 point
-
تفضل يا سيدي هذا الكود الذي يقوم بالعمل ، انا عملته على النقر المزدوج (مرتين) على حقل الاسم: Private Sub name_DblClick(Cancel As Integer) Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC If rst!print = -1 Then rst.Edit rst!print = 0 rst.Update End If rst.MoveNext Next i Me.[print] = -1 End Sub جعفر 315.11.accdb.zip1 point
-
سلمت اناملك وحفظك الله من كل مكروه انت رائع اشكرك على حسن اخلاقك وكريم خصالك1 point
-
أخي الكريم حامد التوجيهات ليست قوانين صارمة إنما هي تسهل العمل بالمنتدى ليستفيد الجميع ويجد الباحث بغيته بسهولة بدون تعب لنفترض مثلاُ أن العنوان كما في موضوعك "كيف أتصرف في هذه المشكلات" .. ما مضمون الموضوع ؟ قد يكون الطلب هام وحيوي ومفيد للجميع ولكن عندما يغلق الموضوع لن يستفيد منه أحد سوى صاحب الموضوع فقط أما لو كان العنوان واضح مثلاً "تظليل الخلية عند تكرار اللجنة لنفس المراقب " ..عندما يبحث أحد الأعضاء عن موضوع التكرار سيكتب في البحث كلمة "تكرار" فيأتي الموضوع من ضمن نتائج البحث وقد يكون فيه الجواب الشافي والكافي لسؤاله دون أن يطرح موضوع جديد أرجو أن تكون الفكرة وصلت للجميع تقبل تحياتي1 point
-
بارك الله فيك أخي الغالي بن عليه لكم تعلمنا وما زلنا ننهل من علمك ..جزيت عنا خير الجزاء تقبل تحياتي1 point
-
أخي الكريم حامد عشان متقولش إننا مقصرين معاك إليك الملف التالي مشابه لطلبك تقريباً .. Multiple Corresponding VLOOKUP Values Across Rows YasserKhalil.rar1 point
-
تمام - 100 % بعد الغاء حماية الورقة المعادلات اصبحت واضحة وبالامكان الاضافة والتعديل جزيت خيرا1 point
-
اخي عبدالرحمن اعذرني لم افهم طلبك جيدا حيث ان مجموع المبالغ الذي ذكرتها موجودة اصلا بالورقة وكذالك فورم ادخال البيانات مفعل اذا ممكن بعض التفصيل اكثر .1 point
-
الدالة vlookup لا يمكن أن تقوم بذلك، ولكن توجد في المنتدى أمثلة ودوال أخرى منها دوال مستحدثة تقوم بما تطلبه، وبقليل من البحث تجد ضالتك... وعليك أن تعمل بنصيحة أخينا أبو البراء وتسمع الكلام بوضع ملف كمثال نقوم بالتطبيق عليه...1 point
-
أخي حامد يرجى تغيير اسم الظهور للغة العربية قلت لك ارفق ملف من الأول .. كان الموضوع انتهى من بدري لكن أعمل ايه محدش بيسمع الكلام .. ربنا يخلي محدش هو الوحيد اللي بيسمع كلامي إليك الملف المرفق لتتضح لك الصورة Test.rar1 point
-
أخي الكريم أبو يوسف إليك كود آخر أسرع في التعامل مع الملف حيث أنه يعتمد على المصفوفات Sub YasserReport() Application.ScreenUpdating = 0 Dim Arr, Xs$, Brr, Dc, Sn%, D As Object, DD As Object, TT(), SSS() Dim S As Worksheet Dim K, T, C, I As Long, J As Long Set D = CreateObject("scripting.dictionary") Set DD = CreateObject("scripting.dictionary") SSS = Array("المادة", "عدد الطلاب") Xs = ActiveSheet.Name For Each S In Sheets If S.Name <> Xs Then Arr = S.UsedRange: Dc = "" For I = 1 To UBound(Arr, 2) If Len(Arr(19, I)) = 0 Then Arr(19, I) = Arr(19, I - 1) If Len(Arr(21, I)) > 0 Then Dc = Dc & "|" & I Next Dc = Split(Dc, "|") ReDim Brr(1 To UBound(Arr) - 18, 1 To UBound(Dc)) For I = 19 To UBound(Arr) For J = 1 To UBound(Dc) Brr(I - 18, J) = Arr(I, Dc(J)) Next Next Sn = UBound(Brr, 2) - 1 For I = 3 To UBound(Brr) Step 2 For J = Sn - 2 To 1 Step -1 If Val(Brr(I, J)) Then D(Brr(I, Sn) & "|" & Brr(1, J)) = Brr(I, Sn) & "|" & Brr(1, J) & "|" & Brr(I, J) End If Next Next End If Next Debug.Print D.Count K = D.keys T = D.Items For Each C In K DD(Split(C, "|")(0)) = "" Next K = DD.keys ReDim TT(UBound(K)) With Sheets(Xs) [A1] = "اسم المدرسة" [A2].Resize(DD.Count, 1) = Application.Transpose(K) For I = 0 To UBound(K) TT(I) = Filter(T, K(I)) For J = 0 To UBound(TT(I)) Cells(I + 2, J * 2 + 2) = Split(TT(I)(J), "|")(1) Cells(I + 2, J * 2 + 3) = Split(TT(I)(J), "|")(2) Next Next I = [A1].CurrentRegion.Columns.Count For J = 2 To I Step 2 Range(Cells(1, J), Cells(1, J + 1)) = SSS Next Application.ScreenUpdating = 1 End With End Sub وإليك الملف المرفق الأخير Grab Data From Sheets Colored In Red Or White YasserKhalil V2.rar1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته أخي الحبيب ياسر العربي عطرت المكان بمرورك الطيب وكلماتك العذبة ..الله ينور علينا وعليكم آمين...فما هذا إلا من عبق رياحينكم جزاكم الله خيراً..والسلام عليكم.1 point
-
الله ينور ابو يوسف ياغالي شغل عالي وبعدين اهم حاجه في ملفاتنا اللمسه الجمالية اللي فيه هي اللي بتجذب المستخدم ليها تصميم رائع تقبل مروري المتواضع1 point
-
السلام عليكم ورحمة الله وبركاته أخي الحبيب ياسر أبو البراء مروركم شرف لي أخذت برأيكم وآخذ بنصيحتكم أما عن التنسيقات فهي ضرورة وهذا حديث شريف يرينا التكامل بين حسن المظهر وطيب المخبر: حديث ابي موسى الأشعري حين قال للنبي (لو علمت أنك تستمع لحبرته لك تحبيرا) في الرد على قول النبي حين قال:لو رأيتني وأنا أستمع لقراءتك البارحة والسلام عليكم ورحمة الله وبركاته.1 point
-
السلام عليكم ورحمة الله وبركاته إخوتي الكرام أحببت أن آخذ رأيكم بتنسيق الخلايا حيث يمكننا عرضها مثل أدوات اليوزر فورم بشكل يظهر قريباً من ثلاثي الأبعاد بارزاً أو غائراً لا تؤاخذونني ولكن محبة بكم وبمساهماتكم ...صحيح أنه ليس على مستوى أطروحاتكم ولكن أرى أنه يلزمنا لتظهر أوراقنا الإلكترونية بأبهى حلة والسلام عليكم تنسيق خلايا.rar1 point
-
وعليكم السلام ورحمة الله أبا الحسن والحسين مرورك بالموضوع شرف كبير لي .. فقد عطرته بردك بارك الله فيك وجزاك الله خيراً على دعائك الطيب1 point
-
1 point
-
اخي لا يوجد بالملف اي شئ وبعدين ملفات الxlsx لا تحوي اي اكواد ماكرو كفورمات او اكواد وغيرها حيث انها غير داعمة للماكرو تاكد من رفع الملف المطلوب1 point
-
السلام عليكم ورحمة الله أخي الكريم يحيى، هذه نسخة أخرى للملف بعد الاستغناء عن العمود AE المساعد في شيت Data والتعديل على معادلات استدعاء البيانات لكل شركة والتي أصبحت معادلات صفيف (التي ربما تثقل عمل الملف) وهذا من مساوئ معادلات الصفيف... أخوك بن علية soi_2.rar1 point
-
1 point
-
سؤال الاخ احمد كان كلمات متقاطعة ، فحاولت احلها من الكود ولما كود ADO ما وصلني مكان ، التجأت الى DAO بس ياريت تكمل الكود ، لأني اعتقد بأن الاخ أحمد عنده اسئلة لاحقه لسؤاله الاصلي ، وكودك حيكون اول خطوة للجواب التالي جعفر1 point
-
اعذرنى أستاذ احمد فقد فهمت أن الخطأ بمسار القاعدة الخارجية فقط ولم أستطع فهم الخطأ الذى كنت تعنيه أولا ولكن ما شاء الله عليك أستاذ جعفر جبتها من أول مرة1 point
-
1 point
-
أخي الكريم أبو يوسف عدد أوراق العمل كبير جداً لذا أفضل إرفاق ملف به 5 أوراق فقط للتجربة عليهم بشكل مبدئي هل تريد المخرجات تكون كلها في ورقة عمل واحدة لكل أوراق العمل الأخرى ؟؟ رجاءً ارفق شكل النتائج المتوقعة في الملف المرفق (5 أوراق عمل فقط ) لا ترفق المخرجات على شكل صورة بل أنشيء ورقة عمل جديدة وضع شكل النتائج المتوقعة ليسهل العمل على إخوانك بالمنتدى Report.rar1 point
-
الحمد لله الذي تتم الصالحات على يديه اشكرك اخي الكريم على كلماتك ودعائك الكريم.1 point
-
اخي موسى ... اذا كان قصدك انت تختار الاصناف يدويا , فعليك : 1- عمل حقل بالجدول نوع نعم / لا 2- عمل استعلام مبني على الجدول بشرط على الحقل نعم / لا و الشرط هو نعم فقط 3- عمل التقرير مبني على الاستعلام فعند فتح الجدول اختر الاصناف التي تريد ظهورها في التقرير بوضع علامة صح في حقل نعم / لا1 point
-
بارك الله فيك أخي الحبيب سليم ولا حرمنا الله من إبداعاتك المنقطعة النظير تقبل وافر تقديري واحترامي1 point
-
الله يحفظكم أتابع ردودكم وأحاول الفهم أكثر لكن مازلت لدي نفس المشكلة أريد التفسير أكثر وللعلم أنا أعمل على أكسيس 2007 بنسخة فرنسية ولكم جزيل الشكر1 point
-
السلام عليكم المسألة كانت تحدي ، وقبلت التحدي انا غيرت اسماء النموذج الرئيسي والفرعي الى اسماء frm_Search و sfrm_Search. الآن يمكنك البحث عن اي جزء من الكلمة ، واذا اردت البحث عن كلمة اخرى في السجل ، فما عليك الا ان تضع (مسافة او / او *) بين الكلمات ، فسيعتبرها البرنامج على انها كلمة اخرى يجب البحث عنها: . والكود: Option Compare Database Dim mySQL As String Dim mySQL1 As String Private Sub Form_Load() mySQL = "Select * From [المستندات]" Me.n2 = "" If Len(Me.n2 & "") = 0 Then Me.sfrm_Search.Form.RecordSource = mySQL End If End Sub Private Sub n2_Change() 'do the initial subform Record Source mySQL1 = "Select * From [المستندات]" mySQL = mySQL1 & " Where" 'now we want to split the search code into smaller bits, 'if seperate by / \ * or space, then change this seperator to | (a unique letter), 'this way we will have more than ONE word to search for Dim x() As String Dim A As String A = Me.n2.Text A = Replace(A, "/", "|") A = Replace(A, "\", "|") A = Replace(A, " ", "|") A = Replace(A, "*", "|") 'the words are split and ready x = Split(A, "|") If UBound(x) = 0 Then 'Still one word, search for it mySQL = mySQL & " [كلمات ارشادية]" mySQL = mySQL & " Like '*" & x(i) & "*'" Else 'it is ONE word and a seperate by / \ * or space, 'so lets make a Where statement for each seperate word For i = LBound(x) To UBound(x) If i = 0 Then 'its a word and a seperator, the NEXT word is NOT added yet mySQL = mySQL & " [كلمات ارشادية]" mySQL = mySQL & " Like '*" & x(i) & "*'" Else 'its multiple words, add the AND command between each word mySQL = mySQL & " AND [كلمات ارشادية]" mySQL = mySQL & " Like '*" & x(i) & "*'" End If Next i End If 'if the Search field is Empty, use the initial mySQL1 Me.n2.SetFocus If Len(Me.n2.Text & "") = 0 Then mySQL = mySQL1 End If 'Debug.Print mySQL Me.sfrm_Search.Form.RecordSource = mySQL End Sub . ملاحظة مهمة: اذا كان برنامجك على الشبكة ، فلا تضع الكود على "حدث التغيير" (معناه ، كلما اضفت/حذفت حرف ، فارجع الى الجدول وخذ البيانات منه) ، لأنه سيجعل البرنامج جدا بطئ ، وانما استخدم زر البحث. جعفر 309.Search_as_you_Type_jj.mdb.zip 309.Search_as_you_Type_jj.mdb.zip1 point
-
السلام عليكم اضغظ على زرطباعة ستختفى الصفوف التى بها اصفار في ورقة الطباعة (الكود من ابداعات الافاضل في اوفيسنا حفظهم الله جميعا) بيان الدخل.rar1 point
-
وعليكم السلام استعملت: ---------------------------------------------- 3. اعمل وحدة نمطية ، مثلا function make_shortcut() الكود يأتي هنا end function ثم اعمل ماكرو ، واطلب من الماكرو ان: شغل الكود make_shortcut شغل النموذج الفلاني ---------------------------------------------- فك المرفق في مجلد واحد ، وافتح البرنامج بطريقة عادية ، واغلق البرنامج ، سترى الاختصار على سطح المكتب ، ومن الان فصاعدا استخدمه للدخول لبرنامجك وكلما حذفت الاختصار ، سيتكون من جديد جعفر Export to Excel And Make Dektop shortcut.zip1 point
-
الأستاذ / أبو علي السلام عليكم ورحمة الله وبركاته إليك الملف لعله المطلوب . 000011.rar1 point
-
1 point
-
الأستاذ / أبو علي السلام عليكم ورحمة الله وبركاته بالنسبة للعلاوة كل سنتين 9% عندما يكون الموظف حصل على 9% سنة 2010 ثم يأخذ سنة 2011 علاوة 25% بعد ذلك يحسب له سنتين على 2010 أو 2011 وعندمل يصل راتب الموظف لسنة 2013 المفروض يكون راتبه الفعلي الان. عموماً شاهد الملف وعَقّب عليه لتكملته إن شاء الله. 000001.rar1 point
-
1-حساب راتب الموظف الحالي ااذا علمت ان الموظف يحصل على زيادة في الراتب قدرها 9% كل عامين 2- في عام 2000 حصل الموظف على زيادة اولى في الراتب مقدارها 50% من راتبهم الحالي فكم يكون الراتب 3-في عام 2011 حصل الموظف على زيادة ثابتة في الراتب مقدارها 25% من راتبهم الحالي فكم تكون 4- حساب عمر الموظفين بالسنوات 5- حساب عدد الموظفات الاناث 6- حساب مجموع رواتب الموظفين الذكور من بداية التعيين 7- التمثيل البياني لنسبة عدد الذكور الموظفين والموظفات الاناث بالنسبة للعدد الكلي للموظفين في الشركة 8- رسم الخط البيانيلرواتب للذكور والخط البيانيلرواتب للاناث والمقارنة بينهما 9- تحديد تاريخ الترفيعة المقبلة لكل الموظفين اذا علمت ان الترفيع يحصل للموظف كل عامين1 point
-
هذا مثال من عملي لشكل الماوس عند ملامسة أزرار الأوامر قد تفيد لتجميل برنامجك ليس الموضوع جديد ولكن أغلبه لم اجد له مثال من قبل ولم التحيه جميعاً __________.rar1 point
-
وعليكم السلام ورحمة الله لعمل المطلوب أتبع الخطوات الآتية : 1. قم بإنشاء وحدة نمطية وضع فيها الكود الآتي وخزنها في أي أسم تريد '---------------------------------------------------------------------' ' Module: DisableShiftKey ' ' Date: July 18, 2003 ' ' ' ' Purpose: To stop the user from holding the shift key on startup to ' ' access the database window. ' '---------------------------------------------------------------------' Option Compare Database Option Explicit '---------------------------------------------------------------------- Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer Dim dbs As Object, prp As Variant Const conPropNotFoundError = 3270 Set dbs = CurrentDb On Error GoTo Change_Err dbs.Properties(strPropName) = varPropValue ChangeProperty = True Change_Bye: Exit Function Change_Err: If Err = conPropNotFoundError Then ' Property not found. Set prp = dbs.CreateProperty(strPropName, _ varPropType, varPropValue) dbs.Properties.Append prp Resume Next Else ' Unknown error. ChangeProperty = False Resume Change_Bye End If End Function '---------------------------------------------------------------------- Function BypassKey(onoff As Boolean) Const DB_Boolean As Long = 1 ChangeProperty "AllowBypassKey", DB_Boolean, onoff End Function '----------------------------------------------------------------------- 2. قم بإنشاء ماكروات جديدة هي : اسم الماكرو الأول: ByPassKeyOff الإجراء: Runcode الإقتران: BypassKey(False) اسم الماكرو الثاني: ByPassKeyOn الإجراء: Runcode الإقتران: BypassKey(True) 3. نموذج الدخول للنظام الخاص بك قم بإنشاء مستطيل بدون إطار ولون خلفية نفس خلفية النموذج أو إذا كان عندك صورة في نموذج الدخول يمكن استخدامها مكان المستطيل وعرف حدث عند النقر وقم باختيار الماكرو ByPassKeyOn. 4. قم بتشغيل المكرو ByPassKeyOff خزن وأخرج من قاعدة البيانات. 5. الآن عندما تدخل إلى قاعدة البيانات وأنت ضاغط على Shift لن تظهر لك نافذة قاعدة البيانات . لإظهار قاعدة البيانات اضغط بالماوس حيثما وضعت المستطيل المخفي أو الصورة ثم أعد تشغيل القاعدة مع shift ستظهر ولإعادة المنع كرر الخطوة رقم 4. وتعتبر هذه إحدى طرق الحماية لقاعدة البيانات . أملا لك التوفيق في المحاولة مع وافر الاحترام1 point
-
Dear Sir, May peace and God's mercy and blessings Have found it appropriate that I thank myself, as a large number of participants in this forum have thrown the file on the allegation. But unfortunately I did not find one I had a Turkish flag was something in the file, or even participated in the voting. I thank you and appreciation For owners of the site and the participants. السلام عليكم ورحمه الله وبركاتهقد وجدت انه من الواجب ان اقوم بشكر نفسي ، حيث ان عدد كبير من المشتركين في هذا المنتدي قاموا بتحميل الملف الخاص بمشاركتي. ولكن للأسف لم اجد احد قد تركي لي ماهو رايه في الملف ، ولا حتى شارك في التصويت. ولكم جزيل الشكر والتقدير لاصحاب الموقع والمشاركين.1 point
-
هذا المثال يختبر وجود ملف فى المسار c:\officena.txt فاذا لم يجده يغلق القاعدة و يظهر رسالة و اذا وجده يقوم باظهار رسائل بالمكتوب داخل الملف و يتم اضافته فى حدث form load للنموذج الافتتاحي للبرنامج Private Sub Form_Load() On Error GoTo ERROR_SUB Open "c:\officena.txt" For Input As #1 Do While Not EOF(1) Line Input #1, xx MsgBox Trim(xx) Loop Close #1 Exit Sub ERROR_SUB: If Err.Number = 53 Then MsgBox " No Autorization - This Program Is Not Authorized ! " + Chr(13) + Chr(10) + "Do not do this Again !!", vbCritical, "Alert Message " Close #1 DoCmd.Quit End If End Sub1 point