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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    195

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

  1. مفيش مشكلة ما دام النتائج واحدة
  2. أكرمك الله أخي عبد الله هذا أمر لتشغيل on screen keyboard الموجودة ضمن نظام تشغيل الويندوز ويمكن الوصول إليها من start--->run--->osk ولكن لم نعرف هل هذا هو المطلوب أم لا؟؟
  3. تفضل أخي أحمد لحساب التقدير يمكنك كتابة هذه المعادلة في اي عمود بعد اللغة العربية =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))
  4. بعد إذن الإخوة يمكنك استخدام هذا الكود أخي الكريم عند الضغط على زر في النموذج Shell "cmd /c osk", 0 وهو الخاص بتشغيل لوحة المفاتيح الموجودة في الويندوز
  5. ويمكنك عملها بالكود كما يلي 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 أتمنى أن يكون الكود مفيداً لإخوتي
  6. أخي الكريم : أبا نصار وأخي سعيد بيرم تستحقان الترقية إلى أكثر من ذلك وفقكما الله وكما قلت سابقاً الترقية تعني مزيداً من الاجتهاد ممن تتم ترقيتهم فالمكسب لنا نحن أعضاء أوفيسنا
  7. أخي الكريم alidroos الدالة format ترجع قيمة من نوع Variant (String) ولا ترجع أي خطأ عندي ولكن جرب أن تعلن عن المتغير بنوع variant وليس string ليصبح الإجراء كاملا إلى Sub mas() Dim thedate As Variant thedate = Format(Date, "long date") MsgBox thedate End Sub
  8. سؤال وجيه أخي عبد القادر يمكنك عدم الإعلان عن المتغيرات في vba وتكتفي فقط بتعيين قيمتها وسوف يتم إنشاء هذا المتغير عند قراءة سطر التعيين ولكن الأصح والأسلم من الوقوع في الخطأ هو الإعلان عن كل متغير وتحديد نوعه في جملة الإعلان تصور معي مثلا أنك لا تعلن عن المتغيرات ولا أنواعها: ثم عينت قيمة لمتغير اسمه student ثم بعدها قمت بتغيير قيمة هذا المتغير ولكن بخطأ إملائي مثلا student=tudent+10 (لاحظ الخطأ الإملائي في اسم المتغير) في هذه الحالة سيتم إنشاء متغير جديد باسم tudent وسيتم وضع 0 فيه ثم يتم إضافة 10 عليه وبالتالي تكون قد تغيرت قيمة student الأصلية إلى 10 فقط في حين أنك تريد أن تزيد على الرقم الأصلي 10 طبعاً تقول أنه يسهل عليك اكتشاف موضع الخطأ يدويا في حالة سطور قليلة من الكود ولكن كيف يتم متابعة الخطأ في الملفات التي تحتوي على أكواد كثيرة نأتي للصورة الصحيحة: إذا حدث هذا وأنت قد قمت بتنشيط require variable deceleration في نافذة الخيارات لمحرر الفيجوال بيسك أو كتبت Option Explicit في أعلى الموديول سيتم الانتقال مباشرة إلى موضع الخطأ ويسهل تصحيحه بإذن الله
  9. الأخ الكريم عبد الفتاح هذه المعادلة تقوم بعد الذكور فقط بينما الأخ أحمد يسأل عن عدد الإناث اللائي يقل مجموعهن عن 50 وهن من فصل 1 يعني عدّ بثلاثة شروط
  10. شاكر جدا لجميع الإخوة على المرور وأتمنى للجميع الفائدة والمتعة وبالنسبة لأخي سعد : نوع البيانات object هو عام يمكن استعماله مع أي كائن من الكائنات المذكورة من سيادتكم وغيرها فمثلا تطبيق الإكسل هو عبارة عن كائن له خصائصه ومنها شرائط الأدوات ومكانه على الشاشة وله أحداثه (أفعال) منها مثلا quit ويمكن التعامل مع المصنف النشط ككائن وكذلك ورقة العمل النشطة وكذلك المدى المحدد وللتعرف أكثر على الكائنات الموجودة في برنامج الإكسل وخصائصها ووظائفها يمكنك استعمال مستعرض الكائنات object browser وذلك بالضغط على f2 في محرر الفيجوال بيسك حيث تجد في الناحية اليسرى كل الكائنات الممكنة وبالضغط على الكائن المطلوب يظهر في الناحية اليمنى خصائصه ووظائفه التي يمكنك استعمالها مع العلم أنه يمكن أن يكون كائن معين خاصية ضمن كائن آخر (رغم كونه كائن كامل) مثل المصنف النشط هو ضمن التطبيق وكذلك ورقة العمل النشطة ضمن المصنف وكذلك المدى ضمن ورقة العمل وهكذا أتمنى أن يكون الأمر اتضح
  11. أخي الكريم تعني هذه الإشارة -- أنك تقوم بتحويل الناتج إلى 0 و 1 في كل قوس وذلك حتى نحصل على العدد الذي وافق الشروط وللتأكد من ذلك حدد القوس الأول مثلا والخاص بعدد الإناث ثم اضغط f9 من لوحة المفاتيح ماذا تلاحظ؟ اضغط ctrl+z للتراجع عن الخطوة الأخيرة
  12. بالإضافة لحل أخي الكريم عبد الله ضع هذه المعادلة في الخلية التي تريدها =SUMPRODUCT(--($C$3:$C$12="أنثى"),--($D$3:$D$12<50),--($B$3:$B$12=1)) وجرب أخي أحمد وأخبرني بالنتيجة
  13. أخي الكريم mom101 بالنسبة للسؤال الأول: نعم تستعمل dim للإعلان عن المتغيرات و const للإعلان عن الثوابت وبالنسبة للسؤال الثاني : يتم تعريف المتغير ب dim ثم تعيين قيمة مبدئية له من خلال variablename=value وفي حالتنا هذه قمنا بتعيين قيمة 10 كقيمة مبدئية للمتغير f1 ولا يمنع هذا من تغير قيمة f1 أثناء عمل البرنامج فمثلا لو كتبنا هذا السطر f1=f1+10 msgbox f1 ستكون النتيجة ظهور الرقم 20 في رسالة وهذا يعني أن قيمة المتغير f1 تغيرت إلى 20 ولم تظل ثابتة على 10 التي تم تعيينها له مبدئياً أما إذا نفذت نفس الخطوات مع الثابت فقمت بالإعلان عنه ثم تعيين قيمة له (لاحظ عدم ذكر كلمة مبدئية) ثم حاولت أن تضيف له 10 بنفس الكود المستعمل مع المتغير ستظهر رسالة خطأ تخبر بأنه assignment to constant not permitted وتعني لا يجوز تعيين قيمة لثابت أتمنى أن يكون اتضح الأمر
  14. بارك الله لك أخي عبد الله range ليس نوع بيانات وإنما هو كائن object كامل له خصائصه وأحداثه وأفعاله لذلك يلزمنا عند تعيين قيمة له أن نستعمل كلمة set بهذه الصورة set a1=range("a25") أما طريقة تعيين قيمة لمتغير فتتم بالصورة الافتراضية varibalename=value وبانتظار ملاحظات الإخوة ومناقشاتهم حول هذا الموضوع وقد ظهرت هديتي للإخوة في الشرح فما هي؟ حتى يتم شرحها أيضاً
  15. بارك الله لك أخي عماد بالفعل ما تقوله صحيح وربما اشتبه علي الأمر حيث توجد هذه الميزة في vb و vb.net ولكن بالتحقق من نوع بيانات المتغير c1 من خلال كتابة الدالة typename(c1) يظهر لنا أنه بالفعل تم الإعلان عن المتغير وحجز مكان في الذاكرة له ولكن يبقى نوع بياناته فارغاً empty فإذا تم تعيين قيمة له وكانت هذه القيمة تاريخ يظهر لنا أن نوع بيانات هذا المتغير date .............. فالفرق الجوهري بين المتغير الأول والثالث في السطر هو: أن المتغير الأول والثاني يمكن تغيير نوع بياناتهم حسب القيمة التي يتم تعيينها لهم أما المتغير الثالث يثبت على نوع البيانات التي تم تعريفه بها وممكن أن يرى أحدنا هذه بأنها ميزة في تغير نوع بيانات المتغير. .......... أنا شخصياً أعتمد على الطريقة الثانية وهي الأصح dim c1 as date,c2 as date,c3 as date وفي الأخير أتمنى أن نكون قد استفدنا من هذا الجزء وبانتظار ملاحظتكم بخصوص الهديتين
  16. أشكر جميع الإخوة على المرور والكلمات الرقيقة وكما وعدتكم هذا أول فيديو وهو يخص الإعلان عن المتغيرات والثوابت بصورة كاملة وبصورة مختصرة ومعرفة نوع بيانات متغير بالكود وكذلك التحويل بين أنواع البيانات وسيتم بإذن الله شرح كيفية كتابة الماكرو والدالة وإضافة تعليقات في المرة القادمة ولا تنسوا أخاكم محمد صالح من صالح دعائكم
  17. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته استكمالاً لما بدأه الإخوة الأعزاء أواصل معكم أحبابي أعضاء منتدى أوفيسنا سلسلة شرح فيجوال بيسك التطبيقات vba عرفنا في الفصل الأول تسجيل الماكرو ومستويات الأمان والتعامل مع ما تم تسجيله من الماكروات سواء بالحذف أو تعيين اختصار أو ربطه بزر ........ والكثير. وفي الفصل الثاني تعرفنا على محرر فيجوال بيسك وواجهته الرئيسية ومكونات نافذته واستخدامات كل جزء فيها وخصائص معظم عناصر التحكم التي يمكن استعمالها في نماذج vba. والآن جاء دورنا مع التعرف على أساسيات لغة vba كلغة برمجة: ما الفرق بين vb (فيجوال بيسك) و vba (فيجوال بيسك التطبيقات) ؟ لا أجد فرقا كبيراً فالقواعد المتبعة هنا هي نفسها هناك ولكن الفرق الوحيد الجوهري هو أن vb قائمة بذاتها أما vba فيتم احتوائها داخل أي تطبيق مثل الإكسل أو الوورد أو أي تطبيق آخر كما أن vb قادرة على إنتاج ملفات تنفيذية exe تكون واجهة للبرنامج بعد ذلك أما vba فتستعمل التطبيق المضمنة داخله كواجهة لها ولا تنتج ملفات تنفيذية. * من أول ما يجب علينا معرفته في أي لغة برمجة هي: المتغيرات : وهي عبارة عن مخازن يتم تحزين البيانات بداخلها في ذاكرة الحاسب وتختلف مساحة المخزن باختلاف حجم ما يتم تخزينه بداخله وهنا يجدر بنا الإشارة إلى شروط تسمية المتغيرات فيجب ألا يكون اسم المتغير من الكلمات المحجوزة في إكسل وهذه صورة لبعضها ويجب ألا يبدأ اسم المتغير برقم ويمكن أن يبدأ بحرف أو _ (underscore) وألا يحتوي على مسافة أو رمز خاص لذلك نجد أن vba تحتوي على مجموعة من أنواع البيانات التي تحدد نوعية المتغيرات منها: Byte : وهو اصغر أنواع البيانات مساحة حيث يشغل في ذاكرة الكمبيوتر 1 بايت ومداه الأرقام من صفر إلى 255 فقط. Integer : وهو لتخزين الأرقام الصحيحة بطول 5 خانات ويشغل في الذاكرة 2 بايت ويمكن اختصار تعريفه هكذا: dim variableName% بدلا من dim variableName as integer Long : وهو رقم صحيح طويل بطول 7 خانات ويشغل في الذاكرة 4 بايت ويختصر بإضافة & في نهاية اسم المتغير. Single : وهو لتخزين رقم عشري بطول 7 خانات ويشغل في الذاكرة 4 بايت ويختصر بإضافة ! في نهاية اسم المتغير. Double : لتخزين رقم عشري بطول 15 خانة ويشغل في الذاكرة 8 بايت ويختصر بإضافة # في نهاية اسم المتغير. Boolean : لتخزين قيم منطقية true/false ويشغل في الذاكرة 2 بايت. String : لتخزين النصوص حتى أكثر من 2 مليار حرف والحرف يشغل 1 بايت أي يتسع المتغير النصي إلى 2 جيجا بايت نصوص. Date : لتخزين التواريخ والأوقات ويشغل في الذاكرة 8 بايت يبدأ تاريخ vba من 1/1/100 حتى 31/12/9999 (لاحظ أن تاريخ الإكسل يبدأ من 1/1/1900) ويجب إحاطته بعلامة # مثال : mydate=#1/1/2000# Object : لتخزين الكائنات التي تحتوي على خصائص ووظائف ويتم تعيينه بجملة set ويشغل في الذاكرة 4 بايت أو حسب خصائص ووظائف الكائن المحدد. Variant : لتخزين كل الأنواع السابقة ويمكن تخزين المصفوفات بداخله أيضاً. وهذه الصورة توضح أنواع البيانات ......................... نأتي إلى معاملات لغة vba وتنقسم إلى : معاملات حسابية مثل الأس والضرب والجمع وهكذا يجب علينا معرفة أولوية حساب هذه المعاملات (أي العمليات يتم أولاً؟) وهي كالتالي مرتبة من الأكثر أولوية إلى الأقل كما بالصورة: نأتي الآن إلى معاملات المقارنة وهي تستعمل للمقارنة بين قيمتين وهي كالتالي: = يساوي <> لا يساوي > أكبر من >= أكبر من أو يساوي < أصغر من <= أصغر من أو يساوي والآن جاء دور المعاملات المنطقية : وهي التي تستعمل للتحقق من أكثر من شرط وهي كالتالي: Not : وهي لعكس نتيجة قيمة فإذا كانت true ترجع هي القيمة false والعكس صحيح. And : وترجع true إذا كان كلا الشرطين صحيح وترجع false فيما عدا ذلك. Or : وترجع false إذا كان كلا الشرطين غير صحيح وترجع true فيما عدا ذلك. Xor : وترجع false إذا كان كلا الشرطين صحيحاً أو خطأً وترجع true فيما عدا ذلك. Eqv : وهي عكس xor حيث ترجع true إذا كان كلا الشرطين صحيحاُ أو خطأً وترجع false فيما عدا ذلك. .......... إن أول ما يستعمله المبرمج في لغة البرمجة هي دالة الرسائل حيث يقوم من خلالها بإرسال رسائل للمستخدم أو يأخذ منه قيم من خلال مربع الإدخال فهيا بنا نتعلم الرسائل ومربع الإدخال: الصيغة العامة لصندوق الرسالة msgbox : MsgBox(prompt[, buttons] [, title] [, helpfile, context]) وتعني prompt نص التنبيه ثم بعدها الأزرار المستخدم في الرسالة ثم عنوان الرسالة ثم ملف المساعدة ثم رقم المقالة داخل ملف المساعدة وكل القيم اختيارية ما عدا نص الرسالة وهذه صورة تحتوي على أسماء الثوابت والقيم الرقمية المستخدم في خانة الأزرار. ويمكننا أن نضع القيمة الراجعة من الرسالة في متغير مثل: Mas=msgbox(“are you ready”,vbyesno,”title”) وهذه صورة توضح القيم الراجعة من صندوق الرسائل كثوابت وكقيم رقمية لاستعمالها في كاستجابة لاختيار المستخدم فإذا اختار المستخدم نعم نفذ كذا وإذا اختار المتخدم لا نفذ كذا. نأتي الآن لمربع الإدخال inputbox وهو شبيه بصندوق الرسائل وصيغته العامة هي: myValue = InputBox(message, title, defaultValue) وتحتاج إلى نص الرسالة وعنوان الصندوق والقيمة الافتراضية بحيث إذا لم يدخل المستخدم قيمة أو وافق على القيمة المقترحة منك ويمكننا التعامل مع القيمة الراجعة منه كما تعاملنا مع القيمة الراجعة من الرسالة. ..................... وبإذن الله في الدرس القادم سوف نتعرف على كيفية الإعلان عن المتغيرات والثوابت وكذلك ما يسمى بمدى المتغيرات وكيفية إنشاء ماكرو من خلال الكود وليس بتسجيل ماكرو وكذلك كيفية إنشاء دالة . وكيفية إضافة تعليقات للكود وبإذن الله سوف يكون فيديو. .......... وأعدكم بهديتين في الفيديو ولكن بعد أن يتم اكتشافهما من حضراتكم سوف يتم إخباركم بالسر فيهما.
  18. أخي الكريم ببساطة الحمد لله الذي وفقك للوصول للحل ولكن يبدو لي أن المطلوب تغير وإذا كنت من البداية كتبت المطلوب صحيحاً كما هو موجود في المشاركة 21 لما ضاع عليك وقت كبير في انتظار الحل ولما ضاع مني ومن كل من حاول الجهد في الوصول لما كنت تريده الحمد لله
  19. أخي الكريم مكتوب في التوضيح وهذا شيء غير منطقي فتثبيت نتيجة الصيغة معناه حذف الصيغة والاحتفاظ بنتيجتها فقط على العموم في المرفق خلاصة الأمر تعامل معه كما تريد كود لتثبيت النتيجة وكود لتصفير الخلايا وكود لإنشاء أرقام عشوائية جديدة توضيح1.rar
  20. ما شاء الله بارك الله لك أخي عبد الله جمعتك مباركة إن شاء الله
  21. بارك فيك أخي الكريم قلت قبل ذلك يفضل وضع 0 في عدد الساعات للغائب (وإذا صممت أن تكون حرف x مثلا يمكنك استبدال CDbl(TextBox3) ب TextBox3 في كل أنحاء الكود) ...... لماذا تكتب التاريخ ألم تقل اختياره من قائمة؟؟!! في حالة تحضير الكل أو تغييب الكل ليس مهما اختيار زر الخيار حضور أو غياب ولا كتابة رقم العامل فقط تكتب عدد الساعات أو x ثم تضغط على زر تنفيذ على الكل (زر حضور أو غياب يتم الضغط عليه فقط في حالة عامل واحد ويجب قبلها كتابة رقم العامل ..... وأنا شخصيا لا ارى فائدة من الزرين فمهمتما واحدة وهي كتابة ما هو موجود في عدد الساعات للعامل المحدد) أتمنى أن تكون التعليمات واضحة
  22. أخي الكريم اكتب لي ماذا يحدث بالضبط معك من أول فتح الملف وخطوات تنفيذك للمطلوب بمنتهى التفصيل وساعتها يمكن أن نصل للمشكلة
  23. أخي الكريم بتنفيذ ما تقول سيتم الدخول في سلسلة غير متناهية من الأوامر كيف؟ إذا وضعنا في الخلية g8 معادلة وهي حاصل ضرب c8 في e8 ثم قمنا بعملية النسخ واللصق كقيمة سيتم المطلوب في حدث عند فتح ورقة العمل ولكن إذا قمت بتغيير قيمة خلية معينة ووضعنا في حدث عند تغيير قيمة خلية أن يتم وضع معادلة ثم نسخها ثم لصقها كقيمة سيتم تكرار الأمر إلى مالا نهاية لأن اي تغيير في الخلايا سيعيد الكرّة ...................... اسمح لي أخي الكريم في اي شيء تريد أن تستعمل هذا الكود وهذه الطريقة؟؟ أخبرنا ممكن أن نضع تصوراً آخر يتوافق مع طرق البرمجة ولا يعيد سلسلة لا نهاية من الأوامر
  24. أي مهمة؟ تثبيت الناتج أم تثبيت الأرقام العشوائية؟؟ وأين تريد وضع الكود ؟ عند فتح الملف أم عند تنشيطه أم عند تغيير قيم خلايا داخل ورقة العمل؟؟؟
  25. يمكنك استعمال هذه الموقع مجاناً http://www.pdftoexcelonline.com/ ويوجد به برنامج بروفيشنال يمكن شراؤه وفي الأخير إذا كان مكتوب فيه كلمات عربية ستظهر بطريقة غير سليمة أما الأرقام والكلمات الإنجليزية تظهر مضبوطة (حتى مع أفضل نسخة من البرنامج) لأنه حتى الآن لم يتم حل مشكلة اللغة العربية في pdf
×
×
  • اضف...

Important Information