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

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

  1. ياسر العربى

    ياسر العربى

    الخبراء


    • نقاط

      23

    • Posts

      1510


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

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

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


    • نقاط

      15

    • Posts

      13165


  3. أبوبسمله

    أبوبسمله

    الخبراء


    • نقاط

      11

    • Posts

      3463


  4. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      6

    • Posts

      9927


Popular Content

Showing content with the highest reputation on 02/25/16 in all areas

  1. ايه ياحبيبي ياغالي الموضوع مش مستاهل شراء وانت عارف كويس المصريين بيسلكوا دايما جرب المرفق دا وقولي رايك في منه كتير بس اللي يدور المكتبات دي موجودة من زمن BankCode.rar
    5 points
  2. ترقيم تلقائي يتجدد مع بداية كل سنة على النحو التالي 1300001 1300002 1300003 1400001 1400002 وهكذا ................. باعتبار الرقم 13 ، 14 هو السنة والترقيم لاشك سيكون تبعا للسنة الحالية Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = Right(DatePart("yyyy", Date), 2) prtTxt = Left(DMax("ID", "tbl1"), 2) xLast = DMax("ID", "tbl1", prtTxt = prtyr) If IsNull(xLast) Then xNext = 1 Else xNext = Val(Mid(xLast, 3, 5)) + 1 End If Me!ID = prtyr & Format(xNext, "00000") End Sub ترقيم تلقائي جديد كل سنة.rar
    3 points
  3. السلام عليكم اعتقد مهم ان اعطيكم مثال على Me.Painting ، فالتوضيح في الرابط التالي يحتاج الى توضيح http://www.officena.net/ib/topic/67464-المساعدة-في-فتح-صورة-من-listbox/?do=findComment&comment=438833 النموذج Form1 ، كل ثانية ، اللون الاصفر ينزل الى الحقل التالي (اي بمعنى ان النموذج يجدد شكل النموذج باستمرار ، وعليه نرى الالوان تنتقل من حقل الى آخر): الكود: Function Change_Colors(F) Me(F).BackColor = RGB(225, 225, 0) 'yellow Me(F) = F DoEvents PauseTime = 1 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop Me(F).BackColor = RGB(255, 255, 255) 'white Me(F) = "" End Function Private Sub cmd_Start_Coloring_Click() Call Change_Colors("q1") Call Change_Colors("q2") Call Change_Colors("q3") Call Change_Colors("q4") Call Change_Colors("q6") Call Change_Colors("q7") End Sub . والنتيجة: . اما النموذج Form2 ، فهو نسخة من النموذج السابق Form1 ، إلا اني طلبت في الكود ان: اللون الاصفر يلون الحقل الاول والثاني ، ثم اعطيت الامر بعدم تجديد شكل النموذج بالامر Me.Painting=False فاللون الاصفر ظل على الحقل الثاني للنموذج ، بينما الكود استمر في عمله في تلوين الحقل الثالث والرابع ، ولكن دون ان يُظهر لنا النتيجة على النموذج ، ثم اعطيت الامر Me.Painting=True ، فاللون الاصفر اختفى من الحقل الثاني ، وظهر لآخر حقلين ، والكود هو: Function Change_Colors(F) Me(F).BackColor = RGB(225, 225, 0) 'yellow Me(F) = F DoEvents PauseTime = 1 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop Me(F).BackColor = RGB(255, 255, 255) 'white Me(F) = "" End Function Private Sub cmd_Start_Coloring_Click() Call Change_Colors("q1") Call Change_Colors("q2") Me.Painting = False Call Change_Colors("q3") Call Change_Colors("q4") Me.Painting = True Call Change_Colors("q6") Call Change_Colors("q7") End Sub . والنتيجة: . طيب ، ما الفائدة عمليا من هذا الكود؟ انا استخدمت هذا الامر مرات جدا قليلة في برامجي ، والبرنامج اعلاه (في تغيير اسم الملف) هو احدهم ، اما البرنامج الآخر فهو: برنامج فيه آلاف السجلات ، وهناك صور للسجلات ، فكنت اريد ان اعرض النموذج بطريقة معينة ، بحيث باختيار اسم الموظف تصل الى معلوماته ، ولكني اردت ان اسمح لهم ان يروا بقية السجلات ايضا ، فالاكسس كان يعرض اول سجل وصورة ، ثم ينتقل الى السجل المطلوب ، وانا لم ارد للمستخدم ان يرى اول سجل وصورته ، وانما اردته ان يرى سجل وصورة الموظف الذي تم اختياره ، فاستخدمت هذه الطريقة في اخفاء السجل الاول وصورته (بعدم تجديد الشاشة) ، وعندما حان موعد ظهور السجل المطلوب وصورته ، اعطيت الامر بإظهار وتجديد شاشة الاكسس ، والنتيجة كانت مرضية لي جعفر 297.Me.Paint.accdb.zip
    2 points
  4. اخواني الكرام هذه بعض الاكواد المنفصلة و البسيطة التي قد تهم البعض وخاصة المبتدئين مثلي وارجوا من الاخوة الكرام كل من لديه كود يضيفه وأجر الجميع على الله وتسهيلاً على اخواننا في متابعة الموضوع اردت وضع فهرس بالمشاركات التي تحتوي على الاكواد وهنا الفهرس مقسم على ثلاثة أجزاء يحتوي على هذه المشاركات وهذه الملفات من النوع (Pdf) ............................................................ الجزء الأول من فهرس الأكواد المنفصلة (ملف Pdf) الجزء الأول.rar ............................................................ الجزء الثاني من فهرس الأكواد المنفصلة (ملف Pdf) الجزء الثاني.rar ............................................................ الجزء الثالث من فهرس الأكواد المنفصلة (ملف Pdf) الجزء الثالث.rar ............................................................ و هذه النسخة الاولى من برنامج محفظة الاكواد جمعت فيها جميع اكواد هذه الحلقات من هذا الموضوع المحفظة المفرغة من تصميم الاستاذ الكبير خبور جزاه الله خيرا محفظة اكواد_النسخة1.rar أخوكم محمد يحياوي
    2 points
  5. السلام عليكم إخواني الكرام أثناء تجوالي في مواقع الانترنت وجدت برنامج اسمه VBA Time Saver Kit فكرة البرنامج أنه يقوم بتخزين أكواد الـ VBA .. ويمكن البحث من خلاله بسهولة عن الكود المطلوب .. أعتقد أنه يمكن أن يكون نواة لمكتبة كبيرة نساهم جميعاً في إثراء تلك المكتبة .. لمن لديه خبرة في التعامل مع مواقع الانترنت والشراء من خلالها ويستطيع أن يقوم بشراء البرنامج حوالي 15 دولار فليتقدم ويتبرع إذا كان بإمكانه وبعد الشراء طبعاً عارفين ..كل الوطن العربي هيستخدم البرنامج اللي هيتم شرائه ..بس خلاص تقبلوا وافر تقديري واحترامي
    2 points
  6. السلام عليكم ورحمة الله تعالى وبركاته واجهت مشكلة كبيرة عند حساب الايام بين تاريخين تاريخ البدء وتاريخ الانتهاء على سبيل المثال وكان ما يهمنى هو عدم احتساب الجمعة والسبت ضمن هذين التاريخين على اعتبار انهم عطلة اسبوعية ثم خطر ببالى كذلك عدم احتساب الاعياد والمناسبات الرسمية بحثت وظللت ابحث وسهرت ولم انم منذ الأمس بسبب هذه المعضلة ولكن لم اجد اى حل فى اى منتدى حتى تفضل على الاستاذ ابو خليل جزاه الله عنا كل الخير ان شاء الله ولكن بصراحة هذا الحل لم يرضى طموحى فذهبت للبحث مرة اخرىووجدت فى موقع مايكروسوفت هذا الحل الذى أحدث خطأ فنجم عنه خلل فى الحسابات وحاولت فهم الية العمل وظللت اجرب واحاول وأخيرا بفضل الله سبحانه وتعالى الذى هدانا لهذا وما كنا لنهتدى لولا ان هدانا الله عزوجل توصلت لحل وقمت بتجربته مرار وتكرارا وبعد أن تأكدت من صحة ودقة معالجة البيانات قررت ان ارفعه على هذا الصرح الشامخ ملاحظة يمكن الاستفاده من هذا المرفق فى الاتى 1- حساب ايام العمل الفعليه بدون ايام الاجازات الرسمية والعطلة الاسبوعية --- العطلة الأسبوعية بالنسبه لى انا كانت الجمعهة والسبت ممكن تعديلها ☺ 2- حساب الاجازة التى تخصم من الرصيد فيستثنى منها ايام الاجازات الرسمية والعطل الاسبوعية كذلك للعلم تعدل بيانات الاجازات الرسمية والتواريخ من خلال القاعدة طبقا لكل دولة حتى لا يتم احتساب هذه التواريخ أحبكم فى الله وانتظر ردكم بعد التجربة ActualDaysCalcult.rar
    2 points
  7. وعليكم السلام اخوي ياسر المنتدى ده والناس اللي هنا ساعدوني بكتير حاجات كانت مصيريه بشغلي مش خساره فيهم اي حاجه انا معايا ماستر كارت واشتريت فيها كزا مره من النت لو عايز اشتريها حشتريها بس قولي كيف وازي لاني بصراحه انا مش حعرف استخدمو واستفيد منو بس المهم تستفيديو منو انتو
    2 points
  8. اتفضلوا ملفين على الاكسيس اطلعوا عليهم لعلهم ينفعونا باذن الله فى الفكره دوال مايكروسوفت أكسس MS Access Functions.rar هذه بعض الأوامر في الأكسس.rar
    2 points
  9. أخي وحبيبي في الله محمد صالح أين أنت معلمي ..؟ اشتقنا لوجودك فيما بيننا .. مفتقدينك والله ومفتقدين حلولك الجميلة والرائعة لعل غيابك عنا خير تقبل وافر تقديري واحترامي
    2 points
  10. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته بناء على رسالة من أخي الفاضل / محمد طاهر واعتماد طريقة جديدة وبسيطة في التفكير بصورة عملية ربما يفيدكم هذا الملف بإذن الله وفقنا الله وإياكم لكل ما يحب ويرضى حذف الصفوف والأ‘عمدة بالكود.rar
    2 points
  11. ارغى ياعم الامور ابو البراء يشاور بس وانا اعمله برنامج مخصوص يارب ما يشبط في الكلمة
    2 points
  12. حمل البرنامج وادعيلى اضغط هنا اتفضل اخى ياسر ان شاء الله يعجبكم ومحدش يتكلم فى السياسه انا مش للبيع ههههههههههههههههههههههههههههه
    2 points
  13. أخي الكريم يرجى تغيير اسم الظهور للغة العربية ليعبر عن شخصكم الكريم لمعرفة التفاصيل قم بالإطلاع على موضوع التوجيهات في الموضوعات المثبتة في صدر المنتدى أخي الحبيب سليم بارك الله فيك وجزاك الله كل خير .. كود أكثر من رائع وسريع جداً جرب الكود التالي (هو غريب شوية لكن يؤدي الغرض !! الغرابة من إن السطر مكرر مرتين ..افتكاسات ياسر مع التهييس) Sub DeleteEmptyRowsAndColumns() Cells.SpecialCells(xlCellTypeBlanks).Delete Cells.SpecialCells(xlCellTypeBlanks).Delete End Sub تقبل وافر تقديري واحترامي
    2 points
  14. مكتبة مصممة بالفيجوال بيسك دوت نت Code Library 2009.rar
    2 points
  15. جرب هذا الكود Sub DeleteEmptyRowsAndColumns() x = ActiveSheet.UsedRange.Row - 1 y = ActiveSheet.UsedRange.Rows.Count LastRow = x + y Application.ScreenUpdating = False For r = LastRow To 1 Step -1 If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete Next r m = ActiveSheet.UsedRange.Column - 1 n = ActiveSheet.UsedRange.Columns.Count LastColumn = m + n For c = LastColumn To 1 Step -1 If Application.CountA(Columns(c)) = 0 Then Columns(c).Delete Next c Application.ScreenUpdating = True End Sub
    2 points
  16. تفضل هذا الملف قم بفك ضغطة وضعه في system32 داخل الويندوز او ضعه بجانب البرنامج وقم بتشغيله كما قال اخي الغالي عبد العزيز في وضع كمسئول RICHTX32.rar
    2 points
  17. السلام عليكم استاذى / زيزو العجوز .. حل متميز ..جزاك الله خيراً استاذى / ياسر العربى .. فكرة متميزة ..جزاك الله خيراً اخى الكريم .. اليك احد طرق الحل بالاكواد Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("L4:M4")) Is Nothing Then Dim LR As Integer, cl As Range, c As Range, cll As Range LR = Cells(Rows.Count, 4).End(xlUp).Row Set cl = Range("B3:B" & LR).Find([L4]) Range("O4") = Cells(cl.Row, 3) For Each c In Range("D3:D" & LR) If c = Range("M4") Then Set cll = Range("E2:I2").Find([O4]) Range("Q4") = Cells(c.Row, cll.Column) End If Next End If End Sub اليك المرفق اسعار متعدده.rar
    2 points
  18. اخي محمد الزريعي شفاك الله والف سلامة المهم ان الكود الموجود بملفك انا جربته على الشبكة عندما وضعت لك المرفق بعد تعديل المسار فقط باسم جهازي وعمل بشكل سليم من الاجهزة الاخرى يرجى التأكد من جميع خطواتك جيدا وذكر مسار الملف من على الشبكة وشكرا
    2 points
  19. و عليكم السلام و رحمة الله و بركاته ... 1- نعم تستطيع عمل برامج قوية ومنوعة و لا حصر لها . لكن اظن انه من ناحية الحماية توجد لغات برمجة و برامج افضل . 2- ممكن الاعتماد على معالجات البرنامج فقط . 3- نعم تستطيع رفع البرنامج على جهاز او على الشبكة . 4- ابدأ بالخطوات البسيطة و كلما واجهك استفسار تستطيع البحث عنه في المنتدى فان لم تجد الاجابة افتح موضوع جديد واشرح بشكل وافي مشكلتك و مرادك وبالنسبة للمعلمين فهنا ما اكثرهم و ما احلاهم من معلمين ... مع تمنياتي لك بالتوفيق الدائم ...
    2 points
  20. اخى الكريم تحدثت عن الفترة الزمنية بين العمليات ولم تذكر ما مدى تأثير ذلك على النتائج ..جرب المرفق وابدى ملاحظاتك .. استخدام ;0)MAX لظهور صفر بدلاً من القيمة السالبة كشف حساب بالرصيد المتحرك(2).zip
    2 points
  21. السلام عليكم ورحمة الله اليك الحل باذن الله القوائم الاسمية.rar
    2 points
  22. أخي الحبيب أحمد أخي الغالي ياسر العربي أقولكم ع الصراحة ..أنا كنت عايز أطلع المكتبات اللي عندكم بس بأسلوب استفزازي .. عشان كدا طرحت الموضوع لأني عارف إن محدش في الوطن العربي بيشتري ..!!ههههههههه (مش إحنا اللي ينضحك علينا ) بس ايه المانع إننا نشترك كل واحد يدفع ربع جنيه ونشتري البرنامج ونوزعه ع الغلابة والكل يستفيد .. فكرة مش كدا (يلا يا عربي لم الفلوس بس اوعى تطمع فيها وتهرب برا مصر) تقبلوا وافر تقديري واحترامي
    2 points
  23. بعد اذن اخي الغالي زيزو لاثراء الموضوع تفضل الحل بطريقة اخرى اسعار متعدده.rar
    2 points
  24. السلام عليكم ورحمة الله وبركاته ارجو ان يكون هذا هو ماتقصده اسعار متعدده.rar
    2 points
  25. أخي الكريم ولما تبخل على إخوانك بتقديم الحل الأخير الذي توصلت إليه .. تعلم العطاء ترتقي .. لا أقصد الإهانة وربي يعلم - حتى لا تأخذ الكلام بمحمل آخر - إنما قصدت أن تقدم الحل الذي توصلت إليه فلربما يوجد من إخوانك من ينتظر مثلك الحل وتقديمك للحل سيكون حلاً لمشكلة بالنسبة إليه تقبل نصحي وتحياتي
    2 points
  26. شكرا لك اخى الكريم .. الحمد لله الذى بنعمتة تتم الصالحات عادة هذه العلامة ليس معناها وجود خظأ بالصيغة يمكنك ازالتها باكثر من طريقة ايسرها تحدد الخلايا التى تحوى هذه العلامة ثم كليك يمين واختيار I gnore Error ويمكنك الاطلاع عل الرابط التالى لفهم معناها https://support.office.com/en-us/article/Correct-an-inconsistent-formula-75c352c2-896d-4f34-ad2d-92df5b226a4e
    1 point
  27. السلام عليكم اخى الكريم .. استبدل المعادلة الموضوعة بالخلية F4 بهذه المعادلة =IF(E4+D4=0;0;MAX(0;SUM($F$3;$D$4:D4)-SUM($G$3;$E$4:E4))) والمعادلة الموجودة بالخلية G4 بهذه المعادلة .. ثم قم بالسحب لاسفل =IF(E4+D4=0;0;MAX(0;SUM($E$4:E4;$G$3)-SUM($D$4:D4;$F$3))) اليك المرفق حساب جاري برصيد متحرك.zip
    1 point
  28. السلام عليكم ورحمة الله تفضل أخي أتمنى يكون المطلوب حيث احتسبت التاريخ على تاريخ اليوم calcule(2)------.rar
    1 point
  29. عيونى والله انا بادور عليه مش فاكر هو فى انهو هارد ادينى خمس دقايق ان شاء الله وارد عليك
    1 point
  30. العفو اخى الكريم نحن كلنا اخوه ونحاول ان نساعد بعضنا بعضا بالتوفيق وجزاك الله كل خير
    1 point
  31. اولا : كل اساتذتى واخوانى واحبائى فى الله الكرام شوقى5 - سعيد صواب - at_aziz - القعر - Barna - karrar sabry - أبو عبدالله الحلوانى بعد كل الشكر والتقدير والعرفان سواء بصحبتكم الطيبة او توجيهاتكم البراقة او مساندتكم الطيبة بكلماتكم الرقراقة واطلب منكم جميعا على استحياء التماس العذر لى فى غيابى عنكم وتاخرى فى الرد على حضراتكم فوالله لم يكن لامبالاة او عدم إهتمام فكلكم أحبكم فى الله ولله ولكن كان تأخرى لظروف سفر وعمل فتحملونى برفق واسألكم العفو عنى بحلم ثانيا موضوع انها غير مفتوحة المصدر هو خطأ والله غير مقصو ولكنها فى الاصل مفتوحة المصدر هى والله مفتوحة المصدر فأنا والله لا ولم انسى افضالكم على جميعا فى هذا الصرح الشامخ دخلت اول يوم بهذا المنتدى ولم اكن اعرف عن الاكسس سوى اسمه حتى من الله على من فضله وعلمه ثم حضراتكم فوصلت الى ما صرت إليه فكيف ينسى المحب فضل أساتذته فقط قمت ببتعطيل الشيفت وتغير الامتداد للتمويه ووضعت كود عند تغيير اسم القاعده لا تفتح وكان كل ذلك من باب التجربة الشخصية لنفسى ولم اقصد رفع تلك القاعدة فقط تم ذلك دون قصد
    1 point
  32. يمكن استعمال هذه المعادلة البسيطة (اختر منها النطاق المناسب) =SUMPRODUCT(--ISNUMBER(SIGN($A$1:$A$8)),$A$1:$A$8)
    1 point
  33. وعليكم السلام أعلم أنه لم يكن المطلوب لأنني لا أعلم لماذا تريد هذه الإحصائية في الجدول؟ فقربت إليك الفكرة بما يسمى بحركة الصنف وأتمنى أن تفي بالغرض الذي تطلبه
    1 point
  34. استخد الدالة SUM بدلاً من علامة الجمع لتلافي الخطأ الناتج عن المعادلة تكون بهذا الشكل علامة يساوي يليها اسم الدالة SUM ثم ما بين أقواس ( ) نضع الخلايا المطلوب جمعها تقبل تحياتي
    1 point
  35. جرب هذا الملف search salim.rar
    1 point
  36. السلام عليكم الموضوع بسييييط للغاية أخي العزيز المشكلة تكمن في المجلد الموجود في D هذا المجلد يجب أن يوضع في مجلد الشبكة (وليس في D )
    1 point
  37. أخي الكريم يوسف عطا لاحظت فعلاً أن النتائج مختلفة في 23.7 ... والكود استخرج الرقم 23.07 كما هو موجود في المدة بالضبط ... ولو كانت القيمة 23.7 هي الصحيحة فعلى أي أساس يتم احتسابها بهذا الشكل وهو موجودة في المدة 23.07 .... كما أشرت إلى نقطة أخرى في مشاركتي السابقة وهي غير منطقية بالنسبة لي ولكن قمت بها ليتناسب مع ملفك .. وهو المدة 00:00 .. في حسابك اليدوي جعلتها 0.01 الحمد لله أن تم المطلوب على خير ..وجزيت خيراً بمثل ما دعوت لي تقبل تحياتي
    1 point
  38. تأكد من رابط الملف ع الشبكة وضعه هنا والكود يعمل لاني بالفعل لدي ملفات تعمل عالشبكة وياريت بصور توضيحية لمسار الملف من ع الشبكة
    1 point
  39. بعد اذن الاخوان اسمحوا لي ان اقدم هذا الملف الذي يضيط بالشكل التام اوتو ماتيكياً اخر الشهر 30و31 29 أو 28 داله اليوم salimبالتاريخ.rar
    1 point
  40. الحمد لله توصلت لحلها بفضل الله
    1 point
  41. مثال رقم 3 :- فى المثال رقم 2 كان الشرح على نفس الصوره السابقه فورم فى مرحلة التصميم وصممت عليه Frame والفريم لا يوجد به اى عناصر تحكم تم تصميمها وكان المثال برقم 2 انى اعمل كود عند فتح الفورم يكون هناك عدد 10 صفوف من العناصر كل صف به ليبل وتكست بوكس وكمبوبوكس المثال بتاعنا اليومعايز اعرف ازاى اضيف عناصر تحكم اثناء فتح الفورم من شيت اكسيل وعدد الصفوف بالشيت غير معروف عددها فى زياده او نقصان شاهد الصوره هتعرف اكتر المثال بتاعنا بكل بساطه نفس الكود اللى بالمثال 2 مع تعديلات فنيه بسيطه جدا دا كان الكود اللى بالمثال 2 Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer Top = 5 For i = 1 To 10 With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" & i End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub ايه المطلوب تعديله بالكود لكى يتناسب مع المطلوب بتاعنا رفع الخلايا من الشيت الى الفريم المثال كان على ان عدد الصفوف 10 لذالك استخدمنا الحلقه For next كالتالى For i = 1 To 10 فدلوقتى انا عايز اجيب الخلايا بالشيت رقم 1 النطاق من A2 الى اخر صف هيكون به اخر طالب اذن بداية الحلقه هى اول صف بالجدول وهو الخليه A2 ورقم الصف لها هو 2 اذن الحلقه هتبدأ من رقم 2 الى ؟ الى اخر صف به بيانات فى العمود A اذن لازم احدد اخر صف به بيانات من خلال السطر التالى واحنا شرحناه قبل كدا lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row عملت متغير واسمه Lr وتقدر تسميه اى اسم كيفما شئت وقلت ان المتغير Lr يساوى كتبت اسم الشيت المراد العمل عليه واستخدمت Cells لتحديد عدد الخلايا الممتلئه بالبيانات فى العمود 1 كدا انا عرفت الحلقه من اين تبدأ واين تنتهى ( تبدأ من الصف 2 الى اخر صف به بيانات ) For i = 2 To lr شاهد الكود بعد تعديل الحلقه For Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer lr = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row Top = 5 For i = 2 To lr With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i) .Left = 20 .Top = Top .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a .Text = Sheet1.Cells(i, 3).Text End With With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label" & i) .Left = 340 .Top = Top .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = Sheet1.Cells(i, 1).Text End With Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub اللى مركز معايا هيلاقى 1- تم تعديل بداية ونهاية الحلقه For 2- فى سطر تم اضافته فى خصائص كل عنصر فى عنصر الكمبوبوكس تم اضافه السطر التالى .Text = Sheet1.Cells(i, 3).Text قيمة الكمبوبوكس هى كتبت اسم الشيت وهو بمثالنا الشيت 1 ثم الخلية المطلوبه Cells عباره عن (رقم العمود, رقم الصف)Cells ( Cells( i , 3 i هنا هى رقم الصف اللى هيتغير كل مره بالحلقه For والعمود هو رقم 3 الخاص بالحاله --------------------------------- فى عنصر التكست بوكستم اضافه السطر التالى .Text = Sheet1.Cells(i, 2).Text نفس الكمبوبوكس ولكن تم تغيير رقم العمود هو 2 الخاص بالدرجه ---------------------------------- فى عنصر الليبل تم اضافه السطر التالى .Caption = Sheet1.Cells(i, 1).Text نفس الكمبوبوكس والتكست بوكس ولكن تم تغيير رقم العمود هو 1 الخاص باسم الطالب ----------------------------------------------------------------------------------------------------------------------- ملحوظه اخيره لمن يريد درجة الاحترافيه فى الكود لما كنا بنعمل خصائص العنصر كان الخاصيه Left & Top & Width& Height لكل عنصر كان بيتم كتابتهم بالشكل التالى كلا منهم على حد فى سطر مختلف على سبيل المثال خصائص التكست بوكس With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Left = 180 .Top = Top .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With ممكن اكتب الاربع خصائص فى سطر واحد من خلال Move القاعدة الخاصه بــ Move Move Left, Top, Width, Height. ويكون شكل الكود كالتالى بالخصائص With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox" & i) .Move 180, Top, 150, 40 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF .Text = Sheet1.Cells(i, 2).Text End With تم استبدال الاربع صفوف بسطر واحد من خلال Move -------------------------------------------------------------------------------------------------------- جرب الكود بنفسك هتثبت المعلومه اكتر الى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد ان شاء الله هيكون عن كيفية التحكم فى العناصر الموجوده داخل الفريم سوء كانت مصممه اثناء عملية التصميم او تم انشائها بكود انتظرونا تقبلوا تحياتى
    1 point
  42. السلام عليكم ورحمة الله وبركاته يمكنكم تثبيت اللغة المطلوبة إلى أي لغة تريدها عن طريق تغيير اللغة من النمط (عادي) كما هو موضح بالمرفق. تمنياتنا لكم بالتوفيق
    1 point
  43. الطبيعي هو أنك عند إدراجك للتاريخ الأول لا يتم الحساب وبمجرد تغييرك للتاريخ الثاني يتم الحساب على التاريخ الأول وعند خروجك من تغيير التاريخ الثاني يتم الحساب على التاريخين
    1 point
  44. وعليكم السلام ورحمة الله تفضل أخي الكريم حساب الفرق بين التاريخين بواسطة الدالة CalculateDate والقيم المكتوبة في حقول احتساب الفرق وتوجد طريقة أخرى بالإستعلام وضعتها لتلقي نظرة عليها - من باب الاستزادة - ولكنها تحسب الأيام والشهور كاملة بدون الاعتماد على أحدهما Employee_Data1------------copy بالنسبة للتنبيه حاولت أساعد بما أقدر عليه وهو برسالة تنبيه خلال 30 يوم ويظهر بيانات الذين أوشك انتهاء خدمتهم في نموذج alrm في حالة الرغبة بعرض بياناتهم تحياتي Employees DBMS.rar
    1 point
  45. السلام عليكم بعد اذن استاذنا الفاضل والماسة المنتدى اضع هنا شرح لطريقة كتابة الكود والدالة في المحرر كنت قد اعددته من فترة
    1 point
  46. أخي يحيى حسين اسمح لي بقليل من التعليق وهو أنك اعتمدت في الأكواد السابقة على فراغ الخلية الأولى من كل صف حتى يتم حذفه فمن الممكن أن تكون الخلية الأولى فارغة وباقي الخلايا مكتوب فيه أو العكس وبالفعل تم مناقشة هذا الموضوع في منتدى آخر وعرض أحد الإخوة هذه الدالة التي تقوم بحذف الصفوف الفارغة Sub deleteEmptyRows() Dim LastRow As Integer Dim MyRow As Integer Application.ScreenUpdating = False LastRow = ActiveSheet.UsedRange.Row - 1 + _ ActiveSheet.UsedRange.Rows.Count For MyRow = LastRow To 1 Step -1 If Application.CountA(Rows(MyRow)) = 0 Then Rows(MyRow).delete Next MyRow Application.ScreenUpdating = True End Sub ولكني لاحظت أنها تقوم بحذف الأسطر الفارغة صفا صفا وكنت قد بحثت في فترة سابقة على النت فوجدت هذه الدالة التي تعتمد على حذف المناطق الفارغة مما يزيد سرعة عملية الحذف Sub DeleteBlankRows() Set myrange = Range("B4:I31") Set blanks = myrange.SpecialCells(xlCellTypeBlanks) For Each area In blanks.Areas If area.Columns.Count = myrange.Columns.Count Then area.EntireRow.Delete End If Next area End Sub وهذه دالة من تصميمي بناء على الدالة الأولى مع بعض التعديلات Sub Mas_DelBlankRows() On Error Resume Next Dim n As Integer For n = 1 To ActiveSheet.UsedRange.SpecialCells(4).Areas.Count If ActiveSheet.UsedRange.SpecialCells(4).Areas(n).Columns.Count = ActiveSheet.UsedRange.Columns.Count Then ActiveSheet.UsedRange.SpecialCells(4).Areas(n).EntireRow.Delete Next n End Sub وفي الكودين السابقين يتم تحديد الصف الفارغ بناء على عدم وجود بيانات في أي خلية من خلاياه وليس فقط الخلية الأولى وبالله التوفيق أخوكم محمد صالح
    1 point
  47. من المعلوم أن الجدول الرئيسي و هو جدول الحركة يكون له علاقات مع جداول أخرى , و بواسطة تلك العلاقات بين الجداول يتم انشاء الاستعلامات الحسابية كذلك هذا الجدول يبنى عليه نماذج و تقارير عديدة فاذا أردت تقسيم الجداول كل سنة في جدول فيسكون من الصعب جدا عمل علاقات جديدة مع بقية الجداول و كذلك اتعادة انشاء الاستعلامات و النماذج و التقارير بينما اذا بقيت الحركة كلها في جدول واحد توفر هذا العناء كله , اذافة الى سهولة استقاء التقارير لكل السنوات من تقرير واحد
    1 point
  48. الآن لنحاول بناء الجدول الثاني في الأهميه و هو جدول المنتجات Products يمكن أن نتصور أنه يحتوي البيانات التاليه اسم المنتج ProductName التعبئه QuantityPerUnit سعر الوحده UnitPrice حد اعادة الطلب ReorderLevel الصنف فعال ( لازال قيد التعامل أم تم الغاؤه ) Discontinued الآن لابد لنا من رقم معرف للصنف أي ProductID و هذا الحقل هو الذي سيتم التعامل معه لاحقا كمعبر عن الصنف و هو الذي سيكون الرابط بين جدول الأصناف و بقية الجداول نريد اضافة حقل آخر و هو تصنيف المنتج أي الزمره التي يتبع لها هذا المنتج اذا كان لدينا مجموعة كبيره من المنتجات و نريد تصنيفها في مجموعات و ليكن هذا الحقل اسمه CategoryID أحدنا سيتخيل أنه طالما أن المجموعات ستكون اسماء مثل ( ألبسه - مأكولات - مواد غازيه ,, الخ ) , اذا حقل رمز المجموعه سيكون نص , الأفضل أن نصمم جدولا خاصا للمجموعات ولنسمه Categories , يحتوي الحقول التاليه رقم معرف للمجموعه و مفتاح رئيسي CategoryID اسم المجموعه CategoryName بعض الحقول الاضافيه مثل : الوصف - صورة الآن النقطه الهامه جدا هنا هي أننا في جدول المنتجات سنجعل حقل رمز المجموعه رقما و ليس نصا و سيأخذ قيمته من حقل CategoryID في جدول Categories و ليس من حقل CategoryName و سيكون الربط بين جدولي الأصناف و المجموعات على حقل رقم المجموعه في كلا الجدولين اي CategoryID . الآن ليقل أحدنا اذا كنا نريد تعبئة بيانات صنف جديد في جدول الأصناف , و ليكن مثلا لحوم , نريد تعبئة حقل رقم المجموعه و هي مجموعة اللحوم في جدول المجموعات , ال CategoryID لهذه المجموعه هو 6 , هل كلما أردنا أن نعرف رقم مجموعه لصنف يجب أن نفتح جدول المجموعات و نستخرج رقم تلك المجموعه ثم نضعه في حقل معرف المجموعه للصنف ؟ هذا سيكون عملا مملا و شاقا , نستطيع اختصار كل هذا بتحويل حقل CategoryID في جدول الأصناف الى قائمه تحوي حقلين مأخوذين من جدول المجموعات و هما : CategoryID - CategoryName حيث سنستطيع بكل سهوله اختيار اسم المجموعه المناسب من هذه القائمه و عمل ذلك مشروح على الرابط التالي ففيه شرح مفصل عن مثال على كيفية عمل ذلك . عرض قيمة حقل من حقل آخر مرتبط به - شرح مفصل بالصور و بالتطبيق على مثالنا نجد أن حقل CategoryID في جدول الأصناف تحول الى قائمه منسدله تحوي حقلين هما رقم المجموعه و اسم المجموعه لنفتح جدول الأصناف في وضع عرض البيانات , و لنحاول ادخال صنف جديد , نجد عند الوصول الى حقل رمز المجموعه أننا نختار اسم المجموعه ( و لاننسى أن اسم المجموعه هو للعرض فقط بينما البرنامج يتعامل مع قيمة رقم المجموعه ) و لنحاول تطبيق ذلك على حقل رقم المورد , اذ علينا انشاء جدول للموردين و سنجعل حقل رقم المورد في جدول الأصناف يختار اسم المورد من جدول الموردين بنفس الطريقه السابقه
    1 point
  49. الخطوه الأهم في تصميم اي قاعدة بيانات هي وضع مخطط العمل , و لكي نعرف مخطط العمل لابد من الاحاطه بالهدف المطلوب من انشاء قاعدة البيانات . لدينا شركة NorthWind أو الرياح الشماليه , شركة تقوم بشراء وبيع البضائع , عملية الشراء غير مطروقه في هذه القاعده , و انما الاهتمام كله موجه لعملية البيع ( و طبعا بالامكان تصميم مايلزم لعمليات الشراء ) . عملية البيع تتم بناء على طلبيات مسبقه من العملاء , بحيث يتم تحديد الأصناف المطلوب ارسالها للعميل و الأسعار ووسيلة الشحن وموعد الشحن المطلوب و رقم الموظف الذي قام بتسجيل بيانات الطلبيه . بالنسبه للبضائع لابد من مراعاة أن يكون هناك مخزون متوفر حيث أن البضائع التي تم بيعها للعملاء ستخفض الرصيد الموجود بالمخازن , و طبعا في حال انخفاض هذا الرصيد عن حد اعادة الطلب , فيجب اعداد طلبية شراء لتغذية المخزون , و لكن كما ذكرنا عملية الشراء غير متطرق اليها في هذه القاعده . اذا يمكننا الآن أن نضع تصورا للجدول التي ينبغي انشاؤها حيث : - طالما لدينا بضائع يتم بيعها اذا لابد من انشاء جدول خاص بالبضائع Product - لدينا عملاء اذا نحتاج الى جدول للعملاء Customers - لدينا طلبيات اذا نحتاج الى جدول خاص للطلبيات اذ لكل عميل طلبيه مستقله Orders هذه هي الجداول الرئيسيه التي نحتاجها و سنقوم بتصميمها الآن . قبل البدء بتصميم الجداول لابد من الاشاره الى بعض التوصيات في بناء الجداول و هي : أولا : الجدول هو المادة التخزينيه للبيانات الرئيسيه , اذ يجب أن يحتوي على القيم التي لاتتأثر بغيرها اي على سبيل المثال اذا كانا نريد حساب المعادله التاليه القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثانيا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا الجدول الرئيسي لدينا هو جدول الطلبيات , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و حيث أننا نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك احتجنا أن تكون بيانات العميل في جدول مستقل تجتمع فيه بياناته الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . ثالثا : يفضل أن تكون استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء العربيه يسبب ارباكات أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك رابعا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList لنبدأ الآن بتصميم الجدول الأسهل في هذه القاعده و هو جدول العملاء , و لنتصور أنه يحتوي الحقول التاليه : اسم العميل CompanyName العنوان Address المدينه City الدوله Country المنطقه Region الرمز البريدي PostalCode الهاتف Phone الفاكس Fax و سنحتاج اضافة لذلك بيانات عن الشخص الذي سنتصل به مثل اسمه ContactName و عمله الوظيفي ContactTitle و طبعا قبل كل ذلك نحتاج الى كود العميل CustomerID و هو الذي سيكون صلة الربط مع الجداول الأخرى و المفتاح الرئيسي لهذا الجدول قاعدة البيانات هذه موجوده بشكل جاهز مع الأكسس من قائمة الأدوات - أمثله , يمكن تنزيلها للاطلاع عليها , و لكن من أراد أن يستفيد أكثر فليحاول التصميم بنفسه لزيادة مهارته و ليبدأ بتصميم جدول العملاء و سنتابع ان شاء الله بقية الجداول في الدرس التالي
    1 point
×
×
  • اضف...

Important Information