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

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

  1. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      16

    • Posts

      3,491


  2. رمهان

    رمهان

    الخبراء


    • نقاط

      11

    • Posts

      2,390


  3. عبد الفتاح كيرة

    • نقاط

      8

    • Posts

      3,015


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      6

    • Posts

      12,210


Popular Content

Showing content with the highest reputation on 18 مار, 2017 in all areas

  1. شكرا لك @ابوخليل حقا انت مراقب وشخص طيب وعبقري وشكرا على الاجابة شكرا لك @عبد الفتاح كيرة على طرح هذه الموضوع وعلى اجابة عليه يا عبقري شكرا لك @رمهان على الاجوبة بطريقة اخرى حقا انت عبقري انتم كبرائنا ونستفيد منكم شكرا لكم جميعا على مشاركتكم حقا انا استفيد من كل حرف انتم كتبتم في هذه الموضوع تحياتي اخوكم الصغير شفان ريكاني
    3 points
  2. اذا تريد ان تضع نصف دائرة ما عليك الا ان تضيف في كودك ( ,,3 ) اي يعني راح يكون هكذا Me.Circle (Me.Text0.Left + (Me.Text0.Width / 2.4), Me.Text0.Top + (Me.Text0.Height / 2.2)), 330, , 3 لكن انتبه لازم تتغير وضع شرط ئيف اي تنطي شرط اذا اقل من 25 ضيف في الكود السابق و غير شرط اذا اقل من 50 الى اقل من 50 و اكبر من 25 تحياتي
    2 points
  3. تفضل أخى رمهان هذا الفيديو لك على نفس الملف المرفوع
    2 points
  4. اولا يبدو ان المشكلة في expr1 وليس expr2 والمظلل بالاحمر ثانيا هات المرفق اخي حسين
    2 points
  5. هنا عند التعامل مع الجت عن طريق المكتبات وليس الاكسس يتم تعريف الباراميتر عن طريقة خاصية الباراميتر للكائن الاستعلام جرب التالي Private Sub ÃãÑ2_Click() 'Step 1: Declare your variables Dim MyDatabase As DAO.Database Dim MyQueryDef As DAO.QueryDef Dim MyRecordset As DAO.Recordset Dim i As Integer 'Step 2: Identify the database and query Set MyDatabase = CurrentDb Set MyQueryDef = MyDatabase.QueryDefs(Me.allq.Column(1)) 'Query name in the database 'Step 3: Open the query 'DoCmd.OpenQuery Me.allq.Column(1) MyQueryDef.Parameters(0) = Forms![frmEdite]![TelID] Set MyRecordset = MyQueryDef.OpenRecordset 'Step 4: Clear previous contents Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") With xlApp .Visible = True .Workbooks.Add ''.Sheets("æÑÞÉ1").Select 'Step 5: Copy the recordset to Excel .ActiveSheet.Range("A2").CopyFromRecordset MyRecordset 'Step 6: Add column heading names to the spreadsheet For i = 1 To MyRecordset.Fields.Count xlApp.ActiveSheet.Cells(1, i).Value = MyRecordset.Fields(i - 1).Name Next i xlApp.Cells.EntireColumn.AutoFit End With MsgBox "Êã ÇáÊÕÏíÑ ÈäÌÇÍ" End Sub التعديلات - MyQueryDef.Parameters(0) = Forms![frmEdite]![TelID] وهو الاهم - تعديل عنوان السجلات من a1 الى a2 لان الصف الاول يكتب به العناوين - انت مستخدم activesheet فلا داعي لتعريف اسم الشيت وحتى لا تقع في حصرا باسم الشيت فقد تكون النسخة انجليزي بالتوفيق
    2 points
  6. اذا ما نفع في المعلمات نعلن على العموم تفضل تم التعديل مع تعديل طفيف على الدوارة داخل الكود Tel-test2.rar
    2 points
  7. السلام عليكم عثرت على هذا الكود الرائع لتصدير الاستعلامات من أكسيس إلى إكسيل الكود يعمل بكفاءة مع الاستعلامات بدون معايير أو بمعايير مباشرة داخل الاستعلام كيف يمكن تعديله ليصدر استعلاما يستخدم معيارا فى نموذج علما بأننى فتحت النموذج أثناء تشغيل الكود و اخترت القيمة و مع ذلك لم يفلح و يعطى رسالة خطأ أنه يحتاج لقيمة معلمة وفقنا الله و إياكم لنفع المسلمين هاكم الكود 'Step 1: Declare your variables Dim MyDatabase As DAO.Database Dim MyQueryDef As DAO.QueryDef Dim MyRecordset As DAO.Recordset Dim i As Integer 'Step 2: Identify the database and query Set MyDatabase = CurrentDb Set MyQueryDef = MyDatabase.QueryDefs(Me.allq.Column(1)) 'Query name in the database 'Step 3: Open the query 'DoCmd.OpenQuery Me.allq.Column(1) Set MyRecordset = MyQueryDef.OpenRecordset 'Step 4: Clear previous contents Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") With xlApp .Visible = True .Workbooks.Add .Sheets("ورقة1").Select 'Step 5: Copy the recordset to Excel .ActiveSheet.Range("A1").CopyFromRecordset MyRecordset 'Step 6: Add column heading names to the spreadsheet For i = 1 To MyRecordset.Fields.Count xlApp.ActiveSheet.Cells(1, i).Value = MyRecordset.Fields(i - 1).Name Next i xlApp.Cells.EntireColumn.AutoFit End With MsgBox "تم التصدير بنجاح"
    1 point
  8. السلام عليكم ورحمة الله وبركاته أما بعد،، الموضوع باختصار هو كالتالي: البرنامج بصيغة mde موجود عند العملاء في مكان بعيد لايمكنني الوصول اليهم فلو اردت ان احدث برنامجهم جميعاً عن طريق وضع ملف خارجي على الانترنت يقوم العملاء بتنزيله وتشغيله حيث يقوم ملف التحديث بتغيير قيمة ما في جدول ولتكن خانة التاريخ مثلاً بالاضافة الى تعديل lable رقم اصدار البرنامج مثلاً .. فهل هذا ممكن أم لا؟ تحياتي
    1 point
  9. اضف الى الكود * 0.5 اي الكود سيتغير الى DoCmd.MoveSize Height:=Me.WindowHeight - (Me.ÊÝÕíá.Height * 0.5)
    1 point
  10. اتفضل استخدمت هكذا If Arab1 < 50 And Arab1 >= 25 Then ForeColor = 3 Me.FillStyle = 6 Me.FillColor = 14079702 DrawWidth = 5 Me.Circle (Me.Arab1.Left + (Me.Arab1.Width / 2.4), Me.Arab1.Top + (Me.Arab1.Height / 2.2)), 330 ElseIf Arab1 < 25 Then ForeColor = 3 Me.FillStyle = 6 Me.FillColor = 14079702 DrawWidth = 5 Me.Circle (Me.Arab1.Left + (Me.Arab1.Width / 2.4), Me.Arab1.Top + (Me.Arab1.Height / 2.2)), 330, , 3 End If واليك ملف الق نظرة الى مادة عربي وللعلم نستخدم رقم 1 الى 6 للدائرة مكتملة اي واحد قليلة و 6 مكتملة تحياتي تقرير دائرة للراسب (2).rar
    1 point
  11. سلمت يداك دائماً مبدع أستاذنا الفاضل جزاك الله خيراً وبارك فيك وأثابك الجنة إن شاء الله وجعل هذا العلم في ميزان حسناتك
    1 point
  12. الف شكر استاذي الفاضل هذا هو المطلوب
    1 point
  13. الله يجزيك خير أستاذي شفان ابداع ماشاء الله تستحق كل الشكر والتقدير بميزان حسناتك ما تقدمه للاعضاء ربنا يكثر من امثالك
    1 point
  14. حياكم الله نفوس طيبة نحسبها كذلك وفقكم الله وجزاكم عنا خيرا
    1 point
  15. حسب علمي الاكسل لديه القدره من ناحية التنسيق . فالتنسيق هو المسؤول اي يظهر التحويل شكلا وليس قيمةً . وهذا مافعلته انا في هذا الموضوع واصدت الشكل ان اخذ محتوى الخليه كنص . اما الاكسس فهو لديه امكانية الهجري فقط سواء بالكود والتحكم بالكلندر او وضع الخيار تمكين التاريخ الهجري من الخيارات وقدر مر مشاركات هنا بالمنتدى بان الاكسس لا يتاثر باعدادات الويندوز على ام القرى تحياتي
    1 point
  16. معليش استاذ عبدالفتاح .. هل تقصد eval هنا ؟ ومعليش يمكن طفشتك بس عايز اوصل لحاجه معينه .
    1 point
  17. مافهمت وضع جدولين ؟ ما دخل الجداول . هل ميكروسوفت تستخدم الجداول للعمليه ؟ الله اعلم وافدنا بوركت والذي اعرفه والله اعلم ان الاكسل لديه القدره على التعرف على تاريخ ام القرى اما الاكسس فقط الهجري
    1 point
  18. استبدل الكود بهذا Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Application.EnableEvents = False Application.DisplayAlerts = False If Target.Column <> 3 Or Target.Count > 1 Then Exit Sub lr = Sheets("Accounts").Range("c" & Rows.Count).End(xlUp).Rows.Value Sheets("Sample").Copy after:=Sheets(Sheets.Count) On Error Resume Next x = Len(Sheets(lr).Name) If IsEmpty(x) Then ActiveSheet.Name = lr ActiveSheet.Range("b2") = lr Else Answer = MsgBox("This sheet is allredy exit" & Chr(10) & "do you wnat to replace it?", vbYesNo) If Answer = 6 Then Sheets(lr).Delete ActiveSheet.Name = lr ActiveSheet.Range("b2") = lr Else ActiveSheet.Delete End If End If Application.EnableEvents = True Application.DisplayAlerts = True End Sub
    1 point
  19. استفسار هل ميكروسوفت وضعت جدولين للتاريخ الهجري واحد لاكسس وآخر مختلف لاكسل ؟
    1 point
  20. الف الف شكر استاذي الفاضل رمهان جزاك الله خير ا هذا هو المطلوب
    1 point
  21. جرب في التعبير expr2 ان تعيد التعبير expr1 وليس اسمه وليصبح التعبير expr2 هكذا Expr2: ([item_prais]*[QOTE_ITEM]+[add_prais]-[descon_combny])-[mdfoo_ada] بالتوفيق
    1 point
  22. استاذ ابو خليل الموضوع هنا ام القرى والهجري هناك مشاركات قديمه هنا وفي منتديات شقيقه وكما تفضلتم به في الرابط السابق وعلى ما اذكر كان هناك ملاحظة منك حول مشاركتي هنا باستخدام الاكسل وانها لم تنفع لتاريخ معين ذكرته انت في احد المشاركات ولكنني نسيته فياليت تعيد ذكره هنا ان ذكرت جزيتم خيرا وانا جالس احضر لعمل العكس كما طلب الاخ محمد سلامة بنفس الطريقة بالاكسل وهي على وشك ترى النور ان شاء الله تحياتي
    1 point
  23. موجودة أستاذى فى معيار الاستعلام q_one اجعل نموذج frmedit مفتوحا و اختر قيمة
    1 point
  24. معليش استاذ عبدالفتاح لم اجد eval هلا المرفق بالتطبيق
    1 point
  25. بل انت رجل مبارك لم تطرح سؤالا الا وخرجت لنا بفائدة جليلة
    1 point
  26. موضوعكم هذا مبارك هذه طريقة ثالثة لتمرير البارامتر عبر الكود غير الطريقتين الرائعتين السابقتين و الحل بسيط جدا جدا بدلا من أن يكون المعيار فى الاستعلام [forms]![frmEdite]![TelID] سيكون Eval("[forms]![frmEdite]![TelID]") بإضافة eval و يعمل بكفاءة بارك الله فيكم مرفق الملف الأصلى قبل التعديل باستخدام eval فقط باستخدام eval.rar
    1 point
  27. إليكم النتائج أولا : ملف الفاضل أبى خليل إبداع إبداع أول مرة أستخدم معيار استعلام و يكون فى الكود فى قسم العام هذه إحدى الحالات التى نحتاج فيها لذلك العجيب أن البارامتر يمرر بين الكود و الاستعلام بعيدا عن كود التصدير فليس فيه أى ذكر للبارامتر ميزة أخرى لملفك أبا خليل جعلت البارامتر خاصا بهذا الاستعلام فقط فلا يحدث خطأ عند اختيار استعلام آخر من الكمبوبوكس لأنه ليست كل الاستعلامات فيها معايير تشير إلى حقل فى نموذج فأغلبها معياره داخلى و هذا لا مشكلة فيه جزاك الله خيرا و ممكن تعرفنا متى نحتاج إلى وضع المعيار فى وظيفة عامة ثانيا ملف الفاضل الأستاذ رمهان معلومة أخرى قيمة جدا و طريقة لتمرير المعيار لا نستغنى عنها لكن كما ذكرت تصلح عند اختيار و تشغيل هذا الاستعلام فقط فأنا أختار الاستعلام المراد تصديره من كمبوبوكس وليست كلها تحتاج لتمرير البارامتر جزاك الله خيرا على اختصار الكود و السؤال هل ملفات تصدير الاستعلامات لإكسيل بالمنتدى تتعامل مع هذا النوع من الاستعلامات؟ أم أن كلها تتعامل مع استعلامات معاييرها داخلية؟ أخيرا هذا موضوع قيم جدا جدا استفدت منه كثيرا و حبذا لو أفرده أحدكما بالشرح فى موضوع مستقل للفائدة الأخ alma fandi لا تكلف نفسك عناء الاعتذار جل من لا يسهو و السلام عليكم و رحمة الله
    1 point
  28. بعتذر الغريق يتعلق بالقشة وان شفت انه موضوعك شبيه 90% من مطلبي فذكرت الفكرة اكرر اعتذاري
    1 point
  29. السلام عليكم و حمة الله و بركاته اخي الكريم حمادة عمر جزاك الله خير وبارك الله فيك وجعله الله في ميزان حسناتك
    1 point
  30. كلام مضبوط حارة التجربة و من ثم الرد شكرا لك جار التجربة أبا خليل المحترم أظن هذا الرد يخص موضوعا آخر
    1 point
  31. تكرما اخ صابر هات مجلد مضغوط به قاعدتين .. الاولى الاساسيه ومحمية بكلمة مرور . والاخرى الطرفيه وبها سيتم وضع كود مختصر ان شاء الله بالتوفيق
    1 point
  32. last.rar ممكن نعمل تصدير لتقرير من داخل فورم بحث بين تاريخين (يعرض البيانات التي تمم البحث عنهاخلال فترةالبحث ) اسم الاستعلام qry1 من فورم searchf
    1 point
  33. السلام عليكم تفضل تستطيع إستعمال هذا الكود: DoCmd.MoveSize Height:=Me.WindowHeight - Me.تفصيل.Height و هذا التعديل على الملف التفاصيل.rar
    1 point
  34. أخي الكريم الأمر يختلف من شخص لأخر و من بلد لأخر احد الاقتراحات هو ان تحسب قيمة الساعة بناء على راتبك الشهري او راتب شخص في نفس الخبرة ، و تضرب ذلك في نسبة 150% او 200% بحسب درجة تمكنك و تضرب ذلك في عدد الساعات المطلوبة لاعداد البرنامج هذا مجرد رأي ، و لا يعد قاعدة ، و أتمنى أن يفيدك من هم أكثر مني خبرة في هذا الامر و لا تنسي أن الأمر يخضع للعرض و الطلب ، و هذا في حالة اعداد برنامج لعميل بعينه اما اذا كان البرنامج عام و قابل للبيع العام فطبعا السعر سيقل بحسب عدد النسخ المتوقع بيعه أخيرا ، كما ذكرت سابقا هذا مجرد رأي ، قد يكون مناسبا لك و قد لا يكون
    1 point
  35. اتفضل عملت لك بين تاريخين في نموذج رئيسي اي راح تختار من شهر و الى شهر وبعدين تضغط الزر اتفضل مع قاعدة بيانات Database3.rar
    1 point
  36. في البداية ما قلت ذلك وما ارفقت قاعدة لكي نعمل عليه وما اخترت بأي شي او بأي حقل من الحقول نعامل بل عطيتك اللي طلبتك اولا والان اختلف طلبك على الاول تحياتي
    1 point
  37. اخ منك ياريت من البداية كان ارفقت هذه الصورة شوف في خلفه به شريطة اصفر وعليها كلمة انبل اضغط عليه لهذه المرة وبعد جرب اضغط على الازرار قلل مستوى الامان لاكسس اليك هذا الرابط https://support.office.com/ar-sa/article/تمكين-وحدات-الماكرو-أو-تعطيلها-في-ملفات-Office-12b036fd-d140-4e74-b45e-16fed1a7e5c6 واليك هذا
    1 point
  38. السلام عليكم اخواني الكرام المنتدى تعليمي ، نتعلم من خلاله ونبحث عن حلول للصعوبات التي تواجهنا اخي الحبيب : يمكنك مراسلة صاحب البرنامج لاجراء ما تريد من تعديلات يغلق ،،،
    1 point
  39. اتفضل استخدمت هذا الكود If Me.Arabic_t1_Activity = "Û" Or Me.Arabic_t1_Activity <= 40 Then Exit Sub Else Me.Arabic_t1_Activity = "" MsgBox "مش مسموح بكتابة هذا" End If شوف فورم FRM_1_Activiti نعم استاذ بيعمل وبشكل ممتاز لكن ابوالاء يريد ان يبدل رسالة اكسس اللي بيظهر اذا دخل رقم اكبر من 40 او دخل حرف عدى حرف غ برسالة اخرى تحياتي لكم 008.rar
    1 point
  40. برجاء اخي الكريم ارفاق ملف كمثال لتوضيح المطلوب ليمكن تنفيذ طلبك
    1 point
  41. السلام عليكم ورحمة الله نعم اخى الكريم تفسيرك سليم وفى محله اذا ازلت هذه العبارة (On Error Resume Next) لن يعمل الكود معك
    1 point
  42. بسم الله الرحمن الرحيم بسم الله و الحمدلله و الصلاة و السلام على اشرف خلق الله سيدنا محمد و على آله و صحبة و من والاه أما بعد نظرا لكثرة السؤال عن فك الحماية اما لمحرر الاكواد او لورق العمل قمت بدمج الاكواد مع بعض التعديلات في ملف واحد للتسهيل على الاخوة فقط كل ما عليك هو ان تقر ان الملف خاص بك ولا يعد تعديا علي ملفات الغير يتم تفعيل الازرار الخاصة بكسر حماية محرر الاكواد واوراق العمل كسر حماية اوراق العمل يتم فكها جميعا كل ما عليك هو اختيار الملف والموافقه على بدأ الفك وانتظر حتى يكتمل فك الاوراق جميعا طبعا وقت الفك حسب مدى صعوبة كلمة المرور اما كسر محرر الاكود ما عليك الا ان تقوم باختيار الملف الهدف-xls- فتظهر لك رسالة خطأ بعدها يتم فتح محرر الاكواد ومنها تقوم باعادة تعيين كلمة اخرى والحفظ والسلام عليكم Hack VBA.rar
    1 point
  43. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أعتقد أن الوقت الذي انقضى على الحلقة الأولى من هذه الدورة الخاصة بالمصفوفات يكفي وزيادة ، وأعتذر عن التأخر في مواصلة الدورة ، فأنتم تعرفون مشاغل الحياة .. رابط الحلقة الأولى نبدأ على بركة الله الحلقة الثانية من حلقات "دورة كاملة في المصفوفات" ، ويا ريت اللي لسه أول مرة يشوف الموضوع ، إنه يقرا الحلقة الأولى عشان يقدر يتواصل معانا .. مش عايزين نكرر المعلومة إلا للضرورة ، وعشان يقدر يتابع الجديد (دا لو فيه متابعين من الأساس) هنبدأ نتكلم عن أنواع المصفوفات : فيه نوعين النوع الأول وهو المصفوفة الثابتة يعني لها أبعاد ثابتة مش بتتغير والنوع الثاني وهو المصفوفة الديناميكية يعني غير الثابتة ودي بيتم تحديد أبعادها أثناء عمل الكود ، وممكن تتحدد في أول الكود بأبعاد محددة ، وممكن تغيرها أثناء الكود إذا لزم الأمر ... الإعلان عن المصفوفة الثابتة -------------------------------- دا مثال لأكثر من طريقة للإعلان عن المصفوفة الثابتة المحددة الأبعاد ..نشوف الكود ونضع مؤشر الماوس داخل الكود ومن لوحة المفاتيح زي ما اتعلمنا نضغط F8 ونروح نبص على نافذة اللوكال Sub DecArrayStatic() Dim arrMarks1(0 To 3) As Long Dim arrMarks2(3) As Long Dim arrMarks3(1 To 5) As Long Dim arrMarks4(2 To 4) As Long End Sub نمسك سطر سطر عشان نفهم إزاي بيتم الإعلان .. السطر الأول بعد ما كتبنا اسم المتغير (اللي هو من النوع مصفوفة) بين قوسين كتبنا من 0 إلى 3 أي أن فهرس المصفوفة سيكون عبارة عن 0 ، 1 ، 2 ، 3 .. السطر الثاني زي الأول بالضبط بمعنى إن الفهرس عبارة عن 0 ، 1 ، 2 ، 3 .. طيب ليه؟ لأن الافتراضي للمصفوفات إن الفهرس بيبدأ من الرقم صفر .. بكدا نفهم إزاي نتعامل : يا إما أحدد بداية الفهرس ولو حددتها صفر أو سبتها من غير ما أحدد البداية يبقا النتيجة واحدة السطر الثالث بداية المصفوفة 1 ونهايتها 5 أي 5 عناصر داخل المصفوفة السطر الرابع بداية المصفوفة 2 ونهايتها 4 أي عدد العناصر 3 عناصر .. نفهم من الأسطر دي إن فيه مرونة كبيرة في التعامل مع المصفوفات يعني ممكن أبدأ من أي رقم وأنتهي بأي رقم (منتهى المرونة ... بس مش مرونة بشكل كبير) ..دا لأن عملياً صعب أحدد أبعاد المصفوفة ، لأن من خصائص البيانات إنها متغيرة ، فلو مثلاً عندنا مدرسة لها قاعدة بيانات ، فالقاعدة متغيرة .. عدد الطلاب مش ثابت (طالب حول من المدرسة - طالب حول إلى المدرسة) بالتالي العدد غير ثابت ، ومن هنا لازم نتعلم النوع التاني من المصفوفات اللي هو الديناميكي أي المرن أي الغير ثابت الإعلان عن المصفوفة الديناميكية ------------------------------------- هنا بيتم الإعلان عن مصفوفة غير محددة الأبعاد ، ويمكن بعد كدا من خلال الكود تحديد أبعادها باستخدام كلمة اسمها ReDim .. Sub DecArrayDynamic() Dim arrMarks() As Long ReDim arrMarks(0 To 5) End Sub السطر الأول فتحنا قوس وقفلناه بعد اسم المتغير وبس .. بكدا وببساطة أعلنا عن المصفوفة الديناميكية .. وفي السطر الثاني لو حبيت أحدد أبعادها بستخدم الكلمة ReDim ويمكنك تحديد أبعادها اعتماداً على نطاق ديناميكي .. مثال : لو عندك طلاب وقلنا إن عددهم غير ثابت ، يبقا بتعلن عن المصفوفة وتخليها من النوع الديناميكي واثناء الكود بتشوف عدد الطلاب من خلال أسطر أخرى ، وعلى أساس الأسطر الأخرى بتحدد أبعاد المصفوفة ..يعني التحديد مبيكونش مسبق زي النوع الأول ..التحديد للأبعاد بيكون أثناء عمل الكود ننتقل لجزئية جديدة ألا وهي تعيين قيم لعناصر المصفوفة بيتم تعيين قيم للمصفوفة سواء كانت ثابتة أو ديناميكية من خلال معرفة رقم العنصر في الفهرس بالمثال يتضح المقال ودا كلام مفيهوش جدال Sub AssignValue() Dim arrMarks(0 To 3) As Long arrMarks(0) = 5 arrMarks(3) = 46 arrMarks(4) = 99 End Sub دا مثال في السطر الأول أعلنا عن المصفوفة اللي أبعادها من 0 إلى 3 أي عدد عناصرها يساوي 4 ( 0 - 1 - 2 - 3) السطر التاني وضعنا القيمة 5 لمين ؟ للعنصر اللي رقم فهرسه 0 السطر الثالث وضعنا القيمة 49 لمين؟ قولوا إنتو يا حلوين !! للعنصر اللي رقم فهرسه 3 السطر الرابع بقا ونركز عشان دا مهم .. وضعنا القيمة 99 لمين؟ نفس الكلام يا حلوين !! للعنصر اللي رقم فهرسه 4 (بس عندك ستوب STOP) ارجع تاني لأول سطر .. إحنا عندنا أبعاد المصفوفة من 0 إلى 3 يعني أول رقم فهرس عندي صفر وآخر رقم فهرس عندي 3 ... يعني الـ 4 مش موجودة (طبعاً لدواعي أمنية ..ما إحنا عارفين 4 من الأرقام المحظورة دلوقتي) طيب تتوقع ايه بعد تنفيذ السطر ؟؟؟!!!..مننساش إننا وإحنا بنتعلم مش بنفذ الكود مرة واحدة ... راجع الحلقة الأولى .. إحنا بنستخدم نافذة اللوكال ونضغط على F8 وواحدة واحدة عشان نستوعب المهم يرجع مرجوعنا لموضوعنا : بعد تنفيذ السطر الأخير هيظهر لنا رسالة خطأ بالشكل دا لأن رقم الفهرس دا مش موجود ننتقل لجزئية جديدة فيه طرق تانية لتعيين قيم للمصفوفة وهي باستخدام الدالة Array ، ودي ممكن نستخدمها عشان نخزن من خلالها قيم المصفوفة بالشكل التالي Sub ArrayFunction() Dim Arr1 As Variant Arr1 = Array("Orange", "Peach", "Pear") Dim Arr2 As Variant Arr2 = Array(5, 6, 7, 8, 12) End Sub مع استخدام الدالة دي بنعلن عنها من النوع Variant .. في السطر الأول والثاني تم الإعلان عن المصفوفة من النوع Variant وقمنا بوضع القيم بين أقواس .. ونلاحظ أقواس التنصيص أننا بنتعامل مع نصوص في قيم المصفوفة دي في السطر الثالث والرابع نفس الإعلان وقمنا بوضع القيم بين أقواس بي هنا مفيش أقواس تنصيص لأننا بنتعامل مع قيم رقمية نفذ الكود باستخدام F8 ولاحظ نافذة اللوكال بنفسك لاحظت ؟؟!! اللي لاحظ يرفع ايده .. برافو برافو محدش لاحظ حاجة .. روح لعمود الـ Type في نافذة اللوكال بعد تعيين القيم للمصفوفة ولاحظ نوع المتغير بقا متغير ...يعني بعد ما كان Variant نلاحظ اتكتب مثلاً في حالة المصفوفة الأولى اللي بتتعامل مع النصوص اتكتب String ومع المصفوفة الثانية اتكتب Integer .. وحاجة تانية إن أول رقم فهرس في المصفوفتين بيبدأ من صفر لأن دي البداية الافتراضية (مننساش يا واش يا واش) ************************************** نيجي لآخر جزئية في حلقة اليوم ألا وهي استخدام المصفوفة ودالة الإنشطار (Split Function) انشطار .. ربنا يكفينا شر النار .. !! انشطار ايه ؟! هو إنت بتصنع قنابل نووية .. الانشطار يا شطار معناه تقسيم الشيء لأجزاء صغيرة .. قطعه حتت وارميه للقطط نتكلم جد وبلاش هزار .. نشوف المثال ده Sub SplitFunction() Dim str As String str = "Red,Yellow,Green,Blue" Dim arr() As String arr = Split(str, ",") End Sub في السطر الأول أعلنا عن متغير من النوع النصي وفي السطر الثاني وضعنا قيمة المتغير النصي بين أقواس تنصيص وبيفصل بين الكلمات الموجودة في النص علامة الفاصلة (Comma) .. في السطر التالت أعلنا عن المتغير باسم Arr ووضعنا أقواس بمعنى إنها مصفوفة ديناميكية (صحيح الكلام دا مش صحيح ، بس دا مجرد مثال عشان نفهم دالة الإنشطار Split) آخر وأهم سطر وهو دا اللي يهمنا في الكود اللي فات وهو استخدام الدالة وهي دالة بسيطة جداً ومفيدة جداً جداً جداً جداً ..كفاية عشان ايدي تعبت تكوينها ببساطة اسم الدالة وبنفتح قوس ... البارامتر الأول الحاجة اللي عايزين نعملها إنشطار وهي كما في المثال النص اللي بين أقواس تنصيص "Red,Yellow,Green,Blue" وبعدين فاصلة وبعدين البارامتر الثاني وهو نوع الفاصلة اللي هيتم على أساسها عملية الإنشطار ..ممكن تكون الفاصلة دي مسافة أو أي نوع من أنواع الفواصل بين الكلمات .. وهنا استخدمنا الفاصلة Comma ووضعناها بين أقواس تنصيص لاحظ أن المصفوفة المسماة Arr بعد تنفيذ السطر الأخير حملت في 4 عناصر (من 0 إلى 4) وهي العناصر اللي فصلنا بينها بالفاصلة ، لتصبح المصفوفة حاملة (في الشهر الرابع) حاملة لأربع قيم وهي Red و Yellow و Green و Blue .. وإلى هنا تعبت يداااااااااااااااااي ولم أعد أستطيع المواصلة ، فقد كان المشوار طويل ... لمزيد من الدعم لصاحب الموضوع (ودا اختياري مش إجباري) .. ولو عندك وقت فاضي لمدة دقيقتين اتنين تابع الرابط الإعلاني في الرابط التالي (سيكون عبارة عن سلسلة من الإعلانات ..قم بالضغط على Skip Ad بعد كل 5 ثواني ... وأكرر دا مش إجباري دا اختياري ، يعني لو وقتك ميسمحش أنا مسامح .. حمل الملف الذي يحتوي على أكواد الموضوع من هنا وأخيراً تقبلوا وافر تقديري واحترامي كان معكم أخوكم أبو البراء من منتدى الأحبة منتدى أوفيسنا
    1 point
  44. اسم المستخدم امامك مكتوب (وليد) كلمة المرور كذلك مكتوب (1) الاخ / MENA2008 التاريخ حسب تسجيلك انت تسجل ميلادي او هجري يقبل كليهما اما العملة فيمكنك الدخول الي البرنامج بالضغظ على شفت وانتر والتعديل من الخصائص العملة المرادة بدلا عن $
    1 point
  45. حبيبى الغالى ابن مصر الاستاذ احمد يشرفنى يكون اول رد منك وهقولك على سر لك انت لوحدك لو عايز تفتح البرنامج قبل الساعه 12 قرب ودنك كدا غير تاريخ الجهاز الى 1-1-2015م هيفتح معاك واوعى تقول لحد ههههههههههههههههه تقبل منى وافر الاحترام والتقدير
    1 point
×
×
  • اضف...

Important Information