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

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

  1. صالح حمادي

    صالح حمادي

    أوفيسنا


    • نقاط

      8

    • Posts

      1,745


  2. عبد اللطيف سلوم

    عبد اللطيف سلوم

    06 عضو ماسي


    • نقاط

      7

    • Posts

      1,948


  3. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      4

    • Posts

      8,723


  4. ابو ياسين المشولي

    • نقاط

      4

    • Posts

      1,752


Popular Content

Showing content with the highest reputation on 04 فبر, 2018 in all areas

  1. دوال اكسس عملي منقول للفائدة دوال-الاكسس-عملي.rar
    4 points
  2. طلب الي احد الاصدقاء وضع كود لادراج رزنامة لسنة محددة وشهر محدد مع تمييز (يوم معيّن) من هذا الشهر فكان هذا الكود الذي ارجو ان يستفيد منه الاخرون قبل تنفيذ الكود الكود: تسمية الصفحة التي تريد العمل عليها بهذا الاسم "Salim_Calendar" اكتب في الخلية B1 رقم السنة في الخلية B2 رقم الشهر في الخلية G1 رقم اليوم المييز الكود Option Explicit Option Base 1 Sub My_Calandar() If ActiveSheet.Name <> "Salim_Calendar" Then Exit Sub Dim t As Date, i As Byte Dim Arab_day(), m% Dim EnG_day(), rows_count As Byte Dim col As Byte Dim r As Byte Dim search_day As Date rows_count = Range("b4").CurrentRegion.Rows.Count + 3 Range("b4:H" & rows_count).ClearContents Range("b5:h10").Interior.ColorIndex = 0 '''''''''''''''''''''''''Conditions for working'''''''''''''''''' If Not IsNumeric([b1]) Or Not IsNumeric([b2]) _ Or [b1] < 1 Or [b2] > 12 Or [b2] < 1 Then MsgBox "Type Valid Numbers in cell(B1) & cell(B2)": Exit Sub End If ''''''''''''''''''''''''' End of Conditions for working'''''''''''''''''' r = 5 t = DateSerial([b1], [b2], 1) '''''''''''''''''''''''''Conditions for Special Day'''''''''''''''''' If Not IsNumeric([g1]) Or [g1] > Day(Application.EoMonth(t, 0)) _ Or [g1] < 1 Then [g1] = 1 Else [g1] = Int([g1]) End If '''''''''''''''''''''''''End of Conditions Special Day'''''''''''''''''' search_day = DateSerial([b1], [b2], [g1]) Arab_day = Array("الأحد", "الإثنين", "الثلاثاء", _ "الأربعاء", "الخميس", "الجمعة", "السّبت") ' EnG_day = Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") Range("b4").Resize(, 7) = Arab_day m = Weekday(t) + 1 For i = 1 To 31 Cells(r, m) = t If t = search_day Then Cells(r, m).Interior.ColorIndex = 3 Else Cells(r, m).Interior.ColorIndex = 35 End If If Month(t + 1) > [b2] Then Exit For t = t + 1 m = m + 1 col = Cells(r, m).Column If col > 8 Then r = r + 1: m = 2 Next Erase Arab_day End Sub الملف مرفق My_Calendar.xlsm
    3 points
  3. لجعل إدخال البیانات أكثر سھولة وللتحكم في القیم InputMask يمكنك استخدام الخاصیة التي يمكن أن يدخلھا المستخدمون في عنصر تحكم مربع النص. س 1: ماھي الطريقة التي أجعل المستخدم يدخل 4 أرقام في حقل رقم الھاتف أجبارياً وبدون مسافات أو أي أحرف أخرى ؟ ج: في خاصية قناع الإدخال ضع: 0000 س 2 :وإذا أردت أن أسمح بالمسافات أو ترك بعض الحقل فارغا بشرط أن لايزيد الإدخال عن 4 حروف ؟ ج: في خاصية قناع الإدخال ضع: 9999 س 3 :لقد حاولت بما ذكرته لي في الجواب السابق أن أضع بین الأرقام علامة + وعلامة – ولكن لم استطع فما ھي الطريقة في ذلك ؟ ج: في خاصية قناع الإدخال ضع: #### س 4 :ماسبق ھو في الأرقام ، ولكن كیف أجعل المستخدم يدخل أربعة حروف ولايسمح له بكتابة أقل من ذلك ؟ ج: في خاصية قناع الإدخال ضع: LLLL كبير ولايصح صغيراً. L يجب أن يكتب حرف س 5: ھذا واضح ، فما الطريقة لجعل إدخال الأحرف اختیارياً ؟ ج: في خاصية قناع الإدخال ضع: ???? س 6 :لكن لم تخبرني ھل يمكن في الحالتین السابقتین أن يدخل المستخدم أرقاماً مع الحروف ؟ ج: لا. س 7: إذن ما الطريقة إن احتجت لذلك ، ما أقصده أن يكون الإدخال حروف أو أرقام أو كلاھما ولكن إجباريا وعدد الأحرف أربعة ؟ ج: في خاصية قناع الإدخال ضع: AAAA كبيراً. A يجب أن تكتب حرف س 8: وإن أردت ما سبق اختیارياً ؟ ج: في خاصية قناع الإدخال ضع: aaaa س 9 :لكنه لم يسمح لي بإدخال مسافات في طريقة السؤال السابع ، ما أريده أن يكون الإدخال إجباريا يسمح بالأرقام والحروف والمسافات ؟ ج: في خاصية قناع الإدخال ضع: &&&& س 10 :وإن أردت السابق ولكن اختیارياً ؟ ج: في خاصية قناع الإدخال ضع: CCCC س 11 :عندي حقل نصي أسجل فیه كلمة سر ، وأريد أن تظھر الأحرف على شكل نجمة فما الطريقة ؟ ج: في خاصية قناع الإدخال ضع: Password س 12 :كیف أجعل الحروف المدخلة دائما كبیرة بواسطة قناع الإدخال ؟ ج: في خاصية قناع الإدخال ضع: >ثم بقية القناع ، مثال: '*>LLL*' س 13 :وإذا أردت الحروف صغیرة في كل الحقل ؟ ج: في خاصية قناع الإدخال ضع: >ثم بقية القناع ، مثال: <LLL س 14 : وإذا أردت القناع بعض الأحرف صغیرة وبعضھا كبیرة كیف أفعل ؟ ج: في خاصية قناع الإدخال ضع: >ثم بقية القناع ثم < ثم بقية القناع مثال: >LLL<LLLLL س 15 : كیف استطیع أن أغیر الحرف النائب الافتراضي _ الى حرف أو رمز آخر ؟ ج: في آخر القناع ضع الحرف النائب مكرراً ، مثال: لوضع = كحرف نائب اكتب: *>LL00000*\-0000;=;= س 16 :أريد بعض الأمثلة على قناع الإدخال ؟ ج : قناع الإدخال أمثلة القيم تعريف (000) 000-0000 (206) 555-0248 (999) 999-9999! (206) 555-0248 ( ) 555-0248 (000) AAA-AAAA (206) 555-TELE #999 -20 2000 >L????L?000L0 GREENGR339M3 MAY R 452B7 >L0L 0L0 T2F 8M4 00000-9999 98115- 98115-3007 >L<?????????????? Maria Pierre ISBN 0-&&&&&&&&&-0 ISBN 1-55615-507-7 ISBN 0-13-964262-5 >LL00000-0000 DB51392-0493 sk قناع الإدخال
    2 points
  4. السلام عليكم ورحمة الله بداية العملية ستكون صعبة لأنه أولا (وهو أهم شيء) يجب القيام بتحضير نموذج دقيق -ليس للنصوص الموجودة بل للفراغات التي سنقوم بملئها لاحقا- طبق الأصل لورقتك (يمكن استعمال الوورد في ذلك وأفضل أن يكون باستعمال الإكسيل -لأن الأعمدة والصفوف تساعد في ذلك كثيرا- مع إمكانية استعمال مربعات النصوص أو حتى TextBox) وهذه العملية يقوم بها من عنده نموذج الشهادة المرسلة إليكم لأن ذلك يعين في الحسابات الكثيرة التي تمكّن من تحضير النموذج المطلوب... ويبقى بعد ذلك تحضير قاعدة البيانات حسب الحقول التي نحتاجها لفراغات النموذج ثم بعد ذلك ربط قاعدة البيانات والنموذج بالمعادلات (في الإكسيل) أو باستعمال خاصية دمج المراسلات (في الوورد)... والله أعلم لا أستطيع أن أعينك أكثر باعتبار أن النموذج الأصلي للشهادة غير موجود عندي... بن علية حاجي
    2 points
  5. السلام عليكم و رحمة الله تعالى وبركاته أساتذة و خبراء منتدانا الغالي حياكم الله أردت أن أنجز عمل بمعيتكم الكريمة . و هو إنجاز سلسلة دروس في vba الأكسس لتقوم إدارة المنتدى من بعد ذلك بتثبيت هذا الموضوع ليطلع عليه كل من يريد التعلم و يبقى صدقة جارية لكل من ساهم فيه و لو بحرف واحد. العمل سوف يقسم إلى مجموعة دروس مثلا : المتغيرات ,الجمل الإختيارية , الجمل التكرارية , الكائنات ......الخ. و سوف نحاول شرح جميع دوال و تعليمات VBA أكسس الموجودة مع إعطاء أمثلة في نهاية كل درس. على أن يتم تجميعه في الأخير مرتبا حسب تسلسل الدروس و لا يتم الإنتقال من درس لآخر حتى نستوفي كل ما نستطيع حول هذا الدرس. العمل المطلوب: كلما نبدأ في درس جديد. يقوم الأساتذة الكرام بتقديم الدوال و التعليمات التي تندرج تحت عنوان هذا الدرس و تقديم شرحها مع وضع مثال بسيط لإستعمال الدالة أو التعليمة على أن لا يتم تكرار الدوال و التعليمات الموجودة مسبقا في الدرس من قبل أحد الأعضاء. و قبل البدء أنتظر إقتراحاتكم فيما يخص طريقة العمل أو ترتيب دروس و عناوينها. و إن شاء الله غدا أو بعد غد سوف نبدأ بالعمل على بركة الله.
    1 point
  6. السلام عليكم ورحمة الله وبركاته كنت بصدد عمل برنامج " دليل هاتف " فصادفتني بعض المشاكل باستخدام القوائم فأردت عمل شئ من التغيير في استعمال القوائم حتى هداني الله الى فكرة بأستخدام الاكواد والحمد لله انجزتها ولكنها تبقى في بدايتها وامكانية تطويرها واردة واحببت ان اشارككم بها لعل اجد من ارائكم بعض الامور التي قد تفيد بهذا الشأن هنا ملف يحتوي على صفحة من البرنامج مع احتوائه على القائمة المذكورة اخوكم عماد الحسامي
    1 point
  7. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته أسعد الله أوقاتكم أحبتي في الله اليوم هديتي لإدارة ومشرفي وأعضاء وزوار منتدانا الرائع هدية كبيرة الحجم قليلا (فأنا معروف بسلسلة ما خف وزنه وغلا ثمنه "الماس" ) برنامج أوفيس 365 وهو تحديث أوفيس 2016 بأحدث إصدار 16.0.8431.2110 بصيغة img وهي مثل iso تحميل مباشر من موقع ميكروسوفت (يعني أصلية ومش ملعوب فيها) ويوجد روابط اللغتين اللغة العربية O365ProPlusRetail_ar.img واللغة الإنجليزية O365ProPlusRetail_en.img حجم الاسطوانة الوهمية img حوالي 2.5 جيجابايت والآن مع روابط التحميل اللغة الإنجليزية http://swiftation.com/9612849/mso365en2018 اللغة العربية http://swiftation.com/9612849/mso365ar2018 وفي الأخير لو بخل بهذه المعلومة غيرك ما وصلت إليك فلا تبخل على غيرك بما عرفت وشارك هذه الصفحة قدر استطاعتك فلا خير في كاتم علم ولا ينقصني سوى دعاؤكم لي بالخير في الدنيا والآخرة
    1 point
  8. بارك الله فيك أخي ابو ياسين اعتذر منك الخطاء كان من عندي زادك الله من علمه ونفع بك جزاك الله الف خير
    1 point
  9. الله يجزيك خير استاذي ابو ياسين هو المطلوب الف شكر اليك استاذي الكريم والشكر موصول لكل من سعى جاهدا لمساعدتي الف تحيه اليك يابو ياسين شكرا
    1 point
  10. ما شاء الله إبداع أخي سليم وخاصة التأكد من قيم الخلايا التي يدخلها المستخدم وفقنا الله وإياكم لكل ما يحب ويرضى
    1 point
  11. هناك العديد من البرامج سأرسل لك الأن مجموعة منهم وكلمة السر هى :123 برنامج شئون الموظفين.rar وهذا برنامج أخربرنامج شؤون الموظفين.rar
    1 point
  12. اتفضل اخي ابو زاهر Dim i As Integer Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount rst.MoveFirst Forms![frmSales].SetFocus Forms![frmSales]![SubSales].SetFocus For i = 1 To RC Me.Refresh If rst!Xsave = True Then DoCmd.GoToRecord , , acNewRec Forms![frmSales]![SubSales]![رقم_الصنف] = rst!Rajmsanf Forms![frmSales]![SubSales]![ID_Sanf] = rst!ID_Sanf Forms![frmSales]![SubSales]![Alkmiah] = rst!Alkmiah Forms![frmSales]![SubSales]![Price] = DLookup("[Price_Sales]", "Alsnaf", "[Rajmsanf]= Forms![frmSales]![SubSales]![رقم_الصنف] ") Forms![frmSales]![SubSales]![mjmo] = rst!mjmo ' Forms![frmSales]![SubSales]![safi] = rst!safi Forms![frmSales]![SubSales]![Adfah] = rst!Adfah Forms![frmSales]![SubSales]![Nwaha] = Me.n3 End If rst.MoveNext Next i rst.Close: Set rst = Nothing ' Dim rst As DAO.Recordset Set rst = Forms!frmSales!SubSales.Form.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount T = 0 'Total D = 0 'Discount For i = 1 To RC rst.Edit rst!mjmo = rst!Alkmiah * rst!Price rst!safi = rst!Alkmiah * rst!Price * (1 - Forms!frmSales!Percentage_Discount) T = T + (rst!Alkmiah * rst!Price) D = D + (rst!Alkmiah * rst!Price * Forms!frmSales!Percentage_Discount) rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing DoCmd.RunCommand acCmdSaveRecord Forms!frmSales!n1 = T Forms!frmSales!Alhasm = D Forms!frmSales!n2 = T - D Rajmsanf.SetFocus Call Form_frmSales.Percentage_Discount_AfterUpdate DoCmd.Close acForm, "ARD"
    1 point
  13. اخي الكريم ..السلام عليكم الاستاذ محمد يقصد ان تقوم بطلب مطلوبك في قسم الاعلان اي قسم البرامج المدفوعة يعني تعلن انك تريد برنامج كذا وكذا وتضع بيانات للتواصل مثل ايميلك ورقم موبيلك حتي يتواصل معك المبرمجين اما اذا كنت ان تريد تنفيذ مطلبك بنفسك فابداء انت بانشاء البرنامج واذا وقف امامك شئ اعرضه هنا بالتفصيل حتي يتمكن السادة الاعضاء من الرد عليك واجابتك تحياتي لك
    1 point
  14. الحمدلله هذه أكبر معضلة تقول أنه الجهاز قرأ رقم البطاقة . إذن الأن تحتاج لبرنامج أكسل لجمع ما تريد من بيانات اولا : تحتاج لنقل بيانات كل الطلاب مع أرقام أكوادهم من برنامج الباركود إلى البرنامج الجديد الذي سنتم تصميمه انتظرني
    1 point
  15. تفضل ضع هذه المعادلة في الخلية الصفراء =COUNTIFS($F$9:$F$157;">="&"0.5";F9:F157;"<="&"0.65") او هذه =COUNTIFS($F$9:$F$157,">="&"0.5",F9:F157,"<="&"0.65")
    1 point
  16. مشكور بو ياسين ماقصرت تستاهل ميه لايك لكن اعطني الرابط من وين اعمل لايك؟ يعطيك العافيه
    1 point
  17. الاخ شفان المحترم السلام عليكم اشكرك الشكر الجزيل لقد عملت على نفس الكد المكتوب من جنابكم مسبقا وبسبب زيادة بسيطة لم ينجح اما بعد التعديل منكم ادركت خطأي شكراً للمساعدة
    1 point
  18. السلام عليكم النقطة الاولي ممكنة و لكن تحتاج لبعض الوقت للتجارب ، و ساحاول فيها بعد عدة ايام باذن الله ، و الثانية ايضا ممكنة و باذن الله احاول اضافتهما الي المثال قريبا
    1 point
  19. 1 point
  20. السلام عليكم الحل في الملف المرفق Copy Data From File to other.rar
    1 point
  21. If Me.T1 <> T2 Then MsgBox ("لايمكنك الحفظ !! القيد غير متوازن") Me.Undo Else If MsgBox(" هــل تـريـد الحفظ والاستمرار " & vbCrLf & "", vbYesNo, " تنبية ") = vbYes Then DoCmd.Save On Error GoTo BCC Dim Q As Recordset Set Q = CurrentDb.OpenRecordset("SELECT * from Bills where mz = false;") While Not Q.EOF Q.Edit Q!MZ = True Q.Update Q.MoveNext Wend DoCmd.GoToRecord , , acNewRec no.SetFocus ACC: Exit Sub BCC: Resume ACC End If End If
    1 point
  22. السلام عليكم الحفظ التلقائى سببه انه النموذج منضم Bound ولحل المشكلة يجب جعل النموذج غير منضم وعمل زر لالحاق البيانات بالجدول المطلوب ... والله اعلم
    1 point
  23. 1 point
  24. تفضل لاحظ انه يحذف جميع الملفات ويبقي على أحدث 3 ملفات فقط x.rar
    1 point
  25. اتفضل اخي ولاتنسا تضغط لايك هههههه Test10.rar
    1 point
  26. اتفضل اليك هذا Private Sub Owner_Company_AfterUpdate() Me.Invoice_No = Nz(DMax("[Invoice_No]", "[New_Invoice]", "[Owner_Company]='" & Me.Owner_Company & "'"), 0) + 1 End Sub 13 - Copy.zip
    1 point
  27. هذا الكود Sub DEl_H() Dim My_rg As Range, Lh As Long, i As Long Lh = Cells(Rows.Count, "H").End(3).Row If Lh < 3 Then Exit Sub Set My_rg = Range("h2:h" & Lh) For i = Lh To 2 Step -1 If Cells(i, "H") = vbNullString Then _ Cells(i, "H").EntireRow.Delete Next End Sub
    1 point
  28. الاخ سلمان كنت تعطينا الملف بالقطارة ..كنت اتمنى الملف كامل من البداية جرب الاستعلام التالي كمصدر للتقرير SELECT TB_conform.Date1, TB_conform.tem, TB_conform.ser FROM TB_conform WHERE ((([Date1] & " " & [tem]) Between CDate([Forms]![FM_report]![text1] & " " & [Forms]![FM_report]![Time1]) And CDate([Forms]![FM_report]![text2] & " " & [Forms]![FM_report]![Time2]))); بالتوفيق
    1 point
  29. الجملة if: الشكل العام: If condition then Begin : End; مثال: وبإضافة Else يصبح الشكل العام كالتالي: If condition then Begin : End Else Begin : End; ملاحظة: يجب عدم وضع الفاصلة المنقوطة في السطر قبل Else مثال: var x:real; begin x:=StrToFloat(InputBox('أدخل المعدل','','')) ; if x>=10 then begin ShowMessage('ناجح') ; end else begin ShowMessage('راسب'); end عند تنفيذ البرنامج تضهر نافذة تطلب منك إدخال المعدل إذا كان المعدل أكبر من 10 تظهر رسالة ناجح و إذا كان المعدل أصغر من 10 تظهر رسالة راسب
    1 point
  30. السلام عليكم عذا لم انتبه لردك مبدأيا لتصدير كافة اوراق العمل و ليس الاولي فقط الكود بالفعل يحتاج سطر اضافي و هو السطر الثاني التالي هنا ، و اضفه بعد السطر الاول الموضح و باذن الله يتم حفظ كافة اوراق العمل دون تكرار For Each wsh In wbk.Worksheets wsh.Activate بالنسبة لاختيار تصدير ال pdf ام لا يمكن عمل ذلك عن طريق نموذج او رسالة تجيب عليها بنعم او لا و يمكنك عمل نسخة من الكود للاستبدال فقط دون تصدير الpdf وذلك بحذف الحزء التالي ShFile = strPath & Left(wbk.Name, Len(wbk.Name) - 4) & Sheetcounter & "-" & wsh.Name ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ShFile _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=False او تفعيل رسالة للسؤال هل تريد الطباعة ام لا كما يلي كابسط الطرق اولا عرف المتغير PrintOrnot مع تعريفات المتغيرات فى بداية الكود ثم السؤال هل تريد الطباعة ام لا Dim PrintOrnot As String ' to choose print pdf or not PrintOrnot = UCase(InputBox("Print PDFs ??? ", "Do you want to print ?", "yes")) ثم اضف شرط قبل الطباعة بناء على قيمة المتغير السابق و ستم الطباعة فقط فى حال الاجابة على السؤال السابق ب yes If PrintOrnot = "YES" Then ShFile = strPath & Left(wbk.Name, Len(wbk.Name) - 4) & Sheetcounter & "-" & wsh.Name ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ShFile _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=False End If مرفق الملف بعد التعديل Replacer -5.xlsm
    1 point
  31. السلام عليكم أخي محمد جرب الكود بهذه الطريقة غير به ما تحتاج حسب حاجتك: Dim i As Integer For i = 1 To Me.t4 DoCmd.RunSQL "INSERT into tbl(id, nn, ff) VALUES (" & Me.hh.Form![id] + i & ",'" & Nz(Me.hh.Form![t2], "") & "'," & Me.hh.Form![t3] & ");" Next i Me.Refresh و هذا المرفق يوضح ذلك tt.rar
    1 point
  32. السلام عليكم الخطأ فعلا كما اشار أبو عيد هو فى النص والتاريخ كالتالى اولا القيمة الموجودة فى الخلية H48 لا تعبر عن تاريخ وهي غير متوافقة مع ما سبقها فى الجدول من فواصل التاريخ الرجاء مراجعة اعدادات الجهاز او كتابة التاريخ بنفس ما سبقة من فواصل ثانيا انت تحاول استعمال دالة روابط النص لتجميع التواريخ فإذا قمت باستعمال هذة الدالة بعد التعديل الى صيغة التاريخ سوف تستعمل الدالة التاريخ المبلادى - لذلك قمت بتعديل المعادلة فى الخلية I48 الى معادلة حسابية بفرض ان السنة الهجرية تساوى 354.367056 يوم وهى ... تاريخ اخر دفعة = تاريخ اول دفعة + (عدد الاقساط -1) * 354.367056/12 H48+ROUND((D48-1)*354.367056/12,0) المعادلة السابقة تعطى نتائج قد تفرق حسابيا يوم او بعض الكسور من اليوم فمثلا قد تجد اول قسط يوم 25 واخر قسط يوم 24 او 26 لذلك قمت باضافة الفرق فى الايام الى ناتج المعادلة بتحويل التاريخ الى نص ثم حساب الفرق بين التاريخين (لتفادى ان الاكسل يتعامل فى معادالات التاريخ بالتقويم الميلادى فقط ) وبالتالى اضافة هذا الفرق MID(TEXT(H48,"b2dd.mm.yyyy"),1,2)-MID(TEXT(H48+ROUND((D48-1)*354.367056/12,0),"b2dd.mm.yyyy"),1,2) المعادلة بالكامل للسطر 48 هى كالتالى =H48+ROUND((D48-1)*354.367056/12,0) + MID(TEXT(H48,"b2dd.mm.yyyy"),1,2)-MID(TEXT(H48+ROUND((D48-1)*354.367056/12,0),"b2dd.mm.yyyy"),1,2) وللتأكد من صحة المعادلة قمت بتطبيقها على الجدول بالكامل ومقارنة النتائج بتلك المحسوبة يدويا فى السابق وفعلا تطابقت التواريخ ما عدا السطر رقم 31 فيوجد به خطأ فى الاصل مرفق طيه الملف تلوين بشرط ...1.zip
    1 point
  33. السلام عليكم ورحمة الله تفضل الملف المرفق حيث تم إضافة معادلات (صفيف) التي في العادة تبطئ عمل الملف إذا كانت البيانات كثيرة جذا. يمكن عمل ذلك بمعادلات بسيطة لكن باستعمال عمود مساعد... بن علية حاجي مثال.rar
    1 point
  34. الــدرس الرابع: الجملة الشرطية ( IIF ) ( لقد قام أستاذي و أخي جعفر حفضه الله بتقديم هذا الدرس كله و أنا لم أفعل شيء سوى التنسيق و النشر فاللهم جازيه عنا خير الجزاء يا رب العالمين) طريقة استعمال ((iif: iif(expr, truepart, falsepart) iif(القيمة المطلوب تقييمها, اذا كان التقييم صح فستأخذ هذه القيمة, اذا كان التقييم خطأ فستأخذ هذه القيمة) مثال: Age=50 Age_Now = iif(Age=50 , "Yes it is", "No it is not") ميزاتها: نستطيع استعمالها في الكود ، والاستعلام نستطيع ان نضع اكثر من شرط واحد فيها مثال: Price=10 Qty=5 Sale_is= iif(Price* Qty = 50 , "Low sale", iif(Price * Qty = 100 , "Middle sale" , "Big sale")) عيوبها: الدالة تختبر جميع الحالات ، ولا تختبر القيمة الاولى وتخرج (مثل الـ IF): 1. المثال السابق ، مع ان اول تقييم هو الجواب الصحيح 10*5=50 ، إلا ان الدالة ستقوم بتقييم جميع الاختيارات ، مما يجعلها تأخذ وقت اطول للتقييم ، 2. بسبب اختبارها لجميع الحالات ، فيجب ان نكون دقيقين في وضع التقييم ، مثلا اذا اردنا اختبار قيمة مثال: Divide = iif(n2 = 0, MsgBox("القيمة صفر"), MsgBox(n1 / n2)) فاننا سنحصل على خطأ ، لأن الدالة تحققت من القيمتين ، والقيمة الثانية هي تقسيم رقم على صفر ، 3. بطيئه نوعا ما ، لأنها تحول الارقام الى Variant (رجاء مراجعة الدرس الاول للأخ صالح) ، ثم تقوم بالحساب ، 4. لا تستطيع ان تستخدم اكثر من 7 شروط في الاستعلام ، مثلا عندنا ارقام الاشهر ونريد نستخرج اسمائها ، 5. ببساطة مكن ان تخطأ في عدد الاقواس والفواصل ، 6. لا تستطيع قراءة ولا تغيير اي شئ بسهولة ، وخصوصا اذا كان عندنا اكثر من تقييم ، امثلة عملية: 1. اذا عندنا ارقام الاسبوع ، ونريد ان نستخرج ايامها ، فاذا عملنا الكود في الاستعلام مباشرة ، فسيكون صعب ، لذا ، فالطريقة التي اعملها انا هي: أ‌- عمل الكود في محرر VBA ، هكذا: لاحظ اني عملت اول شرط ونتيجة القيمة الصحيحة ، ثم انهيت السطر بخط سفلي _ (واللي معناه في البرمجة ان الكود سيتواصل في السطر التالي ، ثم انتقلت السطر التالي ، ونفس الشئ ، عملت الشرط التالي ونتيجة القيمة الصحيحة و.... كما سبق و... الى ان نوصل للسطر الاخير ، فوضعت الشرط الاخير ونتيجة القيمة الصحيحة والخطأ ، ثم حسبت كم قوس مفتوح ، فقفلت بنفس عددها: iDay = 2 Today_is = IIf(iDay = 1; "Sun"; _ IIf(iDay = 2; "Mon"; _ IIf(iDay = 3; "Tue"; _ IIf(iDay = 4; "Wed"; _ IIf(iDay = 5; "Thu"; _ IIf(iDay = 6; "Fri"; "Sat")))))) ب- والخطوة التالية ان نجعلها في سطر واحد ، حتى نأخذها للإستعلام ، وهي ان نحذف الاشارة _ ، لتكون النتيجة Today_is = IIf(iDay = 1; "Sun"; IIf(iDay = 2; "Mon"; IIf(iDay = 3; "Tue"; IIf(iDay = 4; "Wed"; IIf(iDay = 5; "Thu"; IIf(iDay = 6; "Fri"; "Sat")))))) . هكذا . 2. اذا عندنا سجلات الصف الاول والثاني ، واردنا معرفة عدد الطلاب لكل صف: iif([Section]= "A" ; 1;0) وهكذا تكون في الاستعلام: 3. اذا عندنا اكثر من 7 شروط (ارقام الاشهر نريد تحويلها الى اشهر) ، فهنا نضطر الى عمل وحدة نمطية: Function What_Month(M) Select Case M Case 1 What_Month = "Jan" Case 2 What_Month = "Feb" Case 3 What_Month = "Mar" Case 4 What_Month = "Apr" Case 5 What_Month = "May" Case 6 What_Month = "Jun" Case 7 What_Month = "Jul" Case 8 What_Month = "Aug" Case 9 What_Month = "Sep" Case 10 What_Month = "Oct" Case 11 What_Month = "Nov" Case 12 What_Month = "Dec" End Select End Function ونرسل لها ارقام الاشهر ، هكذا . والنتيجة
    1 point
  35. الدرس الثالث: الدالة Select Case تشبه الدالة Select Case إلى حد كبير الدالة If و لكنها تختلف عنها بالتعدد أي أنها تكون في الشروط المتعددة. طريقة الاستعمال: الصيغة الأولى: Select Case Expression Case Expression_1 Statement_1 Case Expression_2 Statement_2 Case Expression_n Statement_n End Select تقوم الدالة Select Case باختبار حالة الكائن أو المتغير Expression و مقارنتها أو مطابقتها مع الحالات الموجودة بداخلها. و عند تحقق الشرط مع إحدى الحالات يقوم البرنامج بتنفيذ التعليمة Statement التابعة لهذه الحالة. و عند عدم مطابقة الكائن أو المتغير لجميع الحالات فإن البرنامج لا يعطينا أي نتيجة. مثال1: كتابة الأرقام من 1 إلى 4 بالحروف Select Case me.le_nombre Case 1 Me.y = "واحد" Case 2 Me.y = "إثنان" Case 3 Me.y = "ثلاثة" Case 4 Me.y = "أربعة" End Select أضفنا مربع نص اسمه le_nombre لإدخال الأرقام و مربع نص اسمه y من أجل ظهور النتيجة. الصيغة الثانية: Select Case Expression Case Expression_1 Statement_1 Case Expression_2 Statement_2 Case Expression_n Statement_n Case Else Other_statement End Select في هذه الصيغة عند عدم تحقق الشرط مع جميع الحالات يتم إرجاع التعليمة الإستثنائية Other_statement مثال2: نفس المثال الأول Select Case me.le_nombre Case 1 Me.y = "واحد" Case 2 Me.y = "إثنان" Case 3 Me.y = "ثلاثة" Case 4 Me.y = "أربعة" Case Else me.y = "هذا الرقم غير موجود" End Select هذا عندما نضيف أي رقم يختلف عن 1 أو 2 أو 3 أو 4 يطبع لنا "هذا الرقم غير موجود" مثال 3: برنامج كتابة ملاحظات التلاميذ حسب الدرجة Select Case Me.Degre Case 0 To 30 Me.y = "ضعيف" Case 30 To 49 Me.y = "دون الوسط" Case 50 To 69 Me.y = "مقبول" Case 70 To 89 Me.y = "جيد جدا" Case 90 To 100 Me.y = "ممتاز" Case Else Me.y = "هذه الدرجة خاطئة" End Select هنا إستخدمنا To معناه إلى مثلا: من 0 إلى 30
    1 point
  36. ماشاء الله عليك اخوي صالح ، كفيت ووفيت ، وما بقيت لي شئ اكتبه التنسيق: وذلك بإستخدام زر الـ Tab (لتحريك السطر Indenting) ، و زر Enter (للإنتقال الى السطر التالي) تنسيق وتجميع مجموعات اللـ IF مهم ، وكلما كان تنسيقك افضل ، كلما قلّت اخطاءك ، وكلما استطعت الوصوت للخطأ بسرع في الصور كود لبرنامج أحد الاعضاء (واعتذر مسبقا من صاحب الاكواد) ، لاحظ طريقة عرض الكود ، بدون تنسيق ، وصعوبة معرفة بداية ونهاية الشرط IF : قبل التنسيق وسهولة القراءة بعد التنسيق . اما الكود التالي ، فذكرني بالكاريكاتير "ابحث عن فضولي" ، وهنا نبحث عن بداية ونهاية الشرط IF : . وتم تعديل التنسيق (تغيير الكود هو للتوضيح) الى: . هناك شيئين في التنسيق ، الاول: لاحظ انه من السهل معرفة بداية ونهاية كل شرط ، وحتى الشروط المتداخلة في الشرط الاصلي ، اصبح من السهل معرفة بدايتها ونهايتها ، ونافذة الكود تخبرنا 1: على اي سطر نحن (Line, Ln) ، و 2: في اي عمود (Column, Col) ، مما يساعدنا في عملية التنسيق . ثانيا: لاحظ اني عندما اقفل الجملة الشرطية End If ، فاني اكتب تعليق خلفها ، وهذا التعليق مأخوذ من جزء من بداية الشرط IF ، هذا يسهل عليّ كثيرا معرفة بداية ونهاية الجملة الشرطية: . جعفر
    1 point
  37. مثال على استعمال And: If UserName="أبو خليل" And Password=2017 Then MsgBox"مرحبا أستاذ أبو خليل" End If في هذا المثال إذا كان اسم المستخدم هو أبو خليل و كلمة المرور هي 2017 سوف يقوم البرنامج بعرض رسالة ترحيبية MsgBox"مرحبا أستاذ أبو خليل" و إذا إختل أحد الشرطين فلن يتم تنفيذ التعليمة. يعني لتنفيذ التعليمة يجب تحقق الشرطين في نفس الوقت. مثال على استعمال Or: If Died_Father=true Or Died_Mother=False Then MsgBox "يتيم" End If في هذا المثال يكفي تحقق أحد الشرطين ليتم تنفيذ التعليمة (رسالة تخبرنا بأن هذا الشخص يتيم) و إذا تحقق الشرطين معا أيضا يتم تنفيذ التعليمة إذا هناك شخص أبوه متوفي فهو يتيم و إذا كانت أمه متوفية فهو يتيم و إذا كان كلا والديه متوفيين فهو أيضا يتيم. ((((((اللهم أرحم جميع موتى المسلمين يا أرحم الراحمين يا رب العالمين))))))
    1 point
  38. الــدرس الثاني : الجملة الشرطية ( IF ) تعتبر الجملة IF من أشهر الجمل الشرطية و أكثرها استعمالا في جميع لغات البرمجة ولها عدة صيغ كلها تبدأ بــIf و تنتهى بكلمة End If ما عدى صيغة واحدة. وتستخدم الجملة IF لتنفيذ عمليات معينة حسب شرط محدد, يعني إذا تحقق الشرط ينفذ و إلا فلا. طرق استعمال الجملة ((if: 1- الصيغة ( If –Then ) : - وصيغتها العامة : IF condition THEN statements - ومعنى هذه الصيغة : انه اذا تحقق الشرط (condition ) فسيتم تنفيذ الامر ( statements ) مثال : " مسن" IF age >=65 THEN category = 2- الصيغة ( If – Then – End If ) : صيغتها العامة : IF condition THEN statements1 Statements2 END IF تقوم هذه الصيغة بتنفيذ مجموعة من الاوامر اذا تحقق الشرط (Condition) بدلا من تنفيذ امر واحد. مثال : If age >= 25 Then category ="شباب" travail ="السن مقبول" End if 3- الصيغة ( If – Then – Else ) : صيغتها العامة : If condition Then statements1(التعليمات المنفذة في حال تحقق الشرط ) Else statements2(التعليمات المنفذة في حال عدم تحقق الشرط) End If - هذه الصيغة تنفذ مجموعة الأوامر (statements1 ) عندما يتحقق الشرط (condition ) و عندما لا يتحقق الشرط فإنها تنفذ مجموعة الأوامر (Statements2). مثال : If grade >= 50 Then Text1 ="ناجح" Else Text1 ="راسب" End If 4- الصيغة ( If – Then –ElseIf ) : - صيغتها العامة : If condition1 Then statements1( التعليمات المنفذة في حال تحقق الشرط الأول) ELSEIF condition2 THEN statements2(التعليمات المنفذة في حال عدم تحقق الشرط الأول و تحقق الشرط الثاني) ELSE statements2(التعليمات المنفذة في حال عدم تحقق جميع الشروط السابقة) End If مثال : If grade >= 90 Then Text1 ="ممتاز" ElseIf grade >= 80 Then Text1 ="جيد جدا" ElseIf grade >= 70 Then Text1 ="جيد" ElseIf grade >= 60 Then Text1 ="مقبول" Else Text1 ="راسب" End If ملاحظات: - في الصيغة الأخيرة ( If – Then –ElseIf ) اذا تحقق احد الشروط فان البرنامج ينفذ العملية ثم يذهب الى نهاية الجملة و لا يتحقق من الشروط الباقية. - في حالة أردنا إستعمال شرطين معا أو أكثر نستعمل العبارة And. - في حالة أردنا تحقق أحد شرطين ليتم تنفيذ العملية نستعمل Or
    1 point
  39. أحد الشروط التي التزم بها دائما ، هي كتابة اسم متغير مفهوم وله معنى ، مثلا: File_Name او How_Many ، بحيث بعد مدة لما أرجع لتصحيح الكود ، افهم ما هو عمل المتغير. والمحترفين يذهبون إلى ابعد من هذا ، فبالاضافة إلى استعمالهم مسمى مفهوم المعنى ، فإنهم يسبقون الاسم بحروف تدل على ان المتغير رقم أو كلمات ، هكذا: للارقام: intRows او nColumns ، وللكلمات: strName. واستغرب من بعض المتغيرات المستعمله في كود معقد مثل: a او b !! جعفر
    1 point
  40. طرق استعمالها: 1. اذا اردنا استعمال المتغير في الحدث / الوحدة النمطية فقط (يعني لا يمكن اخذ قيمتها من نماذج/تقارير/استعلامات/وحدات نمطية اخرى) ، فنستخدم: Dim UserName as string او Private UserName as string ويجب ان نستخدم Dim لكل حدث في النموذج/التقرير ، اي نعيد كتابته لكل حدث ، بينما يمكننا ان نضع Dim / Private مرة واحدة في اعلى الصفحة ، ولا تكون داخل اي حدث ، هكذا Option Compare Database Private User_Name As String 2. بينما اذا اردنا ان تكون القيمة متوفرة في جميع كائنات البرنامج ، فنستخدم التالي في وحدة نمطية (حتى ولو كانت وحدة نمطية فارغة): Public UserName as string مثال هذا ، عندما تستعمل نموذج المستخدمين ، ثم تريد الاحتفاظ باسم المستخدم في الكود ، فكل الذي تعمله هو: UserName = "jjafferr" ثم من اي مكان في البرنامج تستطيع ان تستعمل هذا المتغير UserName ، مثلا: User_Prevliage = iif(UserName = "jjafferr" , "Admin", "User") . ويمكننا ان نجعل الكود لا يعمل إلا بتعريف المتغير ، وفي الواقع هذه صعبة في البداية ، ولكن في النهاية سيكون برنامجك افضل ، وهكذا نجعل الكود يفرض علينا استعمال المعرف: . . واهمية هذه الخطوة هي عندما تريد ان تحفظ البرنامج لاحقا بصيغة mde او accde ، فيجب عليك ان: . واذا كانت المتغيرات في الكود معرّفة ، فلن تحصل على اخطاء في التحويل جعفر
    1 point
  41. على بركة الله نبدأ أول درس و ننتظر ملاحظاتكم حول أي شيء نسيته و هو متعلق بهذا الدرس أو أي معلومة أخطأت بها: الــدرس الأول : المتغيرات تعتبر المتغيرات النواة الأساسية أو حجر الأساس بالنسبة لكل برنامج في أي لغة برمجة كانت. يعني قبل البدأ يجب أن تقوم بتعريف المتغيرات التي تحتاجها و تحدد نوعها قبل كل شيء. 11- أنواع المتغيرت: هناك العديد من أنواع المتغيرات و كل نوع يخصص له حجم معين في الذاكرة. سوف نقوم بإضافة شرح جميع أنواع المتغيرات و الحجم الذي يأخذه كل نوع من الذاكرة: String: نص يتسع المتغير النصي إلى 2 جيجا بايت و كل حرف يشغل 1 بايت Boolean: ياخذ نوعين من القيم True و False (طوله 2 بيت ) Byte: بايت يكون رقم بين 0 من 255 (طوله 1 بايت) Integer : عدد صحيح (طوله 2 بيت ) قيمته من 32768- إلى 32767 Long : عدد صحيح طويل (طوله 4 بيت) قيمته من 2,147,483,648- إلى 2.147.483.647 Signal: عدد عشري (طوله 4 بيت) قيمته من 3.402823x1038- إلى 1.401298x10-45- للقيم السالبة و من 1.401298x10-45 إلى 3.402823x1038 للقيم الموجبة Currency: عملة (طوله 8 بيت) قيمته من 922،337،203،685،477.5808- إلى 922،337،203،685،477.5807 Double : مزدوج عدد عشري (طوله 8 بيت) قيمته من 1.79769313486231x10308- إلى 4.94065645841247x10-324- للقيم السالبة. و من 4.94065645841247x10-324 إلى 1.79769313486232x10308 للقيم الموجبة Date: نوع البيانات تكون على شكل تاريخ (طوله 8 بيت) يبدأ تاريخ vba من 1/1/100 حتى 31/12/9999 Object : لتخزين الكائنات التي تحتوي على خصائص و وظائف و يتم تعيينه بجملة set ويشغل في الذاكرة 4 بايت أو حسب خصائص و وظائف الكائن المحدد. و سوف نخصص درس لعرض أنواع الكائنات. Variant : لتخزين كل الأنواع السابقة ويمكن تخزين المصفوفات بداخله أيضاً 2- طريقة الإعلان عن المتغيرات: الإعلان عن متغير يعني حجز مكان في ذاكرة الكمبيوتر باسم هذا المتغير و يحدد حجمه حسب نوع المتغير. و يتم تعريف المتغير أو الإعلان عنه بواسطة العبارة DIM . مثال: Dim A as Integer للإعلان عن أكثر من متغير: Dim a,b as integer للإعلان عن أكثرمن متغير لأنواع مختلفة في نفس السطر: Dim A As Double, B As Integer 3- ملاحظات: - - يفضل الإعلان عن نوع المتغير لزيادة سرعة التعامل معه . - - المتغيرات التي لم تحدد نوعها يعمل فيجول بيسك علي الإعلان عنها تلقائيا من النوع Variant وهو أبطأ أنواع المتغيرات . - - بالنسبة للإعلان عن أكثر من متغير من نفس النوع بالطريقة التالي: Dim a,b as integer هنا b فقط من النوع integer أما a فهو في هذه الحالة يعتبر من النوع Variant يجب أن يتم التعريف بهذا الشكل: Dim a integer,b as integer أو Dim a as Integer Dim b as Integer 4- شروط تسمية المتغيرات: - - اسم المتغير يجب أن يبتدأ بحرف . - - يمكن استعمال الحروف التي تلي الحرف الأول رقم أو حرف أو الإثنين معا. - - لا يجب أن تكون هناك فراغات بين أسماء المتغير و يمكن استعمال الشكل التالي: id_user - - يجب عدم استعمال نقطة أو رمز خاص مثل ( ؟ ، * ، ) ، ( ، /......... إلخ ) ولكن يمكن استخدام الشرطة السفلية ( _ ) - - أن لا يكون اسم المتغير من الكلمات المحجوزة في الأكسس.
    1 point
×
×
  • اضف...

Important Information