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

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

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

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

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


    • نقاط

      13

    • Posts

      13,165


  2. عبد العزيز البسكري

    • نقاط

      13

    • Posts

      1,352


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

    ياسر العربى

    الخبراء


    • نقاط

      11

    • Posts

      1,510


  4. Yasser Fathi Albanna

    Yasser Fathi Albanna

    06 عضو ماسي


    • نقاط

      10

    • Posts

      1,313


Popular Content

Showing content with the highest reputation on 23 نوف, 2015 in all areas

  1. السلام عليكم ورحمة الله وبركاته تحياتى وتقديرى لجميع أحبائى أعضاء وأساتذة هذا الصرح العلمى الهائل أدخل المعادلة الأتية بأى خلية داخل الإكسيل وشاهد النتيجة بنفسك تحياتى =CHAR(225)&CHAR(199)&CHAR(32)&CHAR(197)&CHAR(225)&CHAR(229)&CHAR(32)&CHAR(197)&CHAR(225)&CHAR(199)&CHAR(32)&CHAR(199)&CHAR(225)&CHAR(225)&CHAR(229)&CHAR(32)&CHAR(227)&CHAR(205)&CHAR(227)&CHAR(207)&CHAR(32)&CHAR(209)&CHAR(211)&CHAR(230)&CHAR(225)&CHAR(32)&CHAR(199)&CHAR(225)&CHAR(225)&CHAR(229)
    7 points
  2. كلمة شكر وعرفان الى صاحب القلب الطيب الى صاحب النفس الابيه الى صحاب الابتسامه الفريده استاذى الفاضل السيد المهندس المحترم محمد طاهر مدير جامعه اوفيسنا اتقدم لحضرتك بخالص الشكر والتقدير على تثبيتكم لموضوع سلسلة علمنى كيف اصطاد شروحات الفورم ان قلت شكرى فشكرى لن يوفيكم حقا سعيتم للخير فكان جزاء السعى من رب العالمين لكم مشكورا أسال الله تعالى ان تكون هذه الشروحات علما نافعا ينتفع به
    4 points
  3. بسم الله الرحمن الرحيم اليوم هنعرف ازاي نعمل صلاحيات للوصول لشيتات معينه داخل ملف الاكسيل ولكن اولا نقوم بمراجعه درس اعمل شاشة دخول برنامجك بنفسك وسيبك من التقليد http://www.officena.net/ib/topic/64832-اعمل-شاشة-دخول-برنامجك-بنفسك-وسيبك-من-التقليد/ بعد ما راجعنا الدرس السابق نبدأ من حيث انتهينا الأساسيات الشاشة الرئيسية الصفحات الأخرى وأخيرا صفحة معلومات الدخول والصلاحيات ودي أسماء الصفحات داخل الشيتات وبرمجيا نقوم بتصميم نفس الصفحات السابقة أظن سهلة العملية لحد دلوقتي حان دور الاكواد نبدأ بالاكواد السهلة في كل صفحة غير الرئيسية بها زر رجوع نضع الاكواد كالاتي صفحة ادخال البيانات في زر الرجوع Sub yasser1() index.Activate sheet1.Visible = xlSheetVeryHidden End Sub السطر الاول للرجوع للصفحة الرئيسية السطر الثاني لاخفاء صفحة ادخال البيانات وهي شيت1 وتكرر في الصفحات المتبقية صفحة الاستعلام Sub yasser2() index.Activate sheet2.Visible = xlSheetVeryHidden End Sub صفحة قاعدة البيانات Sub yasser3() index.Activate sheet3.Visible = xlSheetVeryHidden End Sub صفحة المستخدمون users Sub mohamed1() index.Select users.Visible = xlSheetVeryHidden End Sub وقبل ان نترك صفحة اليوزرز نضع هذه المعادلات =IF(J2="";"";VLOOKUP(J2;A2:E8;3;FALSE)) =IF(J2="";"";VLOOKUP(J2;A2:E8;4;FALSE)) =IF(J2="";"";VLOOKUP(J2;A2:E8;5;FALSE)) هذه الدوال تجلب بيانات المستخدم من جدول المستخدمين ومنها نقوم بالتحكم في صلاحياته الآن حان دور الصفحة الرئيسية نضع في اول زر وهو زر ادخال البيانات الكود التالي Sub aseel1() If users.Range("k2") = "yes" Then Application.ScreenUpdating = False sheet1.Visible = xlSheetVisible sheet1.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الثانية صفحة الاستعلام Sub aseel2() If users.Range("L2") = "yes" Then Application.ScreenUpdating = False sheet2.Visible = xlSheetVisible sheet2.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الثالثة صفحة قاعدة البيانات Sub aseel3() If users.Range("m2") = "yes" Then Application.ScreenUpdating = False sheet3.Visible = xlSheetVisible sheet3.Select Else MsgBox "انت لا تمتلك الصلاحية لدخول هذه الصفحة ", vbCritical, "elmalak_elhazen_yasser@yahoo.com" Application.ScreenUpdating = True End If End Sub زر الصفحة الرابعة صفحة صلاحيات اليوزرز وهنا سنغير الكود سنعطى لهذه الصفحة كلمة مرور خاصة غير باقي الصفحات Sub mohamed() Dim x x = InputBox("يرجى ادخال كلمة المرور.", "Password Required") If x = "123" Then users.Visible = xlSheetVisible users.Select Else MsgBox "كلمة المرور خطأ يرجى اعداة المحاولة" End If End Sub اكواد الصفحات تعتمد علي اول سطر يقوم بمقارنة الخلية الخاصة بالصفحة اذا كانت بها كلمة yes فيسمح بالدخول اما غير ذلك لا يمكن الدخول والجزء الثان من الكود يقوم باظهار الصفحة عند تحقق الشرط والذهاب اليها ينقصنا سطر صغير لاتمام الموضوع نسخ اسم المستخدم عند الدخول الى الخلية المحددة ليتم جلب بيانته عن طريق اسمه وتتم كالاتي يتم وضع الكود في حدث زر الدخول users.Range("j2") = ComboBox1.Value وبكدا يكون انتهى الدرس تقبلوا تحياتي ياسر العربي لو مكسلين تطبقوا احط ليكم مرفق وخلاص وادي مرفق الشرح PDF صلاحيات.rar
    4 points
  4. أخي وحبيبي في الله ياسر العربي لقد أبدعت في هذا الموضوع بشكل كبير جداً .. وطرحك في منتهى الروعة والموضو متميز ومفيد وبحمد الله وتوفيقه قمت بتغطيته بشكل ممتاز .. ولكن اسمح لي ببعض الملحوززات الصغيرة جداً .. قد لا تهم الكثيرين ولكن تهمني أولاً يجب مراعاة بدء انتشار التعامل مع 64 بت ..فمتنساش إخوانك الذين لديهم ويندوز 64 بت وأوفيس 64 بت في الفورم قم باستبدال أسطر الإعلان بهذه الأسطر ليتوافق مع 32 بت و64 بت #If VBA7 Then Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hwnd As LongPtr) As Long #Else Private Declare Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function DrawMenuBar Lib "User32" (ByVal hWnd As Long) As Long #End If ثانياً أحب التخلص من الزيادات الغير مرغوب فيها فمثلا يوجد موديول 1 فيه أمر بإظهار الفورم 1 ، ولا وجود للفورم ومن ثم لا داعي للموديول (راعي أن هناك من يقتبس وفقط .. بالتالي ستكون زيادة ليس لها داعي) ثالثاً : في كود زر الامر دخول CommandButton1 قمت بوضع السطر التالي If Application.WorksheetFunction.VLookup(ComboBox1.Value, Users.Range("A2:B50"), 2, 0) = TextBox1.Text Then في المرفق الخاص بك جعلت النطاق L50 (لما قمت بتوسيع النطاق بهذا الشكل ؟ لما لم تكتفي بالعمودين اللذين بهما أسماء المستخدمين وكلمات السر رابعاً : حاول استخدام برنامج يقوم بضبط أسطر الكود ليسهل الإطلاع عليه خامساً : لا يسعني إلا أن أقول لك جزيت خيراً .. جزيت خيراً .. جزيت خيراً .. فوالله إن الموضوع رائع وجد مفيد ومتميز وما أردت إلا النقد البناء الذي يسهم في علو شأن الموضوع لا أن أبخسه حقه تقبل وافر تقديري واحترامي
    4 points
  5. السلام عليكم ورحمة الله وبركاته أستاذ جديد ودرس مفيد ...نكن كل احترامنا وتقديرنا لأساتذتنا الذين ينقبون عن النفائس من أمهات الكتب يبحثون بين السطور ليغرسوها في الصدور نبتات رائعة الجمال يسقونها بمداد المحبة التي تغشى القلوب .. أخي الحبيب الصقر برعت وواظبت ببرنامج شرح الفورم .. جزاك الله خيرا أخي الحبيب ياسر برعت كذلك بشرح صلاحيات الدخول وسندخل معك في رحاب دروسك وأنت مضياف ....ماذا بعد الدخول؟ بمعنى ننتظر دروسا أخرى هامة فوطن نفسك على العطاء . لا تؤاخذني على خطأي لأنه ليس على المريض حرج تقبل تحياتي والسلام عليكم.
    3 points
  6. أخي الكريم ياسر العربي ايه علاقة ملفك الجميل والرائع بالموضوع .. صحيح الملف جميل وفكرته جميلة .. لكن ملوش علاقة بالموضوع دي نقطة نقطة تانية (وشكلي كدا هجيب لك النقطة بنقدي) ..اللي يحضر عفريت يصرفه يعني دلوقتي اللي هيفتح ملفك ساعتها هيتم إضافة قائمة مخصصة لديه في أي مصنف يفتحه يعني بقا عفريت ياسر العربي موجود في كل المصنفات ..سواء تحتوي على الكود أو لا ... يبقا اللي يحضر عفريت يصرفه ..يعني تيجي زي الشاطر في حدث إغلاق المصنف وقبل الإغلاق تضع كود يحذف القائمة المخصصة ... لو تحب أساعدك قولي
    2 points
  7. الله أكبر الله أكبر الله أكبر تجمع الأخوة الأحباء على قول لا إله إلا الله محمد رسول الله شرفت بمروركم جميعا أحبائى فى الله حبيبى الغالى / ياسر العربى حبيبى الغالى / محمد الخازمي حبيبى الغالى / عبد العزيز البسكرى حبيبى وأستاذى ومعلمى القدير / ياسر خليل تقبلوا جميعا تحياتى وتقديرى
    2 points
  8. تفضل عملنا جدول جديد مؤقت للطباعة tbl_Temp وفيه الحقول المطلوبة لطباعة الباركود: . فاصبح علينا في الكود ان نحذف جميع سجلات هذا الجدول ، ثم نضيف بيانات الباركود الجديد ، على حسب عدد السجلات المطلوبة ، وبعدها نفتح التقرير ، والذي عملنا مصدره tbl_Temp . والكود اصبح: Private Sub PRENT_Click() If Me.t3 = 0 Then MsgBox ("لابد ان يكون حقل عدد الملصقات اكبر من صفر") End If 'delete the tbl_Temp Records mySQL = "Delete * From tbl_Temp" CurrentDb.Execute (mySQL) 'add the number of Records Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Select * From tbl_Temp") For i = 1 To Me.t3 rst.AddNew rst!SMALL_UNIT_PRICE = Me.SMALL_UNIT_PRICE rst!uuu = Me.uuu rst!uun = Me.uun rst!ITEM_CODE = Me.ITEM_CODE rst!ITEM_BARCODE = Me.ITEM_BARCODE rst!FACTOR = Me.FACTOR rst!ITEM_NAME2 = Me.ITEM_NAME2 rst!SUPP_CODE = Me.SUPP_CODE rst.Update Next i rst.Close: Set rst = Nothing 'now print the Report DoCmd.OpenReport "medicine" End Sub . السبب ان هذه الطريقة اسرع في الطباعة ، لأننا نرسل جميع السجلات الى التقرير مرة واحدة ، فالى الطابعة ، بينما في الطريقة السابقة ، كان هناك سجل واحد فقط في التقرير ، وكنا نفتح ونغلق التقرير عدة مرات لطباعة الباركود الواحد. وهنا اود ان ارفع الى اختنا الفاضلة الدكتورة أم عهود كل تحية واجلال واحترام لبُعد نظرها وبراعتها ، لأني اتذكر في منتدى الفريق العربي للبرمجة ، في موضوع طباعة الباركود ، انها عملت الكود لتحفظ سجلات الباركود في جدول مؤقت ، وانا وبسبب قلة خبرتي قلت انه من الافضل عدم عمل الجدول ، والطلب من التقرير الطباعة مباشرة (مثل ما عملنا سابقا) ، والآن فقط عرفت السبب ، وهو سرعة/بطئ الطباعة جعفر 272.BARCODE.accdb.zip
    2 points
  9. تحديد بداية العمود المراد اخفاءة +سهم شمال فتحدد كل الاعمدة الباقية وعمل كليك يمين و اختيار اخفاء
    2 points
  10. السّلام عليكم و رحمة الله و بركاته بارك الله فيكما الأستاذان القديران : ياسر العربي ياسر خليل أبو البراء جزاكما الله خيرًا و زادها بميزان حسناتكما على الأعمال المقدّمة من طرفكما و الحلول الأكثر من رائعة .. و بعد إذنكما بمشاركتكما بالموضوع من باب الاثراء و التّنويع بالحلول ..إضافة بعمل دوبل كليك لفتح الفورم بكامل الورقة في الورقة رقم 1.. و عمل دوبل كليك لفتح الفورم بنطاق محدّد في الورقة رقم 2 .. و عمل دوبل كليك بالورقة الثالثة لفتح الفورم بخلية محدّدة بذاتها ..الأكواد كلها بحدث الشيتات . فائق إحتراماتي و إعجاباتي دوبل كليك فتح الفورم.rar
    2 points
  11. بعد المقدمه الحلوه فى الدرس السابق اليوم نقدر نتكلم عن الدرس بتاعنا وهو كيفية اضافه عناصر تحكم داخل الــ Frame عند فتح الفورم أو أثناء عمل الفورم وهو نشط مثال رقم 1 :- نشاهد الصوره التاليه ده فورم فى مرحلة التصميم وصممت عليه Frame وكما تلاحظون ان اسمه فى الخاصيه Name وهو Frame1 وهو الاسم اللى هنستخدمه فى كتابة الاكواد انا عايز اعرف ازاى اضيف عناصر تحكم اثناء فتح الفورم على سبيل المثال عايز اعمل كود فى حدث فتح الفورم لكى يظهر الفورم عند الفتح كالتالى شاهد الصوره طيب ايه هو الكود اللى انا عايز اكتبه فى حدث فتح الفورم ؟ حتى يكون الفورم عند الفتح بهذا الشكل عايز اكتب كود اضيف فيه Label واضيف فيه TextBox واضيف فيه ComboBox طيب ازاى نعمل ده ؟ تعالو نبدأ بأضافه ComboBox شاهد الكود ونشرحه Private Sub UserForm_Initialize() With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox1") .Left = 20 .Top = 5 .Height = 40 .Width = 150 .BackColor = &HFFFFC0 .TextAlign = fmTextAlignCenter .FontSize = 20 .Font.Bold = True Dim a As Variant a = Array("ناجح", "راسب") .List = a End With End Sub الكود بكل بساطه يكمن فى السطر الاول استخدمنا With علشان اعرف الكود انى انا هتعامل مع الـ Frame1 فكتبت With Me.Frame1 طيب انا عايز ايه من الــ Frame1 عايز اضيف عنصر وهو ComboBox بداخله لذالك استخدمت Controls.Add طيب Controls.Add دى لها قاعدة ثابته اتكلمنا عنها قبل كدا (Controls.Add( ProgID , Name ,Visible ( "Controls.Add("Forms.Combobox.1" , "Combobox1 هنا Visible تكون التعبئة اختياريا وهى تحمل خيارين أما True أو False ويفضل عدم استخدامه ليه يا عمنا ؟ لان طالما فكرت تنشأ عنصر تحكم اثناء عملك على الفورم اذا انت اكيد عايز تظهره للمستخدم مش انك هتخفية ! بعد كدا عملت خصائص للكمبوبوكس الجديد اللى تم انشائه 1- الخاصيه Left ( وهى تعنى بعد هذا العنصر من الضلع الايسر للفريم بمقدار كذا ) انا قلت انه يبعد عن الضلع الايسر بمقدار 20 Left = 20. 2- الخاصيه Top ( وهى تعنى بعد هذا العنصر من الضلع الاعلى للفريم بمقدار كذا ) انا قلت انه يبعد عن الضلع الايسر بمقدار 10 Top= 10. 3- الخاصيه Height ( وهى تعنى كم يكون ارتفاع العنصر ) انا قلت ان ارتفاع العنصر 40 Height= 40. 4- الخاصيه Width ( وهى تعنى كم يكون عرض العنصر ) انا قلت ان عرضه العنصر 150 Width = 150. 5- الخاصيه BackColor( وهى خاصه بتحديد خلفية للعنصر) BackColor = &HFFFFC0. 6- الخاصيه TextAlign( وهى خاصه بتحديد المحاذاه للعنصر) TextAlign = fmTextAlignCenter. 7- الخاصيه Fontsize( وهى خاصه بتحديد حجم الخط للعنصر) FontSize = 20. 8- الخاصيه Font.Bold( وهى خاصه بتحديد سماكة الخط للعنصر) Font.Bold = True. 9- الخاصيه List( وهى خاصه بتعبئة الكمبوبوكس من خلال المصفوفه كما تلعمنا من قبل) طبعا ممكن تضيف خصائص اخرى للكمبوبوكس او تحذف خصائص من الامثله اللى ذكرناها كله حسب رئيتك انت وطبعا طالما فتحنا With أذن لازم نغلقها بــ EndWith ----------------------------------------------------------------------------------------------- بعد كدا عايز اضيف TextBox With Me.Frame1.Controls.Add("Forms.TextBox.1", "TextBox1") .Left = 180 .Top = 5 .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With وطبعا الكود مش محتاج شرح لانه مفيش فى جديد ولكن هو عايز مهندس معمارى او شغال فى المساحه ليه ؟؟ لان لازم تحدد مكان العنصر فى الفريم وذالك سيكون من خلال الخاصيه Left كم يبعد التكست بوكس عن الضلع الايسر للفريم ؟؟؟؟ بكل بساطه انا فى الكمبوبوكس قلت يبعد 20 ثم عملت عرض الكمبوبوكس 150 اذن مجموعهم يساوى 170 يعنى المساحه بدأ من 0للضلع الايسر للفريم وحتى 170 مستغله أذن لازم يكون بعد التكست بوكس عن الضلع الايسر للفريم بمقدار اكبر من 170 فأنا عملت Left =180 ليكون هناك فاصل مقداره 10 بين نهاية الكمبوبوكس وبداية التكست بوكس الخاصيه Top اللى هى بعد التكست عن الضلع الاعلى للفريم خليتها=5 زى بالظبط الكمبوبوكس نفس البعد حتى يكون هناك تنسيق جمالى وكذالك الخاصيه Height ارتفاع التكست بوكس = 40 زى بالظبط ارتفاع الكمبوبوكس أما العرض Width جعلته 150 ( وتقدر تكبره او تصغره براحتك ) وباقى الخصائص معروفه ولا يوجد فيها شئ جديد ----------------------------------------------------------------------------------------------------- بعد كدا عايز اضيف Label With Me.Frame1.Controls.Add("Forms.Label.1", "Label1") .Left = 340 .Top = 5 .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" End With لازم تحديد مكان العنصر فى الفريم وذالك سيكون من خلال الخاصيه Left كم يبعد الليبل عن الضلع الايسر للفريم ؟؟؟ بكل بساطه انا عملت التكست بوكس يبعد عن الضلع الايسر بمقدار 180 وعملت عرضه 150 اذن 180+150=330 فأنا عملت Left =340 ليكون هناك فاصل مقداره 10 بين نهاية التكست بوكس وبين بداية الليبل الخاصيه Top اللى هى بعد الليبل عن الضلع الاعلى للفريم وجعلته = 5 نفس الكمبوبوكس والتكست بوكس لكى يكون هناك شكل منسق وجمالى وكذالك الخاصيه Height ارتفاع اليبل = 40 زى بالظبط ارتفاع الكمبوبوكس والتكست بوكس أما العرض Width جعلته 150 ( وتقدر تكبره او تصغره براحتك ) وباقى الخصائص معروفه ولا يوجد فيها شئ جديد شاهد الكود بشكله النهائى Private Sub UserForm_Initialize() With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox1") .Left = 20 .Top = 5 .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", "TextBox1") .Left = 180 .Top = 5 .Height = 40 .Width = 150 .TextAlign = 2 .FontSize = 20 .Font.Bold = True .BackColor = &HC0FFFF End With With Me.Frame1.Controls.Add("Forms.Label.1", "Label1") .Left = 340 .Top = 5 .Height = 40 .Width = 150 .SpecialEffect = fmSpecialEffectEtched .TextAlign = 2 .FontSize = 24 .Font.Bold = True .BackColor = 8454016 .Caption = "الصقر" End With End Sub وعند تشغيل الفورم ستجد الفورم كما هو بالصوره ---------------------------------------------------------------------------------------------------------------------- مثال رقم 2 :- لو انا عايز اعمل عدد 10 لليبل وعدد 10 تكست بوكس وعدد 10 كمبوبوكس داخل الفريم واتحكم فى الاسكرول بار شاهد الصوره التاليه أول خطوه لازم افعل خاصيه الاسكرول بار الرأسى للفريم من شاشة الخصائص فى مرحله الخطوه الثانيه هكتب كود فى حدث فتح الفورم واستخدم الحلقه التكراريه For Next Private Sub UserForm_Initialize() Dim Top As Integer Dim i As Integer Top = 5 For i = 1 To 10 هنا مكان كتابة الكود السابق Top = Top + 40 Next Me.Frame1.ScrollHeight = Top End Sub فى أول الكود عملت تعريف لعدد 2 متغير Top & i ثم كتبت ان الـ Top قيمتها = 5 لماذا تساوى 5 ؟؟ (أولا ممكن تكتب اى رقم كما يحلو لك) وهو قيمة الفرق بين الضلع الاعلى للفريم والصف الاول من العناصر لذالك كتبت الــ Top = 5 ثم عملت حلقه تكراريه وسميتها i وقلت ان i تساوى من 1 الى 10 الحلقة لما تشتغل هيكون فى اول لفه له قيمة i تساوى 1 ثم ينتقل الى السطر التالى وهو Top = Top + 40 اذن ناتج المعادله هيكون Top = 5+ 40 لماذا رقم 40؟رقم 40 هو ارتفاع العناصر ( الليبل والتكست بوكس والكمبوبوكس ) يعنى قيمة الــ Top حتى هذه للحظه بعد أول لفه تساوى 45 ثم يصل الكود الى Next يعنى التالى ارجع الى الحلقه For وخلى قيمة i تساوى 2 ثم ينتقل الى السطر التالى وهو Top = Top + 40 اذن ناتج المعادله هيكون Top = 45+40 يعنى قيمة الـ Top حتى هذه اللحظه تساوى 85 وهكذا الحلقه بتلف وكل مره قيمة الــ Top بتزيد حتى اخر لفه للحلقه سيكون 405 وبعد انتهاء الحلقه سياتى الكود الى اخر سطر وهو Me.Frame1.ScrollHeight = Top يعنى ارتفاع الاسكرول بار هو = Top اللى هو 405 طبعا الخاصيه ScrollHeight اتكلمنا عليها قبل كدا بالتفصيل وعرفنا ان وظيفتها تحديد ارتفاع الاسكرول بار طيب تعالو بقى نحط الكود السابق اللى بالمثال الاول مع تعديلات بسيطه جدا شاهد الكود 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 ماذا تم تغييره فى الكود اللى كان بالمثال الاول ؟ 1- تغيير هذا السطر فى كل عنصر تحكم على سبيل المثال الكمبوبوكس (With Me.Frame1.Controls.Add("Forms.Combobox.1", "Combobox" & i هنا الخاصيه Name لكل عنصر اسمه ComboBox & i فى اللفه الاولى للحلقه التكرارية سيكون قيمة i تساوى 1 اذن الكمبوبوكس فى الصف الاول هيكون الخاصيه Name اسمه ComboBox1 وفى اللفه التانيه للحلقه التكرارية سيكون قيمة i تساوى 2 اذن الكمبوبوكس فى الصف الثانى هيكون الخاصيه Name اسمه ComboBox2 وهكذا وذالك لكى يكون لكل كمبوبوكس اسم مختلف عن الاخر ونفس الكلام على الليبل والتكست بوكس 2- Top = Top. جعلت قيمة الخاصيه Top ( بعد العنصر عن الضلع الاعلى للفريم ) يساوى Top اللى هو قيمته كل مره بتتغير مع الحلقه التكراريه فى البدايه بيكون قيمته 5 فالعنصر فى الصف الاول هيبعد عن الضلع الاعلى للفريم بمقدار 5 وفى اللفه التانية للحلقه سيكون الــ Top قيمته 45 اذن العناصر فى الصف الثانى يبعدو عن الضلع الاعلى للفريم بمقدار 45 وهكذا ---------------------------------------------------------------------------------------- ارجوا ان اكون وفقت بالشرح والى لقاء اخر ومثال عملى رقم 3 وهيكون مهم جدا جدا جدا انتظرونا تقبلوا تحياتى
    2 points
  12. اعزائي اليكم هذا السطرالواحد من الكود والذي يقوم بفتح مربع حوار سحب الصور من الاسكنر وحفظ الصورة في نفس مسار برنامجك الاكسس ! Set img = CreateObject("wia.commondialog").ShowAcquireImage.SaveFile(CurrentProject.Path & "\" & InputBox("ادخل اسم الصورة") & ".jpg") تحياتي
    1 point
  13. السلام عليكم ورحمة الله وبركاته عيدكم مبارك وكل عام وانتم بخير شرح امكانيات الفورم وكيفية الاستخدام: 1 - استخدام الفورم لاكثر من قاعدة بيانات في المصنف على ان يكون لكل قاعدة كود لاظهار الفورم يتغير فيه معطياتك في متغيرات kh_SetAddrss .kh_SetAddrss "مثال1", "C10:AO10" اولاً : اسم ورقة البيانات ( افتراضي ) ثانياً : نطاق صف رؤوس اعمدة البيانات ( افتراضي ) ثالثاً : عمود التسلسل ( اختياري ) اذا اردت ادخال رقم تسلسل البيانات الخاص بالفورم تلقائيا في عمود معين سجل عنوان راس العمود . مع ملاحظة انه لا يكون من ضمن نطاق رؤوس اعمدة البيانات كما هو معمول في المثال 2. . kh_SetAddrss "مثال2", "C4:H4", "B4" 2 - تستطيع اضافة قائمة لعمود معين في الفورم باضافة تعليق على عنوان العمود وتكتب القائمة وتفصل بين الكلمات بالعلامة + 3 - ينسخ التنسيقات والمعادلات في السجل الجديد . 4 - يبحث في جميع الاعمدة حسب الاختيار من القائمة في الفورم . 5 - يعطي نتائج صحيحة عند البحث عن تاريخ اذا شيكت الزر البحث عن تاريخ . 6 - امكانيات زر البحث عن تاريخ يتم تحويل اي قيمة تضعها في مربع النص للبحث الى تاريخ بالتنسيق الافتراضي للفورم ,, مع امكانية ادخال رقم صحيح بين 1 الى 31 ليفهم على انه تاريخ اليوم للشهر الحالي والسنة الحالية 7 - ثوابت بامكانك تغييرها حسب طلبك بداية اكواد الفورم 1- تغيير تنسيقات إظهار التاريخ في الفورم في الثابت DtF 2- تغيير عٌرض مربعات الادخال في الثابت iWgt1 ----------------------------------------------------------------------------------------------------- هذه الامكانية غفلنا عن ذكرها : 8 - بامكانك انتقاء الاعمدة التي تريدها عند تسمية النطاق وترتيبها حسب ما تريد مع ملاحظة ان العمود الذي يعتمد عليه في احتساب آخر صف هو العمود الاول من التسمية مثلا: "E15,C15,H15:AX15" اول عمود هو E ----------------------------------------------------------------------------------------------------- المرفق 2003-2007 فورم ادخال و تعديل مرن.rar الاصدار الثاني http://www.officena.net/ib/index.php?showtopic=48811 الاصدار الثالث: http://www.officena....showtopic=51955
    1 point
  14. وعليكمالسلام ورحمة الله و بركاته أخي الكريم " عبد العزيز البسكري " الله يجزاك خير ويزيدك علم وبصيرة هذا هو المطلوب خالص دعائي لك
    1 point
  15. يخال انا عفاريتي عرفهم كويس بس بصراحه سيبهم يسرحو شوية وبكره نلمهم بقي انا كدا بفصل شحن وهنام انا بتكلم من الموبيل وانت فاعد تنطلي في كل موضوع سيبت بتاعه الصلاحيات وجيت هنا لاقيت المفاجئة ورايا بردو ماشي اما عملت فيك فصل هظبطلك ملف كويس هههههههه هتدعيلي ومين قالك ان داملوش علاقة بالموضوع دا بالعكس اكتب اسمي واسحب الخليه وهتلاقي معلومات عني دي مش مفاجئة ياوحشش بخصوص المساعدة اخر حاجه بطلبها مساعده الجمهور يعني تريث ولا تتسرع
    1 point
  16. انا بحاول اشوف ليها مخرج ما انت معقدنا ومالو يا معلم مسيري هعلم عليك هيجيلك يوم واقولك تعرف تقول سبع قفشات بتاعتك دي اما بالنسبة لاخي وائل ينفع تعمل صفحات من الشرقية لاسيوط بس هنعمل تعديل بسيط علي صفحة اليوزرز نوسع نطاق المستخدمين علي قد الصفحات وهبقي احط ليها مثال ليك بس حاليا يدوب اقدر اتقلب انام عشان نصحى علي الشغل باذن الله وهناك دماغي بتشتغل كويس واحطلك الامثلة اللي انت عايزها سلام
    1 point
  17. لا غلط .. هي في الأصل 100 فل و 14 (إنت هتكروتنا في التحليل بتاعك)
    1 point
  18. السّلام عليكم و رحمة الله و بركاته لا إله إلا الله محمّد رسول الله ألف شكر أستاذنا " ياسر فتحي البنّا " على المفاجأة السّارّة ألف شكر أستاذي الحبيب " ياسر خليل أبو البراء " على التّصويب الصّحيح تمام التّمام بارك الله فيكما .. جزاكما الله خيرًا و زادها بميزان حسناتكما فائق إحتراماتي
    1 point
  19. أخي الحبيب ياسر .. معلش أصلها حاجة في الطبع ، والطبع يغلب التطبع حاول تستفيد من الموضوع التالي عشان شكل الكود يبقا منظم وسهل الإطلاع عليه من هنا
    1 point
  20. اخي الغالي وائل الاسيوطي شكرا لمرورك الكريم هذا لان موضوعى بكم يثمر اخي واستاذي محمد حسن المحمد شفاك الله وعافاك وربنا ما يحرمناش من طلاتكم الجميلة لا يوجد اخطاء اذا لا يوجد اعتذار كل الشكر والتقدير لشخصكم الكريم اخي وحبيبي عبد العزيز البسكري يكفيني كلماتك الجميلة وجملك التي تجعلنا نتسابق الى المزيد من العطاء والمساعدة والمساهمة داخل هذه الاسرة الجميلة استاذي واخي وحبيبي ابو البراء نقد بناء بقى ولا مش بناء اديك علمت علينا وخلاص مهو لازم حد يرخم عليا مينفعشي الموضوع يعدي بالساهل كدا علي العموم تكرم حبيبي علي ملاحظاتك فانا والله ما وضعت الموضوع وما جائتني الفكرة الا وانا في العمل وكنت احاول ان الم الموضوع بسرعه وانجزه وطبعا المرفق كان مثال كنت قد وضعت به شاشة الدخول فقمت بحذف معظم الاضافات الغير مهمه داخل موضوعي ولكني فوت بعض الملاحظات وان شاء الله يبقي فيه تركيز اكتر باذن الله اخي الحبيب ياسر فتحي لك مني كل الاحترام علي لمرورك العطر زادك الله من علمه وخلي بالك من شروحاتك اصل زي ما انت شايف في ناس مش بتسيب حد في حالها :) :) مرفق التعديلات صلاحيات - Copy.rar
    1 point
  21. أخي الغالي ياسر فتحي بارك الله فيك على الموضوع الجميل أخي الكريم عبد العزيز نظراً لأنك تستخدم اللغة الفرنسية فيمكنك استخدام الدالة CAR المقابلة للدالة CHAR تقبلوا تحياتي
    1 point
  22. لا إله إلا الله محمد رسول الله
    1 point
  23. السّلام عليكم و رحمة الله و بركاته بارك الله فيك أستاذي القدير " ياسر خليل أبو البراء " على الشّرح المميّز للفرق بين النّظاميْن تمام .. فهمت منك الآن أوجه الاختلاف .. فائق إحتراماتي
    1 point
  24. السلام عليكم ورحمة الله وبركاته اخى الكريم اعتقد ان الفكرة فى تعبئه الفاتورة بشكل سريع .. دعنا نتخيل انك كتبت فى احد الخلايا احد حروف البحث وبعدها ظهر الفورم عندها ستختار احد الاصناف بناء على حرف البحث الموجود بالخليه .. بعدها سيتم غلق الفوره لكتابه حرف جديد بالخليه يعبر عن الصنف الاخر المراد ادخالة وهكذا .. اسلوب معقد وبطئ ... اما وعن فكرة الملف كما طلبها الاخ محمد عبد السلام فتتسم بالسرعه حيث يوجد تكست بوكس تغير فيه حرف البحث فى كل مرة وتختار الاصناف دون الحاجه الى غلق الفورم وفتحه ... تقبل تحياتى
    1 point
  25. أخي الكريم عبد العزيز أنا لا أفهم التفاصيل الكاملة للفرق بين النطامين 32 بت و64 بت ..لكن ما أستطيع قوله أنه إذا كانت لديك رامات عالية أكبر من 2جيجا وبروسيسور عالي فيفضل استخدام نظام الـ 64 بت في الويندوز والأوفيس لديك لكي تستغل كامل طاقات جهازك وساعتها ستلاحظ الفرق في السرعة والأداء والخفة تقبل تحياتي
    1 point
  26. السّلام عليكم و رحمة الله و بركاته إلى أستاذي القدير " ياسر خليل أبو البراء" أو كل من لديه معلومات .. لو تفضّلت إعطائي لمحة بسيطة وجيزة و مختصرة عن الفرق بين 32 بايت و 64 بايت .. منذ مدة و أنا أسمع بهذا لكن لحد الآن لم أستطع فهم الفرق بينهما .. فائق إحتراماتي لشخصك الكريم
    1 point
  27. السّلام عليكم و رحمة الله و بركاته خي الكريم "عبد العزيز البسكري أسأل الله العظيم أن يحفظك, و يبارك لك و يجعلك من أهل الجنة إن شاء الله. مع رسولنا محمد صلى الله عليه وسلم ...
    1 point
  28. اخى الكريم هل هذا ما تريد up-db1.rar up-db1.rar
    1 point
  29. اخى الحبيب الغالى / ياسر العربى ما شاء الله عليك شرحك وأسلوبك فى توصيل المعلومة رائع زادك الله من العلم الكثير والكثير وأدام عليك الصحة والعافية تقبل خالص تحياتى وتقديرى
    1 point
  30. السلام عليكم جزاكم الله خيرا على دعائكم وحسن سؤالكم. والحمد لله على كل حال والسلام عليكم.
    1 point
  31. السّلام عليكم و رحمة الله و بركاته تمام فهمت المقصود أخي الكريم " محمّد عبد السّلام " .. تفضّل أخي الغالي .. الطّلب الرّخيص فائق إحتراماتي لشخصك الكريم الفاتورة.rar
    1 point
  32. السلام عليكم الف سلامة ليك ياغالي شكلك في وعكة صحية دا غير الوعكات الاساسية
    1 point
  33. السّلام عليكم و رحمة الله و بركاته درس رائع .. هام و مميّز و مفيد .. و شرح أكثر من الرّائع بارك الله فيك أستاذنا الفاضل " ياسر العربي " على الاطلالات الممتازة .. جزاك الله خيرًا و زادها بميزان حسناتك و زادك من علمه و فضله فائق إحتراماتي و إعجاباتي
    1 point
  34. السلام عليكم أعتقد أخى و أستاذى ياسر أن أخانا أبا يوسف تاه قبل منى و منك لذلك مش قادر يوضح المطلوب بسرعة وبايجاز لكن أعتقد أنه فى النهاية يريد الآتى : 1- جلب البيانات من المجلد وهذا ما تحقق ورضى به أخونا أبويوسف 2- حساب عدد تكرار كل مكتب تربية و تعليم فى كل شيت ثم تجميع التكرارات فى شيت مستقل مش كده يا أبو يوسف و لا أنا لسه فى البطاطا ؟!!!!!!!!!!!!!! شوف يابو يوسف ان كان الكلام ده يمشى الحال نكمل و الا قولنا نقف و نشوف سكة تانيه أخى ياسر خلى بالك معاى ( و أنا متأكد أنك معاى و ما بتفوتش ) كبداية لحساب عدد تكرار كل مكتب تربية وتعليم فى كل ورقة أنا عملت كود مبدئى دخلت بيه ( فقط ) فى كل الأوراق لكى أتأكد من وجود النص "مكتب التربية" فى الخلايا المتاحة فى الصف الاول هذا هو الكود Option Explicit Sub countf() Dim SH As Worksheet Dim C As Range, Rng As Range Application.ScreenUpdating = False For Each SH In ThisWorkbook.Sheets If SH.Name <> "Master" Then SH.Activate For Each C In ActiveSheet.Range(Range("A1"), Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column)) If Not C.Find("*مكتب التربية*") Is Nothing Then C.Activate ' Set Rng = Range(ActiveCell, ActiveCell.End(xlDown)) Range("M1").Value = "مكتب التربية" Range("N1").Value = "العدد " End If Next C Next SH Application.ScreenUpdating = True End Sub اللى جاى بقى : تعديل الكود ده ليحسب عدد تكرار كل مكتب تربية وتعليم فى كل ورقة ثم ندمجه مع كود جلب البيانات ثم ندخل على مرحلة التجميع النهائية . مش كده اللى عايزه يا أبو يوسف و لا برضه أنا لسه فى البطاطا همتك معاى بقى أخى و أستاذى الغالى ياسر فى عمل CountIf فى الـــ vba أصلى ما عملتوش قبل كده تحياتى لكما
    1 point
  35. السّلام عليكم و رحمة الله و بركاته
    1 point
  36. أخي الكريم سابيك ..أعتقد أنه تم التنويه من قبل بتغيير اسم الظهور للغة العربية فيرجى الالتزام بالتعليمات إليك الملف التالي - بعد إذن أخي وحبيبي في الله - ياسر العربي ...عله يفي بالغرض UserForm As Keybad YasserKhalil.rar
    1 point
  37. الحمدلله ولا يهمك ، ومثل ما يقول العمانيين: كل يوم تعال جعفر
    1 point
  38. السّلام عليكم و رحمة الله و بركاته العفو أخي الكريم " مصطفى محمود مصطفى " ثقْ تمامًا أنَّنا كلّنا بهذا الصّرح التّعليمي الكبير في خدمة بعضنا البعض فائق إحتراماتي لشخصك المحترم
    1 point
  39. السّلام عليكم و رحمة الله و بركاته أخي الكريم " مصطفى محمود مصطفى " .. المشكل كان يكمن مثلما أشرت لك بمشاركتي الأولى حيث أخبرتك أن تطلق سراح الأكواد المساجين لكنّك تصر على إدانتهم .. أمزح معك فقط سيّدي الكريم لاحظ المرفق .. أرجو أن يكون هو المطلوب .. فائق إحتراماتي ملاحظة : إطلاق سراح الأكواد المساجين أقصد به سيّدي الفاضل الأكواد الملوّنة باللّون الأخضر داخل الفورم يتم حذف العلامة من أمامهم ليتغيّر لونهم إلى الأسود تنسيق التاريخ في الفورم 3.rar
    1 point
  40. السّلام عليكم و رحمة الله و بركاته أخي الكريم " مصطفى محمود مصطفى " الصورتيْن اللّتيْن أرفقتهما لم أتمكن من فتحهما .. أكيد الخلل يكمن في تنسيق الخلايا ..ربما تنسيق الخلايا عندك على الطريقة الأنجليزيّة الأمريكية التي تظهر الشّهر قبل اليوم .. هذا حسب مفهومي البسيط و المتواضع .. حاول التغيير و التّلاعب بالتّنسيقات ربّما يمكنك إصلاح الخلل .. لحين تكرّم أحد الأساتذة الأفاضل من لديهم الفكرة المناسبة لحل هذه الاشكالية .. فائق إحتراماتي
    1 point
  41. اخى الحبيب أتمنى ينال رضا .... راجع المرفق تنسيق 2016 --- 2015.rar
    1 point
  42. السلام عليكم ورحمة الله أخي الكريم، هذا حل بالمعادلات في الملف المرفق... بن علية Book21000.rar
    1 point
  43. حاول استبدال الفاصلة بفاصلة منقوطة (في المعادلة)
    1 point
  44. السلام عليكم هذه الصيغة C2<A2>E2 في المعادلة لا يقوم الاكسيل بمعالجتها كما تبدو, فلو استخدمت evaluate formula ستجد الخطوات كالاتي C2<A2>E2 ستتحوا في اول خطوة كا true>E2 فبذلك فبقية الخطوات ستكون خطأ . الافضل استخدام and كما ذكرت في ملفك ,المشكلة بس كانت في علامة < معمولة > جرب المرفق تحياتي Book210+.rar
    1 point
  45. Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend Sheets("Master").Activate For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub أخي الحبيب مختار بارك الله فيك على الكود الرائع الذي قدمته لنا على طبق من ذهب أخي الكريم صاحب الموضوع ..يرجى تغيير اسم الظهور للغة العربية (راجع التوجيهات في الموضوعات المثبتة في المنتدى) جرب الملف التالي بعد إضافة بسيطة لكود الأخ المتميز مختار ليقوم بفصل العمود الواحد لعدة أعمدة تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V1.rar
    1 point
  46. خامساً :- كيفية اضافه عناصر تحكم داخل الــ Frame مع التحكم فى الاسكرول بار وذالك عند فتح الفورم او اثناء العمل على الفورم وهو نشط العنوان يبدو انه غريب شوية ومعقد انا بس محتاج من حضرتك تشرب كوباية شاى وتفتح زهنك معايا لان ده شغل محترفين والحمد لله احنا مشينا مشوار طويل فلازم يكون عندك ثقه بنفسك وتقتحم الصعاب وميهمكش طالما انت فى جامعه اوفيسنا بص يا سيدى العنوان ده بختصار ماذا يعنى ؟ طبعا احنا عارفين ان علشان اصمم عنصر تحكم لازم يكون من شاشة التصميم لكن انت عمرك فكرة او خطر ببالك انك تخلق أو تنشئ عنصر تحكم وانت شغال على الفورم مش فى مرحلة التصميم !!!!!! طبعا انتو عارفين انى اناعملى وعلشان افهم لازم اعمل مثال عملى فبالمثال يتضح لنا المقال شوف الصوره دى وخليك معايا اوعى تغمض عنيك هو ده موضوعنا اليوم ازاى نصمم اى عنصر تحكم اثناء فتح الفورم بكود فى حدث فتح الفورم او اثناء عمل الفورم تعالو على سبيل المثال نعمل كود فى حدث فتح الفورم Initialize كدا انا عملت سطر الاعلان عن المتغير وقمت بتسميته Label ( وممكن تسميه اى اسم كيفما شئت ولكن كما قلت افضل تسميته طبقا لاسم عنصر التحكم ) وقلت ان نوع المتغير من النوع MSForms.Label وعايز احول المتغير ده الى كائن بحيث اعرفه واقدر اتعامل معاه فأستخدمت set وهذه الكلمة هى لتحويل المتغير الى كائن القاعده الخاصه بـ Set هى الكائن = المتغير set الكائن = Set Label ما هو الكائن ؟؟؟ هو عنصر تحكم هيتم اضافته على الفورم Controls.Add ( تعنى اضافه عنصر ) القاعدة العامه للـ Controls.Add هى (Controls.Add(ProgID, Name ,Visible الجزء الثالث , الجزء الثانى , الجزء الاول الجزء الاول :- ProgID يكون اجبارى الادخال وهو يكون احدى عناصر الفورم كالتالى الجزء الثانى :-Name هو اسم العنصر اللى هيتم استخدامه فى كتابة الاكواد وهو يقوم بدور الخاصيه Name فى شاشة الخصائص ويكون تعبئة اختياريا ولكن يفضل كتابتة اذا كنت تريد التعامل مع هذا العنصر فيما بعد الجزء الثالث:-Visible ويكون تعبئة اختياريا وهو يحمل خيارين أما True أو False ويفضل عدم استخدامه ليه يا عمنا ؟ لان طالما فكرت تنشأ عنصر تحكم اثناء عملك على الفورم اذا انت اكيد عايز تظهره للمستخدم مش انك هتخفية ! اذن لما نيجى نحول المتغير الى كائن لنستطيع التعامل معه هنستخدم قاعدة Set وهيكون كالتالى Set label = Controls.Add("forms.label.1", "label") هنا فى قاعدة Controls.Add قمت بتعبئة الجزء الاول ProgID وهو "forms.label.1" وتم وضعه بين علمتى تنصيص والجزء الثانى Name هو "label" وتم وضعه بين علامتى تنصيص وهو هيكون اسم العنصر فى كتابة الاكود الجزء الثالث Visible كما قلت انه اختيارى فلم اقم بتعبئته لذالك سيقوم الفيجوال بيسك باستخدام True بشكل افتراضى كدا وصلنا بالكود الى الان كالتالى Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") End Sub طيب انا كدا قمت بتصميم العنصر Label وعايز اعمل له خصائص على سبيل المثال اسم الليبل يكون " الصقر " يبعد عن الضلع الايسر للفورم بمقدار 100 عرضه يكون 120 يبعد عن الضلع الاعلى للفورم بمقدار 50 الخلفيه تكون حمراء محازة النص يكون بالمنتصف حجم الخط 20 سماكة الخط عريض التاثير يكون بارز طبعا الكلام ده شرحناه فى دروس الليبل وهيكون كالتالى فى الكود Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") With label .Caption = "ÇáÕÞÑ" .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised End With End Sub شاهد الصوره عند تشغيل الفورم عايزك تجرب تنشئ عنصر تحكم او عناصر تحكم غير الليبل لازم تجرب بنفسك يا عبدالتواب ناخد مثال اخر مثلا الكمبوبوكس شاهد الكود كالتالى ولاحظ الفرق بنفسك Private Sub UserForm_Initialize() Dim Combobox As MSForms.Combobox Set Combobox = Controls.Add("forms.Combobox.1", "Combobox") With Combobox .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised .RowSource = "A2:A10" End With End Sub شاهد الصوره عند فتح الفورم طبعا دى كلها مقدمه للدرس بتاعنا اللى لسه الى الان مبدأناش الشرح فيه ولكن كان لازم نعرف يعنى ايه نضيف عنصر تحكم اثناء عمل الفورم وليس من شاشة التصميم للدرس بقية انتظرونا
    1 point
  47. السّلام عليكم و رحمة الله و بركاته أخي الكريم " أبو عبد الرحمن البغدادي " في محرّر الأكواد ..الذيسْ وورْكْ بوكْ .. أكتب ما يلي : Private sub WorkBook_Open() UserForm1.Show End Sub على أساس أنّ اسم اليوزرفورم لديك هو : UserForm1 فائق إحتراماتي
    1 point
  48. اسم كل مستخدم هو نفسه الباسورد لفتح القاعده يعنى اسم المستخدم : Admin الباسورد : Admin اسم المستخدم : Developer الباسورد : Developer اسم المستخدم : User الباسورد : User اسم المستخدم : Viewer الباسورد : Viewer ملاحظة هامه : الازرار تختلف صلاحية فعاليتها من المستخدمن الادمن والمطور والمستخدم امممممممممم بالطريقه دى مش راح نحتاج لعمل باسورد على زر امر فقط كل مستخدم بكلمة المرور الخاصة به هو فقط وعلى حسب صلاحياته يتعامل مع المتاح له فقط - كما يمكن لكل مستخدم تغيير كلمة المرور الخاصة به قبل فتح البرنامج
    1 point
  49. اليك أخي كل ماتريد وأي شئ أنا تحت أمرك قائمة منسدلة 2.rar
    1 point
×
×
  • اضف...

Important Information