اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أ / محمد صالح

أوفيسنا
  • Posts

    4486
  • تاريخ الانضمام

  • Days Won

    198

كل منشورات العضو أ / محمد صالح

  1. تفضل أخي الكريم تم التحايل على الموضوع بحيلة بسيطة وهي عمل جدول يخص عدد مرات الغياب لكل يوم من أيام الأسبوع ثم إحضار اسم اليوم الذي يحتوي على أكبر عدد وربما يكون لدى الإخوة حلول أخرى mas_Max_Req.rar
  2. الحمد لله هكذا نستعمل هذا الكود في ربط البرنامج بجهاز المستخدم من خلال رقم الهارد ورقم المعالج ورقم اللوحة الأم معاً ونحن متأكدون من عمله على كل أنظمة تشغيل ويندوز للعلم رقم الهارد ديسك الذي يحضره الكود لا يتغير بعد الفورمات كما هو الحال في هذا الكود CreateObject("Scripting.FileSystemObject").GetDrive("c:\").serialnumber ولكن عذراً لم أتبين من الإخوة هل الكود يعمل في ويندوز 64 بت بدون تغيير الكود إلى Win64_ أم احتاج الأمر لتغييرها؟؟!!
  3. بسم الله الرحمن الرحيم أود أولا أن أشكر كل من يتعاون ويساهم في هذه الدورة التي تدل على أن التعاون أساس التقدم وأواصل مع أحبتي الفصل الرابع في دورة فيجوال بيسك التطبيقات vba نموذج كائن الإكسل excel object model مقدمة نظرية البرمجة التقليدية كانت لا تعتمد على أسلوب الكائنات فكان المبرمج يكرر الكثير من الأكواد لتحديد الكائن الذي يعمل عليه ولكن تغير الأمر بظهور البرمجة كائنية التوجه object oriented programming أو اختصاراً oop ولنتعرف أولا على معنى الكائن: الكائن هو وحدة كاملة لها خصائصها وطرقها (أفعالها) فعلى سبيل المثال: الإنسان كائن له خصائصه ومنها اسمه وجنسه وطوله ولون شعره وهكذا وله أيضا أفعاله الخاصة به فالإنسان: يمشي يتحدث يسكت يقف يجلس وهكذا. وكل تطبيق في الأوفيس له نموذج كائن خاص به يمكنك استخدامه من الفيجوال بيسك للتطبيقات vba والتحكم فيه بدءً من التطبيق ككل حتى أي خلية في أي ورقة عمل. ويندرج تحت الكائن الرئيسي كائنات كثيرة فرعية (كخصائص للكائن الأكبر) وكل كائن له خصائصه وله طرقه (أفعاله) ويوجد في الإكسل أكثر من 200 كائن ولهم أكثر من 5000 خاصية وطريقة وبالتالي يصعب تذكرهم جميعاً وهنا يظهر دور مستعرض الكائنات object browser بالضغط على F2 من لوحة المفاتيح ، ويوجد أيضاً ما يسمى بمجموعات الكائنات collections وهي مجموعة من الكائنات التي لها نفس عدد الخصائص والطرق فمثلا: محمد و احمد ومحمود يمكن جمعهم في مجموعة الذكور مثل workbooks للتعامل مع مجموعة المصنفات المفتوحة و worksheets للتعامل مع أوراق عمل المصنف النشط أو أي مصنف يتم تحديده ، ولكن من أهم هذه الكائنات وأكثرها استخداماً: application التطبيق و workbook المصنف و worksheet ورقة العمل و chart التخطيط (الرسم البياني) و range المدى و dialog صندوق حواري. وسوف نتحدث عن كل كائن من هذه الكائنات بصورة مختصرة: * التطبيق application هو أول كائن وكل الكائنات الأخرى أبناء له ويمكن الاستغناء عنه في حالة وجود الخاصية المستعمله أو الطريقة ضمن الكائن عام <globals> في مستعرض الكائنات بمعنى أنه يمكنك استعمال أي من السطرين التاليين للتعامل مع الخلية النشطة. application.activecell أو activecell وبالنسبة للخصائص أو الطرق التي لا توجد ضمن العام <globals> يجب كتابة مسارها كاملاً بهذه الصورة فمثلا: (لإيقاف تحديث الشاشة) Application.ScreenUpdating = False ولن تحصل على النتائج المطلوبة إذا استعملت ScreenUpdating = False ويمكنك البدء في مدارسة خصائص وطرق أي كائن مثل application عملياً بكتابة اسم الكائن في بداية السطر ثم نقطة ستظهر قائمة بكل الخصائص والطرق المتاحة لهذا الكائن. (فقط يلزمك ترجمتها ومعرفة طريقة استخدامها وهذا ما ستتحدث عنه الفصول القادمة إن شاء الله في الدورة) * المصنف workbook للتعامل مع المصنف المفتوح ويمكنك استخدام مجموعة المصنفات workbooks المزيد من المعلومات في الفصل التاسع. * ورقة العمل worksheet للتعامل مع ورقة العمل المحددة ويمكنك استعمال مجموعة worksheets المزيد من المعلومات في الفصل العاشر. * المدى range للتعامل مع أي مدى حتى وإن كان خلية واحدة مثال: (للتعامل مع الخلية a1 ) range(“a1”) المزيد من المعلومات في الفصل 11 * مربع الحوار dialog للتعامل مع مربعات الحوار الموجودة ضمن الإكسل ويمكن استعمال مجموعة dialogs فمثلا لعرض الصندوق الحواري الخاص بحفظ باسم save as نستخدم Application.Dialogs(xlDialogSaveAs).Show المزيد من المعلومات في الفصل 12 * التخطيط chart للتعامل مع الرسم البياني وتحديد خصائصه وأفعاله ممن خلال الكود المزيد في الفصل 13 === للتعامل مع الخصائص نستعمل الصورة العامة التالية: القيمة = الخاصية.الكائن مثال: لتغيير قيمة الخلية a1 إلى رقم 45 range(“a1”).value=45 === للتعامل مع الطرق (الأفعال) نستعمل الصورة العامة التالية: باقي الخيارات الطريقة.الكائن مثال: لنسخ ورقة العمل الأولى بعد الثالثة Worksheets(1).Copy After:=Worksheets(3) === للتعامل مع المجموعات يتم استعمال رقم (مسلسل - ترتيب) الكائن في المجموعة مثال: للتعامل مع ورقة العمل الثانية worksheets(2) ****************************** وبإذن الله في الجانب العملي من هذا الفصل سوف نتناول ما يلي: استخدام مستعرض الكائنات إنشاء كائن تغيير خصائص كائن مقارنة الكائنات استخدام طرق(أفعال ووظائف) كائن عرض صناديق الحوار الموجودة ضمن الإكسل ========= والسلام عليكم ورحمة الله وبركاته
  4. سعيد جدا بتواصلك أهي الكريم أبوخليل إذا كانت النتيجة لديك صفر بالمائة ولم يظهر شيء فنريد نحن العرب تعديل الكود ليعرض ما يناسب نسخ 64bit هل تشترك معي فيها؟ حاول أن تعدل في الكود الخاص بالدالة وتستبدل Win32_ بما يناسبك Win64_ وجرّب هل ستنفع أو لا؟؟
  5. الحمد لله ولكن أتمنى أن يجرب الكود أحد الإخوة الذين يملكون أنظمة من نوع 64bit
  6. شكرا لمرورك أخي الكريم نارت ولكن ياريت معلومات تفصيلية يعني هل ظهر عندك رقم المازر بورد؟ أم لا؟ نسختك 32bit أم 64bit ؟
  7. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته أثناء تجولي في الإنترنت وجدت ملفاً يعرض معلومات النظام ومنها مثلا سيريال الهارد ديسك رقم المعالج رقم المازر بورد وغيرها الكثير فأحببت مشاركتكم فيه .... أترككم معه وأتمنى تجربة الملف على أنظمة تشغيل مختلفة يعني xp و 7 و vista وسيفن و 8 و 8.1 و 10 وينندوز بالنواة 32 أو 64 وإخباري بالنتيجة SystemInfo.rar
  8. بارك الله لك على حلك أخي العيدروس حل موفق ............. ولا يهمك أخي الكريم المهم أن نتعاون جميعا في الوصول للحل
  9. تفضل أخي الكريم عدل كود الموديول إلى ما يلي: Public appTime As Date Public Sub Blink() If Sheets(1).Range("A1") <= 0 Then With Sheets(1).Range("A1").Interior If .ColorIndex = 2 Then .ColorIndex = 3 Else .ColorIndex = 2 End If End With appTime = Now() + TimeValue("00:00:01") Application.OnTime appTime, "Blink" Else Sheets(1).Range("A1").Interior.ColorIndex = 2 End If End Sub ثم اضغط دبل كلك على sheet1 ثم الصق هذا الكود Private Sub Worksheet_Activate() Call Blink End Sub Private Sub Worksheet_Change(ByVal Target As Range) Call Blink End Sub
  10. بارك الله لك أخي يحياوي واسمح لي بهذا التوضيح هذه الدوال يمكن التعامل معها في vb و vba و vb.net الصورة العامة للتعامل مع الإعدادات من خلال الريجيستري لحفظ الإعدادات في الريجيستري SaveSetting( ByVal AppName As String, ByVal Section As String, ByVal Key As String, ByVal Setting As String) وهي بالترتيب كالتالي : اسم التطبيق ثم اسم القسم ثم اسم المفتاح ثم قيمة المفتاح (وجميعها مطلوب) وللقراءة من الريجيستري GetSetting( ByVal AppName As String, ByVal Section As String, ByVal Key As String) وترجع لنا قيمة من نوع النصي string ونلاحظ أنه يمكننا الاستغناء عن قيمة المفتاح لأنها اختيارية ولحذف إعداد من الريجيستري لحذف التطبيق ككل DeleteSetting(ByVal AppName As String) ولحذف القسم المحدد فقط DeleteSetting(ByVal AppName As String, ByVal Section As String) ......... والحمد لله أولا وآخرا
  11. أشكر جميع الإخوة على المرور ولكن اسمح لي أخي أبا نصار العيدروس ماذا تعني بـ "طريقة تضليل الكود الغير مستخدم" وبالنسبة لطلبك الثاني فمضمونه هو الهدية الثانية وإن كان طلبك الأول يخص كيفية تلوين الكود داخل نافذة الفيجوال بيسك كما يظهر في vb.net فهذه هي الهدية الأولى التي وعدتكم بهما لمن يكتشفهما وفقنا الله وإياكم لكل ما يحب ويرضى
  12. من أروع ما قرأت في موضوع رضا الناس هذه القصيدة التي لم أقف على صاحبها ولا حتى عنوانها ضحكتُ فقالوا ألا تحتشـم؟ ........ بكيت فقالوا ألا تبتسم؟ بسمت فقالوا يرائـــــــــي ........ عبست فقالوا بدا ما كتم صمتّ فقالوا كليل اللسان ........ نطقت فقالوا كثير الكلم حلمت فقالوا صنيع الجبان ........ ولو كان مقتدرا لانتقم بسلت فقالوا لطيشٍ بــــه ........ وما كان مجترئا لو حكم يقولون شـــذٌ إذا قلـــت لا ........ وإمّعةٌ حين وافقتـــــهم فأيقنتُ أني مهــــــما أُرِدْ ....... رضا الناس لابد من أن أُذَم طبعا هذا يخص الناس الذين ليس لهم همٌ سوى تتبع أخطاء الناس وإظهار أخطائهم حتى وإن لم يخطئوا أما باقي المعتدلين من الناس فيستسحنون الفعل الحسن ويستقبحون الفعل القبيح
  13. والآن مع الجزء الثاني من الفصل الثالث لدورة vba والذي يحتوي على: إنشاء ماكرو بدون معاملات (parameters) إنشاء ماكرو بمعاملات إنشاء دالة بدون معاملات (parameters) إنشاء دالة بمعاملات استدعاء ماكرو أو دالة من داخل ماكرو استعمال نافذة التصحيح debug ربط النصوص والمتغيرات ونتائج الدوال ببعض إضافة تعليق التحكم بالتعليقات بالقائمة المتخصرة ولا ينقصني سوى دعاؤكم لي بالخير والتوفيق في الدنيا والآخرة
  14. أخي عبد القادر ياريت تذكر لي رقم الخطأ ونص رسالة الخطأ ونوع نظام التشغيل لديك حتى أتمكن من معرفة سبب الخطأ وعلاجه
  15. تفضل أخي الكريم هذه فكرة بسيطة لعمل المطلوب mas_showform_1st_time_only.rar
  16. مفيش مشكلة ما دام النتائج واحدة
  17. أكرمك الله أخي عبد الله هذا أمر لتشغيل on screen keyboard الموجودة ضمن نظام تشغيل الويندوز ويمكن الوصول إليها من start--->run--->osk ولكن لم نعرف هل هذا هو المطلوب أم لا؟؟
  18. تفضل أخي أحمد لحساب التقدير يمكنك كتابة هذه المعادلة في اي عمود بعد اللغة العربية =IF(D3>="غ","دون",IF(D3>=85,"ممتاز",IF(D3>=75,"جيد جيداً",IF(D3>=65,"جيد",IF(D3>=50,"مقبول","دون"))))) وطبعاً يمكنك تكرارها مع باقي المواد وبالنسبة لاحتساب الغائبة راسبة يمكنك استعمال المعادلة التالية =SUMPRODUCT(--($C$3:$C$12="أنثى"),--($D$3:$D$12<50),--($B$3:$B$12=1))+SUMPRODUCT(--($C$3:$C$12="أنثى"),--($D$3:$D$12="غ"),--($B$3:$B$12=1))
  19. بعد إذن الإخوة يمكنك استخدام هذا الكود أخي الكريم عند الضغط على زر في النموذج Shell "cmd /c osk", 0 وهو الخاص بتشغيل لوحة المفاتيح الموجودة في الويندوز
  20. ويمكنك عملها بالكود كما يلي Private Sub Workbook_BeforePrint(Cancel As Boolean) Dim WS As Worksheet For Each WS in Worksheets WS.PageSetup.LeftHeader = "أي حاجة" Next WS End Sub طبعا يمكنك تحديد المكان الذي تريد الكتابة به كما تريد leftheader centerheader rightheader وكذلك leftfooter centerfooter rightfooter أتمنى أن يكون الكود مفيداً لإخوتي
  21. أخي الكريم : أبا نصار وأخي سعيد بيرم تستحقان الترقية إلى أكثر من ذلك وفقكما الله وكما قلت سابقاً الترقية تعني مزيداً من الاجتهاد ممن تتم ترقيتهم فالمكسب لنا نحن أعضاء أوفيسنا
  22. أخي الكريم alidroos الدالة format ترجع قيمة من نوع Variant (String) ولا ترجع أي خطأ عندي ولكن جرب أن تعلن عن المتغير بنوع variant وليس string ليصبح الإجراء كاملا إلى Sub mas() Dim thedate As Variant thedate = Format(Date, "long date") MsgBox thedate End Sub
  23. سؤال وجيه أخي عبد القادر يمكنك عدم الإعلان عن المتغيرات في vba وتكتفي فقط بتعيين قيمتها وسوف يتم إنشاء هذا المتغير عند قراءة سطر التعيين ولكن الأصح والأسلم من الوقوع في الخطأ هو الإعلان عن كل متغير وتحديد نوعه في جملة الإعلان تصور معي مثلا أنك لا تعلن عن المتغيرات ولا أنواعها: ثم عينت قيمة لمتغير اسمه student ثم بعدها قمت بتغيير قيمة هذا المتغير ولكن بخطأ إملائي مثلا student=tudent+10 (لاحظ الخطأ الإملائي في اسم المتغير) في هذه الحالة سيتم إنشاء متغير جديد باسم tudent وسيتم وضع 0 فيه ثم يتم إضافة 10 عليه وبالتالي تكون قد تغيرت قيمة student الأصلية إلى 10 فقط في حين أنك تريد أن تزيد على الرقم الأصلي 10 طبعاً تقول أنه يسهل عليك اكتشاف موضع الخطأ يدويا في حالة سطور قليلة من الكود ولكن كيف يتم متابعة الخطأ في الملفات التي تحتوي على أكواد كثيرة نأتي للصورة الصحيحة: إذا حدث هذا وأنت قد قمت بتنشيط require variable deceleration في نافذة الخيارات لمحرر الفيجوال بيسك أو كتبت Option Explicit في أعلى الموديول سيتم الانتقال مباشرة إلى موضع الخطأ ويسهل تصحيحه بإذن الله
×
×
  • اضف...

Important Information