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

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

  1. ibn_egypt

    ibn_egypt

    الخبراء


    • نقاط

      11

    • Posts

      764


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

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

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


    • نقاط

      8

    • Posts

      13165


  3. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      4

    • Posts

      7053


  4. الزباري

    الزباري

    الخبراء


    • نقاط

      3

    • Posts

      463


Popular Content

Showing content with the highest reputation on 02/10/15 in all areas

  1. هذه فكرة بسيطة مني و ممكن يكون في غيري من العمالقة عملوها و لكن حبيت احطها في هذا المنتدى الكريم لانها حلت بالنسبالي مشكلة وهي عدم خبرتي في برمجة الاكسل ففكرت اني احاول احلها باستخدام الدوال اعدادي.rar
    2 points
  2. كيف يمكننا تلوين جزء من نص داخل خلية بناء على مطابقته لنص اخر في خلية اخرى .. قام بالاجابة بشكل مميز و رائع الاستاذ محمد نصري بارك الله فيه جزاه الله خيرا https://www.youtube.com/watch?v=5O3sw71xfm0
    2 points
  3. مشكور أخي رامي على المشاركة .. بارك الله فيك ونفع بك .. إلى الأمام تقدم ولا تخشى التقدم ، فالتقدم من شيم الأبطال .. تسلم يا بطل
    2 points
  4. اخى الفاضل فكرة جميلة .. جزاك الله كل خير لمشاركتنا هذا العمل الرائع الخبرة تأتى بالإستمرارية وانت بدايتك اكثر من ممتازة ... استمر خالص تحياتي
    2 points
  5. الأخ الحبيب علاء بارك الله فيك على التوضيح لطلبك بشكل جيد إليك الملف المرفق ..تم إضافة ورقة عمل جديدة باسم Analysis فيها المطلوب بإذن الله Get Dates Horizontally.rar
    2 points
  6. تفضل اخي عسى ان يكون المطلوب Nagy salim.rar
    2 points
  7. السلام عليكم ورحمة الله وبركاته الصلاة والسلام علي رسول الله سيدنا محمد النبي الامي أما بعد اسطوانة موسوعة الخطوط العربية الحديثة 2013 للتحميل AIO Arabic Fonts Pack 2013 برابط مباشر صاروخى اسطوانة تجميعية هامة جدا لكل مصمم أو مستخدم للبرامج المكتبية أو حتى أى نوع من أنواع التصميم والكتابات والطباعات اسطوانة بها أجمل وأحدث الخطوط العربية بجميع أنواعها الاسطوانة بواجهة واحدة فقط لسهولة الاستخدام مقسمة إلى عدة أقسام لتتمكن من إضافة ما تفضل من الخطوط دون إجبارك على تحميل كل الخطوط على الويندوز وأنت فى الغالب لا تستخدم إلا ما يعد على أصابع اليد الواحدة فقط فى الغالب الاسطوانة من تصميم أخى أمين ( هيرو سوفت ) ـ الخط الفارسي (19 خط) ـ الخط المغربي (10 خط) ـ خطوط الإعلان (198 خط) ـ الخط المطور (50 خط) ـ الخط البسيط (96 خط) ـ خطوط الديوان (31 خط) ـ خطوط الرقعة (28 خط) ـ خطوط النسخ (66 خط) ـ خطوط الحر (82 خط) ـ خطوط مربعية (46 خط) ـ الخط الكوفي (163 خط) ـ خطوط (54 خط) -------------------------- الاسطوانة مرفوعة على رابط واحد فقط بمساحة 50 ميجا تقريبا الارشيف ميديافاير منقول للفائده بارك الله في كل من له بصمه في هذا العمل
    1 point
  8. السلام عليكم أيها الاخوه , غالبا ما يكون لدينا جدول فيه أحد الحقول مرتبط بحقل آخر في جدول ثاني , و نريد أن نستعرض البيانات التابعه لهذا الحقل من الجدول الآخر ضمن نفس الجدول الذي نحن فيه , مثلا : لدينا قاعدة بيانات فيها جدولين : جدول اسماء الدبلومات الجامعيه - و يتألف من حقلين : رقم الدبلوم - اسم الدبلوم جدول حركة الطلاب و يحتوي الحقول التاليه رقم مسلسل - رقم الطالب - رقم الدبلوم الآن نريد من خلال حقل رقم الدبلوم من هذا الجدول استعراض اسم الدبلوم من الجدول الثاني و يتم ذلك كما يلي : ضع المؤشر على اسم الحقل المطلوب و هو هنا اسم الدبلوم ( بعد تغييره الى رقم ) , تجد في الأسفل مربعين الأول تنسيق – الثاني بحث , اضغط على زر البحث , ثم اختر مربع تحرير و سرد فتظهر مجموعة حقول من الحقل الثالث و الذي اسمه مصدر عناصر البيانات اضغط على النقاط الثلاث بجنب بعض فيظهر لك صفحة تصميم استعلام جديد , اختر منها الجدول دبلومات و اختر منه الحقلين : رقم الدبلوم – اسم الدبلوم ثم اغلق الاستعلام من مربع الاغلاق مباشرة و بدون حفظ , فتظهر رساله تفيد بأنه تم تغيير مصدر عناصر البيانات هل تريد الحفظ , اختر نعم , فيرجع المؤشر الى الحقول الأولى التي كنا فيها , من السطر الخامس , عدد الأعمده , اختر قيمتها تساوي 2 بدلا من 1 ثم من السطر السابع عرض الأعمده , اجعل القيمه كما يلي : 0cm;2.5cm ثم احفظ , الجدول افتح الآن جدول المواد في صفحة ادخال بيانات و حاول ادخال أي سجل جديد , تجد في حقل رقم الدبلوم يظهر لك اسم الدبلوم مباشرة مع أنه يحفظ رقم الدبلوم و فيما يلي بيان تفصيلي بالرسم للشرح أعلاه MakeFiledCombo.rar
    1 point
  9. كيف يمكننا الاستغناء عن المعادلات المتكررة لاستحضار البيانات باستخدام دوال البحث من خلال البور بيفوت https://www.youtube.com/watch?v=lOwX5prPvCg
    1 point
  10. اخى الفاضل فيديو رائع وجميل .. وتم تطبيقه بتعديلات بسيطة بملف الإكسل المرفق لعله يفيد أحد الإخوة الأعضاء تحياتي Search-In-Part-and-ColorIt.rar
    1 point
  11. استاذي القدير انا لم اشاهد الفيديو بشكل كامل، مررت عليه مرور الكرام وهو فيديو مفيد وهام وادعوا الله أن يجازى أستاذنا الكريم أ.محمد صالح كل خير وأن يجعل عمله في ميزان حسناته لكن بالفعل كلام حضرتك صحيح 100% فتعريف جميع المتغيرات بهذا الشكل غير مفضلة لانها تظهر وكأنها نفس النوع لكن دائما المتغير الاخير قبل كلمة As هو الذي يأخذ النوع المحدد بينما الباقي يتم تعريفهم ك Variant فلو كتبنا Dim L,K,M As Long هنا M فقط هو ال Long بينما L,K من نوع Variant جزاك الله كل خير على التوضيح أبو البراء تحياتي
    1 point
  12. اخى الفاضل تفضل كود الأستاذ ياسر خليل بعد إضافة بسيطة لتناسب طلبك .. ستلاحظ في الملف المرفق ان اسامة وابراهيم ليس لهم قيم في شيت2 اما الباقي فلهم قيم ولذلك سيتم ترحيل بيانات اسامة وابراهيم فقط ولن يعدل بيانات الاسماء الاخرى في شيت2 تحياتي copy invoices.rar
    1 point
  13. أخي الحبيب ابن مصر ..ممكن تعديل على معلومة بسيطة داخل الفيديو انظر لهذا الكود Sub Test() Dim a1, a2, a3 As Integer a1 = 12.5 a2 = 10.1 a3 = 25.3 MsgBox a1 & Space(5) & a2 & Space(5) & a3 End Sub تم الإعلان داخل سطر واحد عن 3 متغيرات ، ولكن هذا لا يعني أن المتغيرات الثلاثة من نفس النوع والدليل هذا الكود فناتج المتغير a3 يساوي 25 فقط لأننا قمنا بالإعلان عنه من النوع Integer أما المتغيرين a1 و a2 فتم الإعلان عنهم من النوع Variant .. وليس كما ورد بالفيديو أن المتغيرات الثلاثة من نفس النوع ..
    1 point
  14. أخي الفاضل لا تكثر من الطلبات فينفر الأخوة من الموضوع ..خليك محدد طلب واحد ولما ينتهي الطلب الأول انتقل لطلب ثاني وهكذا.. إليك الطلب الأول شرح الكود Sub حسب_الاختيار() 'الغاء خاصية اهتزاز الشاشة Application.ScreenUpdating = False 'تعريف المتغير Dim c As Range 'مسح نطاق النتائج Sheet2.Range("b7:d300") = Empty For Each c In Sheet1.Range("chose") 'تساوي كلمة نعم[chose]إذا كانت الخلية داخل النطاق المسمى If c.Value = "نعم" Then 'متغير يحمل قيمة آخر صف به بيانات في ورقة النتائج بالعمود الثاني مضافاً إليها رقم 1 استعداداً لبيان جديد lstrow = Sheet2.Range("b20000").End(xlUp).Row + 1 'يساوي نفس النطاق في ورقة الأساسيين[I]إلى العمود[B]النطاق في ورقة النتائج من العمود Sheet2.Range(Sheet2.Cells(lstrow, "b"), Sheet2.Cells(lstrow, "i")) = _ Sheet1.Range(Sheet1.Cells(c.Row, "b"), Sheet1.Cells(c.Row, "i")).Value 'Sheet2.Cells(lstrow, "a") = Z: 'تحديد ورقة الأساسيين Sheets("الأساسيين").Select '[B7]تحديد الخلية Range("b7").Select End If Next c 'رسالة تفيد بانتهاء عملية الترحيل MsgBox ("تم ترحيل الصفوف المحددة بنجاح"), vbDefaultButton1, " تحياتي أ / محـمـود جـمـعـه " 'تفعيل خاصية اهتزاز الشاشة Application.ScreenUpdating = True End Sub
    1 point
  15. هل من مساعدة مع العلم انى لست بخبير فى عالم الاكسيس مسئول الوقود.rar
    1 point
  16. طيب هحاول تانى ان شاء الله لو قدر الله لى الخير ووفقنى للوصول لمرادك ان شاء الله ارفقل كم المثال بعد التعديل
    1 point
  17. اخى وحبيبى واستاذى يعجز لسانى عن شكركم فكم سعدت وشرفت بمروركم الكريم وكلماتكم الرقراقة الطيبة شكر الله لك وجزاكم الله الخير
    1 point
  18. سلم الايادى طول عمرك متميز
    1 point
  19. مبدع بارك الله فيك ، متميز دائماًَ
    1 point
  20. الاخ الفاضل حســام عيسى جزالك الله خيرا اللهمّ إني أسألك لعبدك حسام عيسى زيادة في الدّين، وبركة في العمر وصحّة في الجسم، وسعةً في الرزق وتوبةً قبل الموت، وشهادةً عند الموت، ومغفرةً بعد الموت، وعفواً عند الحساب، وأماناً من العذاب، اخى الكريم أبعد الله عنكم شرّ النّفوس، وحفظكم باسمه السّلام القدّوس، وجعل رزقكم مباركاً غير محبوس، وجعل منزلتكم عنده جنّة الفردوس أاااااااااااااامين تحياتى واحترامى وتقديرى لشخصكم الكريم
    1 point
  21. اخى الفاضل تفضل الملف المرفق .. لربما به طلبك .. وعذرا للتأخير تحياتي ehab.rar
    1 point
  22. شكرا لك اخى العزيز مشاركة جمبله
    1 point
  23. جرب المعادلة التالية =SUM(SUMPRODUCT(($B$1:$B$9)*($C$1:$C$9="طارق")),SUMPRODUCT(($B$1:$B$9)*($C$1:$C$9="ياسر")),SUMPRODUCT(($B$1:$B$9)*($C$1:$C$9="سليم")),SUMPRODUCT(($B$1:$B$9)*($C$1:$C$9="ناصر")),SUMPRODUCT(($B$1:$B$9)*($C$1:$C$9="ابراهيم")))*15%
    1 point
  24. السلام عليكم ورحمة الله وبركاته استاذى / محمود كمال بعد الاطلاع على الملفين المرفقين تبين لي امور وهى عند حضرتك مشكلة فى ادخال البيانات لذالك هناك صعوبة فى المخرجات اى برنامج ناجح لابد وان يكون 1- البرنامج فى ملف واحد 2- ونفتح من الملف شيت يسمى ( الادخال ) 3- ونفتح إيضا فى نفس الملف شيت يسمى ( التقرير ) انا نفسى اسعدك لو معندكش مانع ، ( عايز اعرف البيانات المدخله اى اللى بيتجمع وبيترحل فين ) ؟ والله الافكار اللى عندى سهلة جدا ، وهتخلى برنامج حضرتك روووووعه وسهل جدا
    1 point
  25. اخى الفاضل أولا هتفتح ملف اكسل جديد وتدخل على محرر الأكواد VBA بالضغط على ALT+F11 هتعمل موديول جديد وتلصق فيه الدالة بتاعتك "الكود السابق" ... ثانيا هتعمل حفظ باسم عادى جدا وقم بتسمية الملف باى اسم تريده ولكن يفضل باللغة الانجليزية .. اهم شئ انك تختار نوع الملف Excel Add-in xlam واحفظها في اى مكان على جهاز واقفل الملف ثالثا افتح ملف اكسل جديد او اى ملف اكسل لديك واختر ملف .. خيارات ... الوظائف الإضافية ... زر انتقال بالاسفل ... ثم اختر استعراض سيفتح اطار اختار الدالة التى قمت بحفظها على جهازك ثم موافق... الآن الدالة اصبحت مدمجة لاى ملف اكسل بجهازك اعتذر عن عدم التوضيح بالصور جرب ولو فيه شئ أخبرنا به تحياتي
    1 point
  26. اخي الفاضل يلزمك مربع نص بحث في النموذج وتجعل فهرس علامة الجدوله للمربع 0 وتوصل الاسكنر بالجهاز وعند قرائة الباركود تظهر الفاتورة واليك مثال مرفق برنامج يعمل علي طباعة الباركوة والقارئة بالاسكنر برنامج باركود.rar
    1 point
  27. تهانينا بهذا الانجاز الرائع وشكرا لمشاركتك لنا انجازك
    1 point
  28. السلام عليكم ورحمة الله هذا الرابط به طلبك إن شاء الله http://www.officena.net/ib/index.php?showtopic=58789&hl=فلاش
    1 point
  29. اخ محمود كل خطوة نتقدم بها للامام اجد انك تعود مقابلها خطوات للوراء لذلك اقترح عليك دراسة الاكسس قبل الاكمال في هذا الموضوع او الاستعانة باحد من الاخوة يقوم بمساعدتك في التصميم و انا متابع معكم
    1 point
  30. الاخ الكريم اولا لما كل استفسار بيتكتب فى مشاركة منفصله بيسهل على غيرك عند البحث الوصول لما يريد ان تكرر السؤال عن طلبه من قبل ثانيا لما حد من الاخوة الكرام او الاساتذه الافاضل الذين نتعلم على يديهم يجد للموضوع ردود كثيرة قد يعتقد ان الموضوع تم الرد عليه وتوصل صاحبه للاجابه ثالثا والاهم : مساعدة اساتذتنا لنا فضلا منهم وليس امرا عليهم او الزاما فجزاهم الله عنا كل الخير اخى الحبيب تحلى بالصبر وتحلى بالكلمة الطيبة التى تشرح صدور من يحاولون مساعدتك ولا تكن فظا غليظ القلب
    1 point
  31. اخى الفاضل أ.إيهاب اجعلها هكذا .. هتزبط معاك ان شاء الله Mail.BodyPart.Charset = "UTF-8" مرفق الملف للتوضيح تحياتي ehab.rar
    1 point
  32. اخي الفاضل ارسل مرفق بصيغة 2007 مع التوضيح في النماذج التي تريد تطبيق الاكواد عليها وسوف اقوم بالتعديل
    1 point
  33. اخى الفاضل أ.إيهاب تفضل هذا الكود الذي تريده مع مراعاة تغيير الايميل المكتوب بالكود الى الايميل الحقيقي لك وكتابة كلمة المرور الخاصة به .. والخلية A1 مكتوب بها البريد الذي تتم ارسال الرسائل اليه Sub btnSendEmail() On Error GoTo 1 Dim Mail As New Message Dim Config As Configuration: Set Config = Mail.Configuration Dim LR As Long Dim i As Integer Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("الايجارات") LR = Range("A" & Rows.Count).End(xlUp).Row Application.ScreenUpdating = False With ws For i = 4 To LR If Trim(.Cells(i, 4).Value) = "مطلوب" And .Cells(i, 8).Value = "" Then Config(cdoSendUsingMethod) = cdoSendUsingPort Config(cdoSMTPServer) = "smtp.mail.yahoo.com" Config(cdoSMTPServerPort) = 465 Config(cdoSMTPAuthenticate) = cdoBasic Config(cdoSMTPUseSSL) = True 'Change To Your Real yahoo Mail Config(cdoSendUserName) = "Ibn_Egypt@yahoo.com" 'Change To Your Real Password Config(cdoSendPassword) = "A_123456789" Config.Fields.Update Mail.To = .Range("A1").Value Mail.from = Config(cdoSendUserName) Mail.Subject = "اشعار" Mail.TextBody = "انتهاء" & " " & .Cells(i, 2).Value & " " & " للسيد " & .Cells(i, 1).Value & " " & "بتاريخ " & .Cells(i, 6).Value & " متبقي عليها " & .Cells(i, 7).Value Mail.Send MsgBox "تم ارسال البريد بنجاح" .Cells(i, 8).Value = "تم التنبيه وارسال البريد" End If Next End With Application.ScreenUpdating = True 1 End Sub مرفق الملف للتوضيح تحياتي ehab.rar
    1 point
  34. اخوانى الأفاضل اهم شئ بالموضوع على الاطلاق هى تزبيط اعدادات البريد الذي تتم من خلاله ارسال الرسائل .. فنلاحظ بالكود الماضي هذه الأسطر وهى الخاصة بإعدادات بريد ال Gmail حيث أن البريد الذي تتم من خلاله ارسال الرسائل هو Ibn_Egypt@gmail.com Config(cdoSendUsingMethod) = cdoSendUsingPort Config(cdoSMTPServer) = "smtp.gmail.com" Config(cdoSMTPServerPort) = 25 Config(cdoSMTPAuthenticate) = cdoBasic Config(cdoSMTPUseSSL) = True Config(cdoSendUserName) = "Ibn_Egypt@gmail.com" Config(cdoSendPassword) = "A_123456789" Config.Fields.Update واذا كان البريد الذي تتم من خلاله ارسال الرسائل هو بريد ياهو على سبيل المثال والايميل الذي تتم من خلاله ارسال الرسائل Ibn_Egypt@yahoo.com لابد من تغيير الإعدادات السابقة بالإعدادات التالية Config(cdoSendUsingMethod) = cdoSendUsingPort Config(cdoSMTPServer) = "smtp.mail.yahoo.com" Config(cdoSMTPServerPort) = 465 Config(cdoSMTPAuthenticate) = cdoBasic Config(cdoSMTPUseSSL) = True Config(cdoSendUserName) = "Ibn_Egypt@yahoo.com" Config(cdoSendPassword) = "A_123456789" Config.Fields.Update اما بخصوص سؤال اخى الفاضل ابا الحسن ممكن تعدل سطر الكود وتجعله هكذا Mail.To = Range("A" & i).Value وبالخلايا اكتب البريد كامل وليكن aa@yahoo.com أو mm@gmail.com أو أى بريد اخر تريده .. الملف المرفق سيوضح لك الفكرة أخى ابو فارس حاول تعدل اللغة بالكلام المكتوب في الكود الذي تراه ... وكذلك لو بالملاحظات مكتوب تم التنبيه وارسال البريد لايتم الارسال .. تأكد ان الملاحظات فارغة وليس مكتوب بها اى شئ >>> وملاحظة أخيرة الياهو لا يدعم اللغة العربية قم بتحويل الرسائل المكتوبة باللغة العربية الى اللغة الانجليزية اذا كنت ستستخدم بريد الياهو تحياتي email.rar
    1 point
  35. أخى الفاضل أ.ايهاب أولاً : الملف المرفق ليس له علاقة بالايجارات وانتهائها وخلافه فهو مجموعة موظفين ومكتوب به ارسال ايميل لبريد الموظف اذا انتهت الرخصة او الاقامة وغيرها ثانيا : هذه محاولة منى بناءا على الملف المرفق بارسال البريد تلقائي بمجرد فتح الملف للموظفين الذى انتهت بطاقاتهم او رخصهم وتستطيع انت التعديل به كما تريد بناءا على عملك .. استخدمت انا هنا بريد ال gmail لكل الناس سواء البريد الذي سترسل من خلاله الرسائل او الموظفين الذين سيستقبلون هذه الرسائل فبريد الموظف الاول على افتراض انه emp19811@gmail.com والثاني emp19812@gmail.com وهكذا وعلى افتراض ان البريد الذي سترسل من خلاله الرسائل هو Ibn_Egypt@gmail.com >> والباسورد الخاصة به هي A_123456789 يكون الكود بهذا الشكل Sub btnSendEmail() On Error GoTo 1 Dim Mail As New Message Dim ID, Licence As Boolean Dim Config As Configuration: Set Config = Mail.Configuration Dim LR As Long Dim i As Integer LR = Range("A" & Rows.Count).End(xlUp).Row For i = 2 To LR If Range("D" & i).Value < Date Or Range("C" & i).Value < Date Then If Range("E" & i).Value = "" Then Config(cdoSendUsingMethod) = cdoSendUsingPort Config(cdoSMTPServer) = "smtp.gmail.com" Config(cdoSMTPServerPort) = 25 Config(cdoSMTPAuthenticate) = cdoBasic Config(cdoSMTPUseSSL) = True Config(cdoSendUserName) = "Ibn_Egypt@gmail.com" Config(cdoSendPassword) = "A_123456789" Config.Fields.Update Mail.To = Range("A" & i).Value & "@gmail.com" Mail.from = Config(cdoSendUserName) ID = False If Range("C" & i).Value < Date Then ID = True Licence = False If Range("D" & i).Value < Date Then Licence = True If ID = True Then Mail.Subject = "انتهاء البطاقة" Mail.HTMLBody = "انتهاء البطاقة بتاريخ" & Format(Range("C" & i).Value, "yyyy/m/d") & "يرجي التواصل مع أقرب مكتب تجديد" End If If Licence = True Then Mail.Subject = "انتهاء الرخصة" Mail.HTMLBody = "انتهاء الرخصة بتاريخ" & Format(Range("D" & i).Value, "yyyy/m/d") & "يرجي التواصل مع أقرب مكتب تجديد" End If Mail.Send MsgBox "تم ارسال البريد بنجاح الى الموظف" & " " & Range("A", i).Value, vbOKOnly + vbInformation, "تم الارسال" Range("E" & i).Value = "تم التنبيه وارسال بريد" End If End If Next 1 End Sub في الكود السابق لابد ان تعدل البريد Ibn_Egypt@gmail.com... بالبريد الخاص بك وكذلك كلمة المرور اسفله الى كلمة المرور الصحيحة للبريد المكتوب كما انه يلزمك ايضا تفعيل هذه المكتبة من محرر الأكواد تختار Tools ثم References ,وتحدد علامة صح على المكتبة الموجودة بالصورة التى امامك ولكى تجعل الكود يعمل تلقائيا بمجرد فتح الملف .. يتم وضع هذا الامر في حدث فتح الملف Private Sub Workbook_Open() btnSendEmail End Sub مرفق ملف ومن اراد من الاخوة الأعضاء استخدامه يرجي التأكد من تغيير البريد في الكود وكذلك كلمة المرور وتفعيل المكتبة ... الكود مجرب ويعمل بنجاح والايميلات السابقة emp19811@gmail.com >>> emp19812@gmail.com حقيقية تحياتي email.rar
    1 point
  36. الحلقة السادسة ************ أهلا بكم إخواني الأحباب مع حلقة جديدة ، والحلقة دي استكمال لحلقة المتغيرات .. كنا اتكلمنا عن نوعين من المتغيرين باستفاضة (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 أخوكم أبو البراء وإلى لقاء في حلقة جديدة من حلقات افتح الباب واهرب من الشباك .. دمتم بود .. تقبلوا حبي وأشواقي وتحياتي القلبية
    1 point
  37. من يوجد لدية برنامج او تطبيق لتنظيم الدوام الصباحي بحيث يتم التوقيع الكترونيا بادخال رقم سري للموظف على شاشة البرنامج
    1 point
  38. كل الاعضاء عندهم او يستطيعون عمل ذك ويمكنهم التواصل معك عبر الخاص ينقل لقسم الاعلانات
    1 point
  39. صممت برنامج وواجهتني مشاكل كثيره انا مبتدى في الاكسس فارجو المساعدة من الخبراء البرنامج في المرفقات توجد به عدة مشاكل لم استطع تجاوزها 1- في حقل رقم الصنف لم استطع استدعاء رقم الصنف من الجدول 2- اذا كان الباقي -1 واقل اريدة الا يحفظ الفاتورة وان لا يفتح درج النقود 3- في حقل سعر الشراء اريد ان اجبر المستخدم على ادخال السعر من النموذج وليس من الجدول 4-اريد وضع اختصارات للتنقل بالنموذج مثل f3 و f4 وغيرها للحفظ والانتقال الى فاتوره جديده اي ان المستخدم لا يحتاج الى الماوس في الكاشير ارجو المساعدة جزاكم الله الجنة MATARANSOFT.rar
    1 point
  40. بسم الله الرحمن الرحيم تحية طيبة للجميع اساتذة لديه جدولين ( المدرسة , المدرس ) و قمت بربط بين الجدولين بطريقة one to many و قمت بانشاء نموذج رئيسى ( المدرسة ) و نموذج الفرعى ( المدرس) المطلوب : عند فتح نموذج المدرسة نقوم باختيار المدرسة بعدها نقوم بالضغط على الزر Login و يتم ادخال بيانات المدرس خاص بالمدرسة التى قمنا باختيارها سابقا اى تكون البيانات التى نقوم بادخالها فى نموذج المدرس تكون مربوطة بالمدرسة sample.rar
    1 point
  41. يمكنك استخدام معالج اكسس والذي سيقوم بالمهمة نيابة عنك انظر مثالك db4.rar
    1 point
×
×
  • اضف...

Important Information