اذهب الي المحتوي
أوفيسنا

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      6

    • Posts

      9,814


  2. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      3

    • Posts

      6,818


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

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

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


    • نقاط

      2

    • Posts

      13,165


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      2

    • Posts

      12,212


Popular Content

Showing content with the highest reputation on 01 ديس, 2016 in all areas

  1. هههههههههه يعجبنى فيك با استاذ جعفر انك بتركز دايما وعلى كل حال بفضل الله تعالى انا توصلت الى نتيجة لا بأس بها وراض عنها كل الرضى وبنسبة كبيرة انا كما يقولون فكرت خارج الصندوق انصبت كل افكارى التى يائت بالفشل على اكواد للوصول للنتيجة والفكرة خارج الصندوق هى مجرد حيلة احتالت بها على البرنامج ومش عاوز حد يتريق عليه ههههههههههههه انا تعبت المرفق كما ينبغى ان يكون بفضل الله وبدون اى مشااكل test scan_up.rar
    2 points
  2. السلام عليكم ورحمة الله وبركاته كود البحث المتقدم باستخدام المصفوفات VBA Arrays قدم لنا الأخ الغالي ياسر العربي صاحب الجولات والصولات كود رائع ، ويستخدم الكود في البحث المتقدم ، وقد استخدم المصفوفات والتي هي عشقي في التعامل مع الأكواد ، حيث يتم تنفيذ جميع أسطر الكود بالذاكرة بعيداً عن التعامل بشكل مباشر مع ورقة العمل ، مما يجعل الكود أسرع مئات المرات من استخدام الحلقات التكرارية العادية. وقد ارتأيت أن أقوم بشرح لأسطر الكود ليكون مرجع لكل طالب علم ولكل باحث في هذا الخصوص ، ولنبدأ مرحلة جديدة من عالم الأكواد باستخدام المصفوفات VBA Arrays ، لما لها من مرونة عالية وسرعة فائقة في تنفيذ الأكواد. يوجد بالمرفق ورقتي عمل أحدهما باسم Data وفيها البيانات الخام من 14 عمود ، والورقة الأخرى باسم Result للنتائج وبها الخلية G2 والتي توضع بها نص الكلمة المراد البحث عنها. وإليكم الكود مع الشرح بالتفصيل (وضعت مثال بسيط ليستطيع المتتبع للشرح فهم الكود بسهولة) Sub Araby_Search() 'تعريف المتغير لورقة العمل التي تحتوي على البيانات الخام Dim wsData As Worksheet 'تعريف المتغير لورقة العمـل المطلـوب إظهـار النتائـج بها Dim wsResult As Worksheet 'تعريف المتغير ليحمل قيم المصفـوفة للبيانات الخـام Dim Arr As Variant 'تعريف المتغير ليحمل قيم المصفوفة للنتائج المطلوبة Dim Temp As Variant 'تعريـف المتغير من النـوع النصي ليحمـل قيمة أو نص البحث 'أي الكلمة المطلوب البحث عنها يتم تخزينها في هذا المتغير Dim strSearch As String 'تعريف المتغير وسيستخدم في الحلقة التكرارية لصفوف المصفوفة Dim I As Long 'تعريف المتغير وسيستخدم في الحلقة التكرارية لأعمدة المصفوفة Dim J As Long 'تعريف المتغير وسيستخدم في مصفوفة النتائج لزيادة مقدار الصفوف بمقدار واحد Dim P As Long 'تعيين قيمة للمتغير ليساوي ورقة العمل التي تحتوي '[Data] على البيانات الخام المطلوب معالجتها والمسماة Set wsData = Worksheets("Data") 'تعيين قيمة للمتغير ليساوي ورقة العمل التي تريد إظهار '[G2] النتائج بها بمجرد إدخال قيمة أو نص محدد في الخلية Set wsResult = Worksheets("Result") 'مسح النطاق الذي توضع فيه النتائج استعداداً لوضع النتائج الجديدة wsResult.Range("A8:N10000").ClearContents '[G2] تعيين قيمة للمتغير ليساوي قيمة الخلية 'وهي الخلية التي ستوضع فيها نص الكلمة المطلوب البحث عنها strSearch = wsResult.Range("G2").Value 'تعيين قيمـة للمتغير ليحمل قيم النطاق بالكامل للبيانات الخام ' وذلك [Data] حيث أن مصـدر البيانات الخام ورقة العمل المسماة 'عند [N] وينتهي في العمود [A5] في النطاق الذي يبدأ من الخلية '[&] آخـر صف به بيانات ، ويتم تحديده عن طريـق الجزء بعد علامـة Arr = wsData.Range("A5:N" & wsData.Cells(Rows.Count, 1).End(xlUp).Row).Value 'والتي ستحمل قيم النتائج [Temp] إعادة تعيين أبعاد المصفوفة المسماة '[Arr] وتكون بنفس أبعاد المصفوفة التي تحمل البيانات الخام والمسماة 'سنعتبر المصفوفة أشبـه بالصفـوف والأعمدة حيث الرقـم 1 يمثـل الصفـوف 'بإرجاع أكبر قيمة [UBound]بينما الرقم 2 يمثل الأعمدة ، وتقوم الكلمة 'أبعاد المصفوفة في هذه الحالة >> '------------------------------- 'البعد الأول سيكون من 1 إلى أكبر قيمة للصفوف 'البعد الثاني سيكون من 1 إلى أكبر قيمة للأعمدة ReDim Temp(1 To UBound(Arr, 1), 1 To UBound(Arr, 2)) 'حلقة تكرارية من الصف الأول للمصفوفة إلى آخر صف بها For I = 1 To UBound(Arr, 1) 'إذا كان النص المطلوب البحث عنه فارغ يتم الخروج من تنفيذ الكود If strSearch = "" Then Exit Sub 'هذا السطر هو أهم سطر بالكود حيث هو الشرط الذي من خلاله 'والشرط [Temp] ستوضع النتائج في مصفوفة النتائج المسماة 'هـو تطابق قيمة المصفوفة في صف الحلقة في العمود رقم 14 'حيث يمثـل الرقم 14 العمود داخـل مصفوفة البيانات الخام '[strSearch] يتـم اختبـار التطابـق مع نـص البحث المسمى If Arr(I, 14) Like "*" & strSearch & "*" Then 'زيادة مقدار المتغير بمقدار 1 'فائدة المتغير هنا هو أنه مع كل حلقة تكرارية 'إذا تحقق الشرط فقط يزيد المتغير بمقدار واحد 'ليمثل هذا المتغير صفوف مصفوفة النتائج الجديدة P = P + 1 'حلقة تكرارية داخلية من العمود الأول للمصفوفة إلى آخر عمود بها For J = 1 To UBound(Arr, 2) 'تعبئـة مصفـوفة النتائـج بالبيانات مـن مصفوفة البيانات الخام '[Temp]مثـال لتتضح صورة كيفية تعبئة المصفوفة الجديدة المسماة 'في أول حلقـة سيكون مقداره 1 ويمثل أول صف [P] المتغيـر المسمى 'أول صف هنا لمصفوفة النتائج 'في أول حلقة سيكون مقداره 1 ويمثل أول عمود [J] المتغير المسمى 'في أول حلقة سيكون مقداره 1 ويمثل أول صف [I] المتغير المسمى 'أول صف هنا لمصفوفة البيانات الخام Temp(P, J) = Arr(I, J) 'الانتقال للحلقة التالية للأعمدة Next J 'نهاية جملة الشرط وهو تطابق نص البحث مع العمود رقم 14 في المصفوفة End If 'الانتقال للحلقة التالية في صفوف مصفوفة البيانات الخام Next I 'إذا كانت قيمة المتغير أكبر من صفر فهذا يعني أنه تم إيجاد نتائج للبحث 'حيث أن زيادة المتغير كما أوضحنا مقرونة بتحقق الشرط وطالما تحقق الشرط 'فهذا يعني أن مصفوفة النتائج سيكون بها بيانات ومن ثم يتحقق الجزء الثاني '[A8] وضع نتائج مصفوفة النتائج في أول خلية في ورقة النتائج في الخلية '[P] ويتم تمديد النطاق بمقدار عدد الصفوف طبقاً لقيمة المتغير المسمى '[Temp] وبمقدار عدد الأعمدة طبقاً لأكبر عدد لأعمدة المصفوفة المسماة If P > 0 Then wsResult.Range("A8").Resize(P, UBound(Temp, 2)).Value = Temp End Sub لتحميل الملف المرفق وللإطلاع على الموضوع الأصلي قم بزيارة الرابط التالي رابط الموضوع من هنا
    1 point
  3. اسف جدا جدا جدا اخى الكريم واعتذر حيث اننى لم انتبه لذلك واعتذر للاثقال عليكم جزاكم الله تعالى خير الجزاء حالا ابحث فى مشاركاتى عن الموضوع وادخل لاستعرض المرفق مرة اخرى اسال الله تعالى لكم الخير كله ان شاء الله اخى الفالح يا الله هذا المرفق المعقد مرة اخرى ههههههههههههههههه طيب على كل حالى اخى الفالح انتظر منى ان شاء الله تعالى فى القريب وليس ببعيد قاعدة بيانات دخول المستخدمين التحكم فى التعامل مع القاعدة بمجموعة العمل ادراج المستخدمين كل على مجموعة العمل المناسبة امكانية اضافة مجموعات العمل او تعديل اسم المجموعات او حذفها بكل سهوله ان شاء الله تعالى ستكون هذه القاعدة طفرة فى عالم الصالاحيات ودخول المستخدمين اعمل على هذا المشروع من فترة كبيرة وشارفت على الانتهاء ان شاء الله قد يكون اليوم او الغد ان شاء الله تعالى ويسر لى ربى انتهيت تقريبا من 90 % من القاعدة
    1 point
  4. وعليكم السلام اخي بدر انت الادرى بفكرتك ، وليس لدي ادنى فكرة عن خطوات العمل ، فياريت تفكر بمثال نحتذي به ، وإلا ، فالوقت سيمضي هدرا في عمل شئ لا اعرفه جعفر
    1 point
  5. تفضل حسب طلبك ولكن انتبه فقد تقع في ظلم بريء كيف ؟ يأتي شيطان من الانس وبعد تسجيل حضوره في الوقت الصحيح : يقوم بتغيير ساعة الجهاز ويذهب الذي سيأتي بعده سيقع في الشرك لذا قلت الافضل : الاكتفاء بقفل المنافذ على المتلاعب db9.rar
    1 point
  6. ههههههه بارك الله لنا فيك فعلا انا متابع معكم وفي الحقيقة انا اعشق اي شئ يخص الارشفة حيث انه تخصصي (دراسة وعمل) واهتم كثيرا بتطوير انظمة تساعد وتسهل عملية الارشفة واعمل الان علي انجاز برنامج لادارة المراسلات (البريد الوارد والصادر) شكرا جزيلا استاذ جعفر وشكرا لاخي ابوجودي
    1 point
  7. بمكنك استعمال هذه المعادلة و السحب نزولاً =SUMIFS($C$2:$C$52,$B$2:$B$52,H2)
    1 point
  8. تقضل : مجموع حسب التاريخ_v001.rar
    1 point
  9. تفضل هذا استعلام تحديث للحقل Retour: . بينما اذا كنت في نموذج فتستطيع عمل حدث بعد التحديث للحقلين Leave_Date و Dure حتى يقوموا بتحديث التاريخ: Private Sub DURE_AfterUpdate() On Error Resume Next Me.RETOUR = Me.Leave_Date + Me.DURE End Sub Private Sub Leave_Date_AfterUpdate() On Error Resume Next Me.RETOUR = Me.Leave_Date + Me.DURE End Sub . اما أخي رمهان فكان قصده: بما ان برنامجك accdb (وليس mdb) ، فيمكنك استخدام خاصية جديدة في الجدول يسمى حقل محسوب ، حيث سيقوم بحساب المطلوب دون الحلجة الى استعلام او كود ، هكذا: . جعفر 466.VACN.accdb.zip
    1 point
  10. استادنا / رمهان اهلا بك ... وعلى الرحب والسعة ملاحظتك في محلها . نحن اول من يحافظ علي قوانين المنتدي بل على قوانين الحياة والكون . حالا سوف اطرح الموضوع بمشاركة جديدة وبصيغة تتناسب مع العنوان . ارجو من استادي / ابو خليل ان يتابع معي المشاركة الجديدة والتي سوف تكون بعنوان : كيف يمكن اجبار المستخدم علي تعديل ساعة الجهاز عند التلاعب فيها كل الاحترام والتقدير لاستادنا / رمهان
    1 point
  11. الاخوة الزملاء احب ان اشكر كل الزملاء بالمنتدى على مجهودهم الذى استفدت منه وان شاء الله ساستعين فى الشرح القادم بمجهودهم مع بعض التعديلات وذلك لشرح الطرق المتعددة للفورم للاستفادة منها فورم بحث وتعديل واضافة بيانات الدرس الثامن نتعرف على ComboBox البحث برفم الجلوس Private Sub ComboBox1_Change() Set sh12 = Sheets("بيانات") Lr = sh12.[a2000].End(xlUp).Row For Each CL In sh12.Range("a5:b" & Lr) If (Val(Me.ComboBox1)) = CL Then Me.TextBox1 = CL.Offset(0, 0) Me.TextBox2 = CL.Offset(0, 1) Me.TextBox3 = CL.Offset(0, 2) Me.TextBox4 = CL.Offset(0, 3) Me.TextBox5 = CL.Offset(0, 4) Me.TextBox6 = CL.Offset(0, 5) Me.TextBox7 = CL.Offset(0, 6) Me.TextBox8 = CL.Offset(0, 7) Me.TextBox9 = CL.Offset(0, 8) Me.TextBox10 = CL.Offset(0, 9) Me.TextBox11 = CL.Offset(0, 10) End If Next End Sub البحث برقم الجلوس مع اظهار عمودين الرقم والاسماء Private Sub ComboBox2_Change() Set sh12 = Sheets("بيانات") Lr = sh12.[a2000].End(xlUp).Row For Each CL In sh12.Range("a5:c" & Lr) If (Val(Me.ComboBox2)) = CL Then Me.TextBox2 = CL.Offset(0, 1) Me.TextBox1 = CL.Offset(0, 0) Me.TextBox3 = CL.Offset(0, 2) Me.TextBox4 = CL.Offset(0, 3) Me.TextBox5 = CL.Offset(0, 4) Me.TextBox6 = CL.Offset(0, 5) Me.TextBox7 = CL.Offset(0, 6) Me.TextBox8 = CL.Offset(0, 7) Me.TextBox9 = CL.Offset(0, 8) Me.TextBox10 = CL.Offset(0, 9) Me.TextBox11 = CL.Offset(0, 10) End If Next End Sub
    1 point
  12. عجبنى جدا الامانه في ذكر مصدر البيانات اللى نقلت منه بالرغم من الاختلاف الكبير في برنامج المصدر والبرنامج بتاعك دا غير ان الناس دى تقريبا محدش يعرفهم لان واضح من تاريخ المثال 24/5/2005 تقريبا عشر سنين ونص انت فعلا حد محترم جدا وصريح وامين دا غير انى لاحظت كرم في محاولة مساعدتك وبحس انك مش بتبخل على حد بمعلوماتك بجد شكرا والف شكرا الله يبارك لوالديك على تربيتهم لك
    1 point
  13. انا اعرف ان الاستاذ محمد سلامة من مُحبي هذه المواضيع وهو متابع بشويش وعلشان خاطر اخوي محمد ، راح اسمح للبرنامج يأخذ اكثر من صورة للموظف ، بحيث انك ستشاهد الصورة الاحدث دائما ، وبقية الصور راح تكون في المجلد (واخد بالك اخوي محمد ، دي للتمويه وبس ، بس في الاصل ممكن نستغل الفكرة دي في الارشفة) جعفر
    1 point
  14. انا قلت Webcam كان قصدي Webcam ، وكاميرا DSLR مثل Nikon D500 و Canon
    1 point
  15. على راسي بس لوسمحت على بكرة الصباح وللعلم ، بالاضافة جلب الصورة ، والسكانر ، وفي احد برامجي ، انا استعملت Webcam لأخذ صور الموظف مباشرة (وان شاء الله اضيفه لبرنامجك اعلاه ايضا) مثل ما نقول: غالي والطلب رخيص جعفر
    1 point
  16. وعليكم السلام عندك طريقتين لعمل هذا: 1. طريقتي التي عملتها في معظم برامجي ، اضع نص خلف الصورة ، اكتب فيها: الصورة غير موجودة (او شئ من هذا القبيل) ، هذه الطريقة جدا خفيفة على البرنامج 2. تعمل جدول خاص ، وتضمن فيه هذه الصورة فقط (وتتأكد انها صغيرة طولا وعرضا ، حتى لا تأخذ مساحة كبيرة من برنامجك) ، ثم في النموذج الذي به صورة الموظف ، في حدث الفتح (حيث انه يقوم بتنفيذ الكود قبل جلب البيانات من الجداول) ، نقول للكود: تأكد من وجود صورة الموظف من مجلده ، اذا وُجدت ، ونستطيع استخدام الدالة Dir مثلا في هذا الخصوص . وإلا تأكد من وجود الصورة الافتراضية ، وهي صورة واحدة ، ويجب ان تكون في مجلد images_company مثلا ، وإلا فيقوم بعمل المجلدات المطلوبة ، ونسخ هذه الصورة الافتراضية من الجدول الى مجلد images_company ثم على حدث التحميل نضع هذا الكود: اعرض صورة الموظف من مجلده ، اذا وُجدت ، وإلا اعرض الصورة الافتراضية ، وهي صورة واحدة ، ويجب ان تكون في مجلد images_company مثلا جعفر
    1 point
  17. السلام عليكم بالفعل يوجد فى الوورد امكانية متابعة التغيرات باستخدام الوورد من مايكروسوفت Tracking Changes using Microsoft Word Review - Tracking من قائمة ومزيد من التفاصيل على الرابط https://academy.hsoub.com/apps/productivity/office/microsoft-word/كيفية-تعقب-التغييرات-في-مستندات-microsoft-word-r35/
    1 point
  18. فعلا اخي الكريم انا لم انتبة الي طبيعة العمل علي الملف ...... لذا استبدل المعادلة السابقة بهذة المعادلة =VLOOKUP($O$2,INDIRECT("'"&$O$1&"'!"&"A13:J100"),10,FALSE) مرتبات.rar
    1 point
  19. توكل .. جزيت خيرا وأنا أشهد بنباهتك مرفق الدرس الرسومات التفاعلية.rar وهذا ملف هدية إلى الغالين يستخدم معيارين للرسم COMPLETE_Dynamic Chart Using Option Buttons.rar وتقبلوا تحياتي
    1 point
  20. تحياتي أستاذ جلال بعد إذن الأستاذ الزباري قد يكون المثال المرفق " محاولة متواضعة" هو المطلوب Dynamic Chart.rar
    1 point
  21. أخي الغالي جلال الجمال لا تحزن ..إن فرج الله قريب .. وما علينا إلا أن نزرع أما الحصاد فبالتأكيد له أوانه .. افعل ما يجب عليك فعله فلربما يأتي اليوم الذي يحتاج إليه أناس آخرون ما نقدمه .. فيتركوا لنا دعوة بظهر الغيب .. وما أجملها من دعوة من شخص لا تعرفه في زمان لا تعرفه في وقت وأجل لا تعرفه ، ومن يدري لعلها تخفف عنا أخي الحبيب أبو حنين وجزيت خيراً بمثل ما دعوت لي ولك بمثل إن شاء الله .. والحمد لله أن نال الشرح إعجابكم ، وإن كان الشرح لا يجدي مع الأكواد التي تتعامل بالمصفوفات إذ أنه يجب الشرح بشكل مباشر دون الكتابة ، ولكن حاولت أن أضع الخطوط العريضة ليتمكن الأخوة من تعلم التعامل مع المصفوفات تقبلوا وافر تقديري واحترامي
    1 point
  22. برنامح لتسجيل كشوف 12 د إلكترونيا ... كل عام وانم بخير كشوف 12 د.rar
    1 point
  23. السلام عليكم ورحمة من لدنه وبركات اساتذتي ، موضوع التكرار مهم ولكن لدي عدة قوائم في عدة ورقات عمل كيف يمكن معرفة التكرار وحساب عدد التكرار أن وجد أحاول فيها منذ مدة ولم أصل إبى حل فهل من معين جزاكم الله كل خير؟
    1 point
  24. السلام عليكم و رحمة الله وبركاته هذي اول مشاركه لي في هذا المنتدى واتمنى تساعدوني اريد اعمل قاعدة بيانات لشركة مقاولات صغيره باستخدام برنامج الاكسس زوجي بدأ مؤخرا في عمل المقاولات عمل بسيط مبدئيا وطلب مني ان اعمل له برنامج يساعده في ادارة عمله بما ان تخصصي قواعد بيانات ولكن بسبب اني تخرجت منذ اكثر من اربع سنوات ولم اعمل فأنا لا املك الخبره الكافيه رغم ان الاكسس ليس صعب جدا ولكن مرت فتره طويله دون ان استخدمه لذلك اتمنى منكم مساعدتي في عمل برنامج مبسط وجيد بنفس الوقت للعلم انا لا املك ادني فكره عن المقاولات اي اني لا اعرف حتى كيف سأبدا واذا فيه برامج جاهزه لكي استعين بها سأكون شاكره لحسن تعاونكم ساعدوني لكي ابيض وجهي امام زوجي هههههه
    1 point
×
×
  • اضف...

Important Information