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

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

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

    13,165
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    412

كل منشورات العضو ياسر خليل أبو البراء

  1. اعذرني أخي الحبيب ..فوالله لا أجد وقتا للعمل عليه سأحاول قدر الإمكان عمل المطلوب لكن الصبر قليلا
  2. يمكن من خلال تحديد الخلايا ثم كليك يمين تنسيق خلايا وحدد Custom واكتب التاريخ بالتنسيق الذي تريده وليكن مثلا dd/mm/yyyy
  3. الأخت الكريمة معلش اتعبي كمان شوية وإن شاء الله ستجدي المساعدة قومي بعمل صفحة لشكل التقرير ، واكتبي اسم على سبيل المثال .كنموذج للمخرجات المطلوبة أفضل يكون في الصفحة خانة لاسم الطالب ولو فيه رقم للطالب عشان اللي يساعدك يعتمد عليهم في استخراج التقارير وسؤال تاني : فيها تقارير يومية وأسبوعية .هل هتكون بنفس الشكل أم أن التقارير ستكون مختلفة تماما؟
  4. الأخ والأستاذ الحبيب أحمد يعقوب .. مشكور على مرورك العطر وتشجيعك لتلميذك الضعيف وبردو مش هعبر 2003 قلنا كفاية عليه لحد كدا .. خد أكتر من وقته الأخ حسام بارك الله فيك وجزيت خيرا .. وفي انتظار المزيد من الإضافات . ممكن بالنسبة لو حبيت تضيف جديد ممكن على شكل ملف تطبيقي أو ملف PDF بحيث يسهل تنزيله والاستفادة منه ..ولو حبيت في أي وقت تضيف عليه مرة تانية تعدل عليه وترفعه مرة تانية الأخت الفاضلة Morestudy مش عارف أشكرك إزاي بصراحة ملف الـ PDF روعة ومفيهوش أخطاء (يا ريت تجمعي كل الدروس بس كل درس لوحده لو كان بالإمكان .. حتى يحتفظ من يريد الاحتفاظ بمضمون الحلقات
  5. الأخ الفاضل مهند إثراءاً للموضوع تفضل الملف التالي Delete Sheets.rar
  6. أخي الفاضل حدد نوع المشكلة ..حتى يستطيع الأخوة مساعدتك
  7. الأخ الحبيب حسام عيسى والأخ الغالي الجموعي لا حرمنا الله من إضافاتكم الرائعة والقيمة ... أيوا كدا حسسوني إني مش لوحدي عايزين يبقا فيه تكامل ..أنا فتحت الباب .. انتوا تبدأوا تستكشفوا الكنوز الموجودة في السرداب
  8. قم بإدراج موديول جديد وأضف فيه التالي Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long Sub ChaingeLanguage(KBLang As String) Dim pwszKLID As String Select Case KBLang Case "Arabic" pwszKLID = "00000401" Case "English" pwszKLID = "00000409" End Select LoadKeyboardLayout pwszKLID, 1 End Sub دمت بخير
  9. الحلقة السادسة ************ أهلا بكم إخواني الأحباب مع حلقة جديدة ، والحلقة دي استكمال لحلقة المتغيرات .. كنا اتكلمنا عن نوعين من المتغيرين باستفاضة (3 مرات على ما الكلمة اتكتبت معايا ) ..اتكلمنا عن النوع Integer ودا بيكون للأرقام الصحيحة ، والنوع String ودا بيكون للقيم النصية. نكمل رغي عن المتغيرات عشان نخلص منها ونخلص عليها .. بداية أحب أعرفكم بدالة في VBA اسمها CINT ..الدالة دي وظيفتها إنها بتحول أي قيمة لعدد صحيح من النوع Integer (ودي اختصار Convert Integer..الحرف الأول من Convert وأول 3 حروف من Integer) >> الكلام مش هيفيد بقدر التطبيق :: نجرب المثال التالي Dim LValue As Integer LValue = CInt(8.45) MsgBox LValue لو نفذنا الكود هنلاقي إن القيمة أصبحت 8 .. طيب نغير الرقم إلى 8.5 ونشوف النتيجة بردو نفس القيمة 8 .. طيب نغير الرقم ونخليه 8.6 خلي بالك متتوقعش 8 ، القيمة بقت 9 (تسعى في الخير) الملاحظات المستفادة : إن الكسر لو أقل من أو يساوي 0.5 .. القيمة بتتقرب لتحت ، أما لو الكسر أكبر من 0.5 يبقا يتقرب لفوق ..(يعني الدالة دي ممكن نستفيد منها في أمور تانية .. زي التقريب) جرب القيمة 8.50001 .. جربتو : أكيد لا نازلين قراية وخلاص .. اللي جرب هيتأكد من إن : لو هفوة مفيش تفاهم!! نراجع مرة تانية المتغير Integer بمثال عملي : Dim nRowCount As Integer nRowCount = Rows.Count MsgBox nRowCount أولاً عايزين نتعلم شيء مهم جداً وإحنا لسه في البداية : إننا لما نيجي نسمي متغير يا ريت يكون الاسم وصفي (يعني كل المتغيرات عندي هسميها وصفي ..شكلك بتعزه يا أستاذ ...طيب ما نسميه شوقي أو مراد ..لازم وصفي ) .. يا جدعان انتو فهمتوني غلط أنا أقصد بكلمة وصفي إنه يوصف الاسم بشكل كويس .. يعني مثلا نشوف نوع المتغير نلاقيه Integer فنقوم في أول الاسم نحط مثلا n عشان يوضح لأي حد يقرا الكود إنه Interger ، وبعد الحرف الدلالي n نكتب اسم للمتغير يكون دال عليه .. أنا مثلا هعد الصفوف فاقوم أكتب RowCount .. يبقا في النهاية اسم المتغير nRowCount ...طبعا اللي بقوله ده مش الزامي ..دي عادة حسنة بيتبعها المبرمجون المحترفون ..مش الاقي ناس تكتب mghy حاجة كدا ملهاش دلالة على اسم المتغير ...!! السطر التاني وضعنا قيمة للمتغير وهي Rows.Count وطبعا كلمة Count دي Method بمعنى (عد) ، ودي وظيفتها إنها تعد بس تعد ايه .. تعد الصفوف Rows واحد يقولي طيب ممكن أعد الأعمدة أقوله أيوا Columns.Count مفيش مشكلة .. واحد يقولي يعني ممكن أعد الخلايا في نطاق معين زي A1:C5 ، بردو مفيش مشكلة Range(Cells(1, 1), Cells(5, 3)).Count المهم خلينا في السطر التالت (محدش يخرجني برا الموضوع) .. مش محتاج شرح ..إظهار قيمة عدد الصفوف في رسالة ننفذ الكود (رسالة خطأ .. ميهمكش من الفشل .!! ) واحد هيسألني طيب الغلطة فين ..كل حاجة زي الفل .. المحرر دا بيستعبط ! أنا مش هشتغل على المحرر دا تاني سلااام .. هرد عليه وأقوله اصبر بس كل الحكاية إننا بنتعامل بقواعد وقوانين ..أنا لما عرفت المتغير حددت نوعه بـ Integer ودا بيكون للأرقام الصحيحة ما بين 32, 767 و القيمة السالبة -32, 768 يعني ببساطة بيتعامل مع الأرقام دي وبس ..ميقدرش يتعامل مع أكبر من كدا .. طيب ايه الحل ؟ ايه البديل ؟ البديل المتغير Long دا بيتعامل مع الأرقام الصحيحة بردو ، بس ما بين 2,147,483,647 -2,147,483,648 طيب نرجع للكود بتاعنا ..عدد الصفوف في إكسيل 2007 مثلا يساوي 1048576 ، والمتغير Integer قلنا إن صحته على أده ، فيقوم المتغير Long ييجي ويشيل.. يبقا كل اللي هنغيره كلمة واحدة عشان الامور تمشي تمام (نشيل Integer ونحط Long) يعني ممكن الكود يكون بالشكل ده (لاحظوا أنا هغير البادئة في اسم المتغير إلى L اختصار Long) Dim LRowCount As Long LRowCount = Rows.Count MsgBox LRowCount بكدا نكون اتعرفنا على Integer و Long في حالة التعامل مع الأعداد الصحيحة. ننتقل لجزئية جديدة .. التعامل مع الأرقام اللي فيها كسور عشرية.. مش هنطول في الكلام ، هناخد باختصار مثال عملي عشان نفهم الدنيا ماشية إزاي Dim FloatingPoint As Single FloatingPoint = 10 / 3 MsgBox FloatingPoint طيب نغير كلمة Single بكلمة Double ونلاحظ الفرق..!! مش هشرح الفرق لكن هقول إن اللي فهم الفرق بين Integer و Long ، هيفهم الفرق بين Single و Double ... حازم رفع ايده وقالي لأ يا باشا اشرحها بردو (حاضر يا عم حازم حازم هنشرحها عشان نأكد المعلومة بس مش أكتر ) لما استعملنا النوع Single نلاحظ إن عدد الأرقام العشرية 6 بس ، أما Double فنلاقي إن اللي على يمين العلامة 14 رقم (جرب الكود مرة كدا ومرة كدا وعد بنفسك (فيه ناس هتكسل)) نقطع على الجماعة المدرسين اللي بدوا رياضيات ، ونقول إن مساحة الدائرة = ط نق2 ، والله مش عارف إذا كان صح ولا غلط عموما القيمة ط = 22/7 ، ودي موجودة في الإكسيل باسم Pi ، يعني لو كتبنا في خلية =PI() هيديني قيمة الـ ط ... المهم نستفيد في المثال التالي معلومة جديدة (إننا ممكن سنتخدم بعض الدوال الموجودة في الإكسيل ونطبقها في الـ VBA) Dim FloatingPoint As Single FloatingPoint = WorksheetFunction.Pi MsgBox FloatingPoint نخلي بالنا إننا وضعنا قيمة للمتغير واستخدمنا WorksheetFunction عشان أقول لمحرر الأكواد إننا هنستخدم دالة ، وبعدين نقطة Period وبعدين اسم الدالة هنا Pi ومفيش أقواس (دا الاختلاف ..لما استخدمناها في ورقة العمل كان لازم أقواس أما هنا فلا يتم استخدامها .. نجرب مرة المتغير Single ومرة المتغير Double ..(أي خدمة يا حازم حازم .. منستغناش عن خدماتك يا متسر ياسر ياسر ) نكمل كلام عن المتغيرات عشان نخلص منها : نتكلم عن المتغير التقيل Variant ودا بنستخدمه لما نكون مش عارفين نحدد القيمة هل هي رقم ولا نص ولا كائن Object ولا ولا (ولى زمن الجهل وأقبل زمن التعلم) .. فبنستخدمها ..بس نخلي بالنا إنها بتستهلك مساحة من الذاكرة فكثرة استخدامها بتخلي التعامل مع الأكواد يكون بطيء .. المتغير اللذيذ Boolean ودا يا أبيض يا أسود .. يا صح يا غلط .. يا True يا False .. يا 1 يا صفر بتكون القيمة المخرجة إحدى قميتين فقط Dim bOfficena As Boolean MsgBox bOfficena هنا حددنا نوع المتغير بـ Boolean .. لما ننفذ الكود هنلاقي رسالة فيها False (نفهم من كدا إن الاختيار الافتراضي هو False) يعني مش زينا بنفترض حسن النية ، لا دا ماشي بمبدأ المتهم مجرم حتى تثبت براءته ، فهنا وضع القيمة False للمتغير .. نجرب نضع القيمة صفر Dim bOfficena As Boolean bOfficena = 0 MsgBox bOfficena هنلاقي نفس الناتج اللي فات False ..!! نغير شوية ونخلي القيمة أي قيمة غير الصفر ، هتلاقي الناتج True فيه متغيرات تانية زي Date للتعامل مع التواريخ ، والمتغير Currency للتعامل مع العملات وبكدا كفاية أوي على المتغيرات .. المهم في الموضوع الفكرة تكون وصلت .. للمزيد من الشروحات يرجى الإطلاع على الدورة الرائعة التي يقوم بها أخونا محمود الشريف (كلنا بنكمل بعض ..دا شعارنا في المنتدى ..أنا بس مجرد واحد معاه مفاتيح ..هديكم نسخة منها عشان تعرفوا تفتحوا الباب يا أحباب) كان معكم صانع المفاتيح Keys Maker أخوكم أبو البراء وإلى لقاء في حلقة جديدة من حلقات افتح الباب واهرب من الشباك .. دمتم بود .. تقبلوا حبي وأشواقي وتحياتي القلبية
  10. خليك أكثر تحديدا ..ارفق مثال ملفين مثلا وشوف انت عايز تبحث عن ايه بالضبط؟ ساعد الناس الناس يساعدوك
  11. الحمد لله .. بس متحرمناش من شموعك يا أخ محمد مهمة جدا الشموع (إنت عندك عيد ميلاد النهاردة ولا ايه!!)
  12. متابعة جيدة مستر حسام بارك الله فيك وجزيت خيرا على تقديم المساعدة (هو دا الشغل ..الله ينور عليك .. بالنسبة لكشكول الواجب لسه إنت مجبتوش لحد دلوقتي ..كدا هاخك غياب )
  13. جدو الحبيب تسلم الأيادي وتسلم الأنامل .. لا تحرمنا من وجودك بارك الله فيك وجزيت خيرا أبو عصام
  14. الأخ الحبيب والأستاذ الكبير أول المعلمين لي في المنتدى (لا أنسى أنك أول من استقبلتني) الإبداع أنتم من صنعتموه .. وبكم عرفناه .. ولا يمكننا أبدا أن ننسى أساتذتنا الأجلاء الذين علمونا الأخلاق وعلمونا التواضع وعلمونا الإبداع يا أستاذ أحمد (مش ناوي تفتح الباب معانا ولا هتبص بس من الشباك .. في انتظار إضافاتك الجميلة في حلقات افتح الباب (دا إذا كنت واخد بالك من الحلقات!))
  15. الأخ الحبيب محمد لطفي .. مشكور على كلماتك الطيبة بالنسبة لطبك : حدد شروطك وغير في الكود بما يناسبك لو هيكون صعب ..حدد ألوان الطيف وشروط الطيف اللي انت عايزها يعني لو أقل من 5000 يبقا اللون أحمر ..طيب لو أكبر من أو يساوي هتقلب اللون ايه .. ويا ترى فيه شروط تانية تقبل تحياتي
  16. أخيرا يا عم حسام انت طلعت عينينا معاك .. بس ولا يهمك أنا فاكر إنك طرحت الموضوع قبل كدا بس دا يعلمك شيء مهم جدا . إنك لما تطلب طلب يا ريت يكون مدعم بملف مرفق وكمان شوية من شكل النتائج المطلوبة ، عشان نقدر نستوعب بسرعة الحل المقدم حل بسيط وليس معقد كما تعتقد .. الفكرة دائما في الوضوح .. الوضوح أسهل وسيلة للوصول لحل المشكلة في أسرع وقت متنساش تحدد الإجابة كأفضل إجابة عشان عايز أزود درجاتي تقبل تحياتي
  17. جرب أخي الملف التالي يمكن وضع الكود في حدث فتح المصنف Disable CTRL + P.rar
  18. من المفترض أنه إذا وجد الماء بطل التيمم .. فالأستاذ الكبير عبد الله باقشير لا يمكن مضاهته بأي حال من الأحوال ولكن إثراء للموضوع تفضل أخي محمد Private Sub TextBox1_Change() Select Case Me.TextBox1.Value Case Is < 2 Me.TextBox1.BackColor = &H80FF80 Case 2 To 4 Me.TextBox1.BackColor = &H80FFFF Case Is > 4 Me.TextBox1.BackColor = &HFF End Select End Sub
  19. ممكن أعرف انت ليه سايب صفوف فارغة بين البيانات ؟
  20. جميل أخي الحبيب أبو ذهب ولإثراء الموضوع هذا ملف فيه شرح وافي لمثل طلبك VBA DIR Function.rar
  21. أخي الحبيب حبذا لو أرفقت صورة بالنتائج المطلوبة وتوضيح الشروط أكثر
  22. كل السبل تؤدي إلى روما .. بس يبدو يا ابن مصر محدش فاهم القصة دي غيري وغيرك تقبل تحياتي
  23. بارك الله فيك أخي حسام وجزيت خيرا ..بس بلاش تقلد خليك مستقل ههههه
  24. الأخ الحبيب صلاح ..جزيت خيرا على كلماتك الطيبة .. وربنا يعينك على مشاغلك بس حاول تتابع معانا إن شاء الله (إنت متميز ومجتهد .. مش عايزين نخسرك) وأشكرك على ملف PDF بس لاحظت إن الكلام مش مظبوط بس تداخل العربي والانجليزي مع بعض داخل الأسطر هل لو اتحول لكتاب الكتروني EBook هتكون نفس المشكلة؟
×
×
  • اضف...

Important Information