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

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

  1. الصـقر

    الصـقر

    الخبراء


    • نقاط

      17

    • Posts

      1836


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

    ياسر العربى

    الخبراء


    • نقاط

      14

    • Posts

      1510


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

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

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


    • نقاط

      13

    • Posts

      13165


  4. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      8

    • Posts

      8723


Popular Content

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

  1. السلام عليكم ورحمة الله وبركاته اولا اشكرك على ثقة حضرتك الغالية فى لترقيتى الى خبير معتمد والله العظيم والله العظيم والله العظيم انا اقل واحد علما وقيمة فى الاعضاء ودا والله ليس غرور منى لكن هى الحقيقه والله واتمنى من حضرتك ارجاعى الى عضو مميز او عادى أما عضو خبير او خبير معتمد فوالله الذى لا اله الا هو لا استحقها وهقولها مره تانية هذا ليس تواضع منى دى حقيقه لا يعلمها الا الله انا كنت عايز اعمل ده قبل شهرين لما ترقيت الى عضو خبير ( ولكن خفت من اصحاب النفوس الضعيفه انها تفهم كلامى على محمل الغرور والاعتراض ) لكن ان الاوان انى اقول ما يدور بخاطرى ارجوا من حضرتك الاهتمام بالامر للاهميه ورجاء خاص من الاعضاء عدم كتابة اى تعليق واحد هيقولى كان بامكانك تبعت الكلام ده برساله خاصه بينك وبين الاستاذ محمد طاهر هقوله معك حق لكن حبيت ايضا الناس تعرف مين انا وانى اعترف قدام الجميع انى لا استحق الترقيه انا بالنهاية راجل محاسب واعتز بمهنتى ولست دارس للبرمجه فالاكسيل ما هو غير هوايه لى مش اكتر وكمان بتسفيد منه فى عملى
    5 points
  2. بسم الله الرحمن الرحيم سابقا كنت ابحث عن طريقة اعرض بها منتجا علي الاكسيل بمعلومات كاملة عنه وهي بيانات المنتج وصورته فكان من السهل الوصول للبيانات بمعادلات بسيطة وسهلة اما صورة المنتج فكانت مشكلتي حتى وجدت هذا الكود الرائع فاحببت ان افيدكم لان المعظم سيحتاجه لنفس غرضي او لوضعه مثلا كصورة مستخدم لكل مستخدم لبرنامج الاكسيل وغيرها اليكم المثال يوجد فولدر داتا وهو الذي يحتوي علي كل الصور التي ستعرض في الملف كل ما عليك هو ان تدخل علي شيت اتنين وتملاء بياناتك الكود والصنف والحجم والسعروالملاحظات وتدخل علي فولدر داتا وتضع فيه صور منتجاتك وتعمل لها اعادة تسمية ولكل كود منتج تكتبه علي الصورة الخاصة به وتدخل علي الشيت الاول وتكتب الكود الذي ترغب في رؤية بياناته اترككم لتجربوه بنفسكم ياسر العربي image.rar
    4 points
  3. بسم الله والصلاة والسلام على رسول الله وعلى آله وصحبه ومن والاه منتدانا العزيز...إخوتي الكرام...أخي الحبيب حسام عيسى المحترم السلام عليكم ورحمة الله وبركاته نهنئ منتدانا ...نهنئ أنفسنا.. مباركة عليكم الترقية التي تستحقونها بجدارة أخي الحبيب حسام عيسى لمسنا منك مواظبتك على تقديم كل ما هو جديد ومفيد ...وليس غريباً على إدارة موقع أوفيسنا الكريم أن تكرم عضواً كريماً دأب بشكل متواصل على بذل كل ما يستطيع من جهد ليوصل العلم النافع والمفيد إلى كل من ارتاد منتدانا الكريم تستحقهــــــــــــــــــــــــــا بجـــــــــــــــــــــــــــدارة وإلى المزيد من العطاء وعقبى لكل الأخوة الكرام الذين اجتهدوا ليصبح منتدانا منارة تضيء للإنسانية طريق المستقبل الواعد والسلام عليكم...
    3 points
  4. تفضل اخى الحبيب المرفق فيه ما طلبت ترحيل حسب الحالة مع بقاء البيانات في الشيت2.rar ترحيل حسب الحالة مع بقاء البيانات في الشيت2.rar
    3 points
  5. انسخ هذا الكود وضعه في حدث Workbook Private Sub Workbook_Open() UserForm2.Show vbModeless End Sub
    3 points
  6. اتفضل المطلوب: تم عمل التعديلات الاتية: 1- بعض التعديل على كود الترحيل للتأكد من (عدم تكرار رقم الفاتورة - قيام المستخدم بملء البيانات بالكامل - تنظيف الفورم بعد الترحيل) وترحيل ارقام الفواتير المدخلة الى شيت مستقل 2- إضافة شيت مخصوص لعملية الاستدعاء والتعديل والحذف مع تعديل كود الاستدعاء ليكون حسب رقم الفاتورة فقط Accounting.rar
    3 points
  7. اخى الحبيب زيزو اولا اسف انى اتاخرت عليك بالرد لكن والله ما دخلت الموقع من يوم الخميس تفضل يا غالى انت بس تامر شاهد المرفق الدرس رقم 1.zip
    3 points
  8. السّلام عليكم و رحمة الله و بركاتة اخى واستاذى المحترم حسام عيسى الف مبروك على هذه الترقيه المستحقة .. والى مزيد من التقدم والرقى ان شاء الله والشكر موصول لكل من الاخ والاستاذ الفاضل / محمد حسن المحمد على هذه اللفتة الطيبة وعلى حرصة الدائم على تشجيع وتحفيز الاعضاء ... وباقى الاخوه الكرام ..
    2 points
  9. السلام عليكم ورحمة الله وبركاته الدرس الحادي عشر 11-Worksheet&Workbook Events احداث الورك بوك والورك شيت وسوف نتناول فى هذه الدرس الاتى Worksheet_SelectionChange Worksheet_Activate Worksheet_Deactivate Worksheet_Change Worksheet_BeforeDoubleClick Worksheet_BeforeRightClick Workbook_Open Workbook_BeforeClose Workbook_BeforeSave Workbook_AfterSave Workbook_SheetActivate Workbook_SheetBeforeDoubleClick Workbook_SheetBeforeRightClick Workbook_NewSheet Workbook_SheetChange Workbook_SheetSelectionChange ............................................................................................. سوف نتناول هنا بعض الاكواد التى توضع فى حدث الورقه مع محاولة توضيح كيفية استخدامها كيفية اضافة الاكواد الخاصه بالحدث Worksheet يتم ذلك عن طريق الدخول الى محرر الاكواد ثم اختيار الشيت الذى نريد تطبيق الكود فيه والضغط مرتين على اسم الشيت فى محرر الاكواد لفتح نافذه الاكواد ثم كتابة الكود داخل النافذه ده طبعا على سبيل المثال بالنسبه لاسم الشيت ولكن اختيار الشيت هيكون على اساس اسماء الشيتات الى عندك انت طبعا Worksheet_SelectionChange هنا يتم تنفيذ الامر كلما يحدث تغير داخل النطاق المحدد شكل الكود Private Sub Worksheet_SelectionChange(ByVal Target As Range) End Sub Worksheet_Activate هنا يتم تنفيذ الامر كلما يتم الدخول الى الورقه شكل الكود Private Sub Worksheet_Change(ByVal Target As Range) End Sub Worksheet_Deactivate هنا يتم تنفيذ الامر كلما يتم الدخول الى اى ورقه داخل الشيت اى الخروج من الورقه التى بها الكود شكل الكود Private Sub Worksheet_Deactivate() End Sub Worksheet_Change هنا يتم تنفيذ الامر كلما يتم حدوث تغير فى الورقة شكل الكود Private Sub Worksheet_Change(ByVal Target As Range) End Sub Worksheet_BeforeDoubleClick هنا يتم تنفيذ الامر كلما يتم الضغط على زر الماوس الايسر مرتين شكل الكود Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) End Sub Worksheet_BeforeRightClick هنا يتم تنفيذ الامر كلما يتم الضغط على زر الماوس الايمن شكل الكود Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) End Sub انتهينا من معظم احداث الورك شيت ................................................................................................................................................................................................................................................................................... نتناول الان معظم احداث الورك بوك الفرق هنا ان هذا الكود يوضه فى حدث الورك بوك وطالما وضع فى حدث الورك بوك فيكون قابل للتنفيذ على جميع الشيتات الموجوده فى الورك بوك وليس على شيت بعينه لكتابة الكود داخل حدث الورك بوك ندخل الى محرر الاكواد ثم نضغط على ThisWorkbook مرتين ثم ندخل الى نافذة محرر الاكواد ونكتب فيها الكود Workbook_Open هنا يتم تنفيذ الامر عند فتح الملف شكل الكود Private Sub Workbook_Open() End Sub Workbook_BeforeClose هنا يتم تنفيذ الامر قبل غلق الملف شكل الكود Private Sub Workbook_BeforeClose(Cancel As Boolean) End Sub Workbook_BeforeSave هنا يتم تنفيذ الامر قبل حفظ الملف شكل الكود Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub Workbook_SheetActivate هنا يتم تنفيذ الامر عند التنقل بين اوراق الملف شكل الكود Private Sub Workbook_SheetActivate(ByVal Sh As Object) End Sub Workbook_AfterSave هنا يتم تنفيذ الامر بعد حفظ الملف شكل الكود Private Sub Workbook_AfterSave(ByVal Success As Boolean) End Sub Workbook_SheetBeforeDoubleClick هنا يتم تنفيذ الامر كلما يتم الضغط على زر الماوس الايسر مرتين فى كل اوراق الملف شكل الكود Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub Workbook_SheetBeforeRightClick هنا يتم تنفيذ الامر كلما يتم الضغط على زر الماوس الايمن فى كل اوراق الملف شكل الكود Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) End Sub Workbook_NewSheet هنا يتم تنفيذ الامر كلما يتم اضافة ورقه جديده شكل الكود Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) End Sub Workbook_SheetChange هنا يتم تنفيذ الامر عند حدوث تغير فى اى ورقه من اوراق العمل شكل الكود Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) End Sub Workbook_SheetSelectionChange هنا يتم تنفيذ الامر عند حدوث تغير فى نطاق المحدد فى اى ورقه من اوراق العل شكل الكود Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) End Sub انتهينا من معظم احداث الورك شيت ............................................... طبعا فى كتير بيسأل دلوقتى احنا استفدنا ايه من الاكواد دى ولو عايزين نستخدمها هنستخدما ازاى امثـلـــــــــــــــــــــــه عـمـلـيـــــــــــــــــــــه Worksheet_SelectionChange نفترض اننا عايزين حينما يتم التنقل فى الخلايا من a3:a10 يتم ادخال رقم الصف فى الخليه المقابله فى العمود2 يعنى لما ننتقل الى الخليه a3 يتم كتابة رقم الصف فى الخليه b3 ولما ننتقل فى a4 يتم ادخال رقم الصف فى b4 وهكذا كيف نستطيع ان نقوم بعمل ذلك جرب استخدام الكود الاتى Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row > 10 Then Exit Sub ' فى حالة ان السطر اكبر من 10يتم الخروج من الكود وعدم تنفيذ شئ If Target.Column = 1 Then 'فى حالة العمود الاول If Target.Row >= 3 Then 'فى حالة ان السطر اكبر من او يساوى السطر3 Target.Offset(0, 1).Value = Target.Offset(0, 0).Row ' يتم اعطاء الخليه التى تلى خلية ادخال البيانات بعمود رقم السطر الحالى End If End If End Sub Worksheet_Change نفترض اننا عايزين حينما يتم الكتابه فى الخلايا من a3:a10 يتم ادخال رقم الصف فى الخليه المقابله فى العمود2 يعنى لما نكتب فى الخليه a3 يتم كتابة رقم الصف فى الخليه b3 ولما نكتب فى a4 يتم ادخال رقم الصف فى b4 وهكذا كيف نستطيع ان نقوم بعمل ذلك جرب استخدام الكود الاتى Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Row > 10 Then Exit Sub ' فى حالة ان السطر اكبر من 10يتم الخروج من الكود وعدم تنفيذ شئ If Target.Column = 1 Then 'فى حالة العمود الاول If Target.Row >= 3 Then 'فى حالة ان السطر اكبر من او يساوى السطر3 Target.Offset(0, 1).Value = Target.Offset(0, 0).Row ' يتم اعطاء الخليه التى تلى خلية ادخال البيانات بعمود رقم السطر الحالى End If End If End Sub Worksheet_Activate نفترض اننا عايزين اول ما ندخل على الشيت رقم 3 يتم ظهور رسالة ترحيب كيف يتم عمل ذلك جرب وضع الكود الاتى فى حدث الشيت رقم 3 Private Sub Worksheet_Activate() MsgBox "ابراهيم محمد" End Sub Worksheet_Deactivate نفترض اننا عايزين او ما نخرج من الشيت رقم3 ونروح لاى شيت اخر يتم ظهور رسالة ترحيب كيف يتم عمل ذلك جرب وضع الكود الاتى فى حدث الشيت رقم 3 Private Sub Worksheet_Deactivate() MsgBox "ابراهيم محمد" End Sub Worksheet_BeforeDoubleClick نفترض اننا عايزين لما نضغط فى دبل كليك فى العمود الاول فقط تظهر لنا رسالة ترحيب كيف يتم عمل ذلك جرب وضع الكود الاتى فى حدث الشيت رقم 3 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column > 1 Then Exit Sub If Target.Column = 1 Then MsgBox "ابراهيم محمد" End If End Sub هذا على سبيل المثال يمكنك اضافة الاكود التى تريدونها على حسب احتياجكم اتمنى ان يكون الدرس مفيدا مرفق شيت اكسيل به التطبيقات learnvba.rar تقبلوا تحياتى learnvba.rar
    2 points
  10. استاذى الفاضل محمد طاهر اولا مشكور جدا لاهتمامك انا كل اللى عايز اقوله سواء عضو خبير او خبير معتمد انا لا استحقها فمجرد وجودى عضو طالب علم فى جامعه اوفيسنا هذا شرف لى وهذا الكلام يدور بخاطرى من زمان لما تم الترقيه الى عضو خبير ارجوا ان تكون وضحت وجهة نظرى لحضرتك تقبل تحياتى واحترامى وتقديرى لشخصك الكريم
    2 points
  11. استاذى وحبيبى / ياسر خليل ابو البراء أولا وقبل أى شئ أرجو ان تتقبل عذرى وبالغ اسفى لتأخرى على سيادتك فى الرد على مشاركتك الجميلة . وذلك لاسباب خارجة عن إرادتى وأسباب قهرية. ارجو تقبل اسفى . وانا عارف انك قلبك كبير . ثانيا :- والله مش عارف اقولك ايه أنت فعلا ( حدوته مصرية ) بل أنت ( حدوته اكسيلية ) أبهرتنى بهذا العمل الجميل مثلك أيه ياحبيبى الجمال ده واسعدتنى بهذا العمل . اسعدك الله كما تسعد الاخرين وجعل الله كل هذة الاعمال الجليلة ونشر العلم ومساعدة الاخرين فى ميزان حسناتك اللهم امين ثالثا : ياحبيبى المعادلة رائعة واكثر من رائعة وجمال مابعده جمال ربنا يخليك لنا ياحبيبى ويباركلنا فيك فأنت رجل المواقف والحلول الصعبة وهذا ليس بغريب عليك . فأنت شخصة عظيمة وجميلة ومعطائة رابعا :- اسمحلى اجدد شكرى لسيادتك وادعو الله ان يسعدك كما تسعدنا بأعمالك ومشاركاتك الجميلة ياحبيبى خامسا :- ياحبيبى انت تأمر واحنا ننفذ واحنا تحت امرك سيادتك . قمت بتغيير اسم الظهور كما طلبت سيادتك من فضل 1 إلى فضل حسين وهو اسمى وأنا تحت امر سيادتكم حبيبى ابو البراء كل عام وانتم بخير وادعو الله ان تكون فى اتم صحة واحسن عال وتتشارك دائما معنا بأعمالك ومساعداتك الرائعة دائما ياحبيبى وفى النهاية اسمح لى أن ارفع لسيادتكم القبعة تعظيما واجلالا لهذا العمل وهذة المعادلة الرائعة اخوك فضل حسين
    2 points
  12. الف الف الف مبروك الحقيقة ان من يستحق التهنئة هو منتدانا العظيم الذى ابى الا ان يضم بين جنباته سوى العظماء امثالك من هذا الوطن دعنى استغل هذه الفرصة لاطلب منك المزيد من اعمالك الممتعة والمبهرة
    2 points
  13. لا حرمنا الله منك أخي الحبيب أسامة عمل متميز وفي قمة الروعة كروعة صاحبه تقبل وافر تقديري واحترامي
    2 points
  14. السلام عليكم اخي العزيز نحن بصدد اعادة ترتيب المجموعات و سيتم تنفيذ عدد من التعديلات على المجموعات فقد تم الغاء درجة خبير ، و اصبحت الدرجات الاحترافية عضو محترف ، و خبير معتمد فقط ، و تم الغاء درجة خبير و بناء عليه فقد تم نقل كل من كان في درجة خبير و عددهم 9 من الأخوة الي درجة خبير معتمد ،
    2 points
  15. السلام عليكم ورحمة الله وبركاته: أخي الحبيب حسام ...الله يجعلك من السعداء في الدنيا والآخرة ...إنما هو تقدير لقيامك عن طريق هذا المنتدى بخدمة الكثيرين من أمثالنا ...الذين يشهدون لكم ولخبراء إكسيل الكرام بالفضل في حل الكثير من المشاكل والمسائل التي تعيق عملهم وتخوضون بالبحث بكل ماهو جدير بالاهتمام ...فالخبرة برأيي لا تأتي عن طريق دراسة أكاديمية فحسب بل عن طريقة ممارسة عملية مع تطوير للذات لتكون بمصافِّ أولئك الذين درسوها...فكم من دارس غير متقن ..لأن الأمر انطلق من هواية تم تعميقها بالبحث ...أرجو أن تقبل هذا التكريم لنسعد به معك..أم أنك لا تريد لنا السعادة به.. واعلم أن هذا التكريم سيكون محرضاً ودافعاً لك لتقديم كل ماهو جديد ومفيد ...مع الشعور بالمسؤولية... تكريمك تكريم لنا....فلتكن نفسك راضية ....وأناعلى يقين أنك خائف من الرياء لذلك آثرت البقاء عل حالك السابق..ولكن يا أخي إن قام كل إنسان بعدم قبول المهمة التي يستحقها خوفاً من الرياء فلن تجد من يقوم بها إلا ما ندر...فتتعطل الكثير من المصالح أريد منك أن تقبل هذه التهنئة بكل رحابة صدر وبشاشة وجه ...فلم يقوموا بترقيتك عن عبث بل عن دراسة ودراية وأخذ وجهات نظر فريق الموقع ...هذا ظني بهم ...وكما صححت لي ورقة إجابتي ذات مرة فهناك من يتابعك وعرف أنّ من واجبه أن يقدم لك هذا التكريم....تقبل تحياتي العطرة...والسلام عليكم.
    2 points
  16. استاذى الحبيب والفاضل محمد حسن جزاكم الله خيرا ولكن اسمح لى انى اقولك انى انا لا استحقها والله ( بل الانسان على نفسه بصيرا ) لكن اسعد تكريم لى كان بالرابط التالى -التهنئة-بترقية-الاخ-حسام-عيسى-الى-عضو-مميز/ الى الان انا مازلت فخور فيه اما غيره فهو تكريم لا استحقه ولم يجلب لى غير الحزن تقبلوا تحياتى جميعا
    2 points
  17. السلام عليكم إخواني الكرام إليكم الملف المرفق فيه نبذة عن المصفوفات .. أرجو من الله أن ينفع به المسلمين Arrays.rar
    2 points
  18. وعليكم السلام ورحمة الله وبركاته فقط استبدل n1 بـ نص0 و n2 بـ نص2 لأن n1 و n2 تسمية وليست مربع نص 111.rar
    2 points
  19. السلام عليكم في حدث UserForm_Activate حطيت اشاره Call RegisterHotKey(mlngHwnd, HOTKEY_ID1, MOD_CONTROL, vbkeyA) ' Ctrl+A غير vbkeyA الى vbKeyB وباامكانك اضافة اوامر اخرى اضن تعديلك للكود السابق مختصر وافضل
    1 point
  20. كود جميل اخي سليم سلمت يداك وهذه بطريقة اخري مع تغيير اسم الزر تحياتي كشف عام مرتبات.rar
    1 point
  21. اكتب هذا الكود و عين له زر على الصفحة انه يقوم بأخفاء الصفوف المطلوبة و بكبسة ثانية يعيدها الى الظهور Sub hid_text() Range("ar7:ar98").SpecialCells(2).EntireRow.Hidden = Not (Range("ar7:ar98").SpecialCells(2).EntireRow.Hidden) End Sub
    1 point
  22. أخي الحبيب فضل حسين مشكور على كلماتك الرقيقة الطيبة في حقي ، وهذا كثير جداً في حقي ولا أستحقه وصدقني أنا مثلكم جميعاً متعلم ليس إلا .. كل ما في الأمر أنني أسعى وأجد في البحث هنا وهناك ولا أيأس ولا يتملكني اليأس أبداً وهذا كله بفضل الله وحده أدام الله المودة والحب بيننا جميعاً أيها الأخوة الأحباب تقبلوا وافر تقديري واحترامي
    1 point
  23. السلام عليكم ورحمة الله وبركاته انظر المرفق تم التعديل تسجيل غياب.rar
    1 point
  24. ارجو منك التوضيح كي اتمكن من مساعدتك هل تود الترحيل لنفس الخلايا فقط ام تحتاج الى ترحيل الى الخلايا وعند ادخال جديد تريد الترحيل ان يكون تحت القديم مثلا ؟؟؟؟؟؟؟؟
    1 point
  25. الطريقه الثالثه :- استخدام النطاقات المعرفه بدالة Offset فى عمل نطاق ديناميكى متغير اليكم الرابط التالى للقدير واستاذى الفاضل / محمد نصرى يشرح فيه الداله offset بطريقه رائعه http://www.officena.net/ib/topic/56588-سلسلة-تعلم-اكسل-معي-بالصوت-والصورة/?do=findComment&comment=358921 تحديدا الفيديو الثانى هو اللى مرتبط بموضوعنا وبعد ما تشاهد الفيديو ارجع لشرحى المتواضع وهتعرف ليه قلتلك افهم الداله Offset وهذا شرحى المتواضع عن الداله offset الداله Offset هى من اهم الدوال فى الاكسيل انا شخصيا لما بتعامل معها بحس انى مهندس مساحه دلوقتى هنعرف ما هى داله offset وازاى نستفيد بيها فى عمل نطاق ديناميكى معرف يتم استخدامه فى تعبئة الكمبوبوكس بالبيانات هقولك ما هى الداله offset بلغة المصطبه واحنا قاعدين كدا نشرب كوباية شاى فى الخمسينه ازاى بقى نطبق الكلام ده فى الاكسيل شوف الصوره دى الاول وبعدين نكمل زى ما شايفين بالصوره وقفت بالخلية G8 وعملت الداله offset فهى مكونه من خمس اقسام 1- reference : - وهو مرجع العمل يعنى تحديد مركز انطلاق العمل وهو كما بالصوره A2 لانها اول خلية بالجدول المظلل باللون الاخضر فأنا حدد A2 لتكون مركز انطلاق العمل 2- rows : - وهى تعنى الصفوف ومن خلالها يتم تحديد صف بداية العمل يعنى اتحرك كم صف من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى صف من الخلية A2 3- Cols: - وهى اختصار كلمة Colmuns تعنى العمود ومن خلالها يتم تحديد عمود بدابة العمل يعنى اتحرك كم عمود من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى عمود من الخلية A2 ) 2 و 3 يتم من خلالهم تحديد نقطة بداية العمل 4- height: - وهى تعنى ارتفاع ومن خلالها يتم تحديد كم صف نريده للاستخدام ( هنا بالمعادله كتبت 6 يعنى اجلب لى 6 صفوف بدأ من الخلية A2 ) 5- width: - وهى تعنى عرض ومن خلالها يتم تحديد كم عمود نريده للاستخدام ( هنا بالمعادله كتبت 1يعنى اجلب لى عمود واحد بدأ من الخلية A2 ) 4 و 5 يتم من خلالهم تحديد كم صف وكم عمود نريده للاستخدام الكلام ده هيتضح لك اكتر لانه اذا عرف السبب بطل العجب انسخ المعادله اللى كتبناه بالخلية G8 واتبع التعليمات اللى بالصوره وبكدا عرفنا نطاق شوف الخطوه اللى بعد كدا شاهد الصوره وبكدا عند عرض الفورم شاهد النتيجة واحد هيقولى وليه يا عم اللفه الطويله دى انا مش شايف فرق بينها وبين الطريقه التانية اللى شرحتها قبل كدا هى نفس الفكره فى تعريف النطاق ومن ثم كتابته فى Rowsource يعنى دلوقتى لو حبينا نضيف اسم جديد فى الخلية A8 مش هيظهر فى الكمبوبوكس وانت قلتلى انه نطاق ديناميكى يكبر ويصغر حسب الادخالات فى العمود A هقوله برافو عليك انك صاحى معايا تعالى بقى اقولك ايه الفرق بينها وبين الطريقه التانية هو انى بدل ما انا محدد عدد 6 صفوف فى المعادله offset هستعين بداله Count A وهى تعمل على عد الخلايا اللى بها كتابه فى نطاق معين =COUNTA(A2:A10000) لو عملنا المعادله دى فى اى خليه هيقوم بعد الخلايا اللى بها بيانات فى النطاق من A2 الى الخلية A10000 مثلا طبعا النتيجة طبقا للصوره السابقه هتكون 6 ولكن لو قمت باضافه اسم جديد هتكون النتيجة 7 أذن اروح للداله Offset واتحكم فى عدد الصفوف من خلال Count A هتكون المعادله كدا =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) لاحظ الفرق بينها وبين المعادله السابقه استبدلنا رقم 6 بالمعادله هننسخ المعادله دى ونروح نعدل النطاق اللى عرفناه قبل كدا وبكدا ضيف اى اسماء عملاء جديده او احذف اى اسماء موجوده وشاهد الكمبوبوكس سوف يتم عرض الاسماء الموجوده فقط دون زياده او نقصان شاهد الصوره واحد هيقولى انت كدا علمتنى ازاى اتحكم فى عدد الصفوف لتكون تلقائيه حسب عددها بالشيت طيب ازاى اتحكم فى عدد الاعمده انا شايف الكمبوبوكس بيظهر عمود 1 انا عايزه يظهر عمودين ازاى التحكم فى المعادله دى المعادله اللى موجوده دلوقتى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) وعلشان تتحكم فى عدد الاعمده غيرها الى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);2) اللى مركز معايا هيلاحظ الفرق بين المعادلتين فى اخر جزء من المعادله وهو عدد الاعمده غيرت بدل من عرض عمود 1 الى عمودين 2 طبعا علشان تغيرها لازم تروح الى قائمة Name Manager وتعمل تحرير للنطاق وتغير المعادله بدل من عمود واحد الى عمودين وطالما عايز تعرض عمودين متنساش زى ما قلنا قبل كدا تكتب 2 فى الخاصيه Column Count شاهد الصوره عند تغيير المعادله علشان تثبت المعلومه فى راسك لازم تجرب الكلام ده عملى بنفسك اتمنى يارب اكون وفقت بالشرح واتمنى لكم التوفيق والى لقاء اخر فى طريقه جديده من طرق تعبئة الكمبوبوكس بالبيانات
    1 point
  26. السلام عليكم لدي هذا المف في جهازي من هذا المنتدي القيم لعله يكون طلبك الغاء تفعيل علامة x.rar
    1 point
  27. التهنئة بترقية الاخ حسام عيسى الى عضو مميز
    1 point
  28. أخى الفاضل الأستاذ الكريم حسام عيسى ألف مبروك للتّرقية المستحقّة بجدارة
    1 point
  29. تفضل ليس بالكود الاحترافي ولكن يحل المشكلة لو الاخوة هنا عندهم فكرة نختصر بها الكود يبقي افضل دليل.rar
    1 point
  30. أخي الحبيب الغالي المتميز حسام عيسى ألف مبروك الترقية المستحقة عن جدارة ، وفي حقيقة الأمر لا أجيد استعمال الكلمات كأبي أبو يوسف ولكن رب كلمة تهنئة تكفيك ربما لا أكون أول المهنئين لك على الترقية ولكني أحسب نفسي أصدقهم وكما أخبرنا الحبيب أبو يوسف ...الترقية ليست مجرد ترفيع إنما هي في المقام الأول مسئولية ، وبإذن الله نحسبك أهلاً لها تقبل وافر تقديري واحترامي
    1 point
  31. بسم الله ماشاء الله ... استاذى الفاضل اسامة البراوى ... والله تعجز الكلمات عن وصف تصميمك للملف ... فعلا عمل متميز ... بارك الله فيك
    1 point
  32. اخى حسام الف مليون مبروك عليك الترقيه ترقيه مستحقه باذن الله الى مزيد من التقدم فى انتظار المزيد من اعمالك الجيده تقبل تحياتى
    1 point
  33. السّلام عليكم وحمة الله و بركاته بارك الله فيك أستاذي القدير .. أستاذي المحترم " حسام عيسى " على الكلمات الطيّبة .. أحسست بغيابك .. طالما أتفقّد أحبابي .. ألف شكر على الملف الرّائع .. كود شافي و وافي وهو المطلوب بالتّمام و الكمال .. جزاك الله خيرًا و زادها بميزان حسناتك .. و زادك من علمه و فضله كامل إحتراماتي سيّدي الغالي
    1 point
  34. شاكر لك اهتمامك وايضاح الامر انه كان صدفه عن طريق ترتيب امور اداريه متعلقه بالمنتدى ولكن يكفينى من حضرتك عضو عادى فهذا شرف لى واعتز به فانا مازلت طالب فى جامعه اوفيسنا الموقره تقبل تحياتى
    1 point
  35. اضم صوتي لصوتك اخي الحبيب ابو يوسف انا شايف ان اخي وحبيبي حسام الصقر يستحق هذا ليس مجاملة والله ولكن رصيدك من المواضيع والمشاركات النافعة المفيدة يدل علي ذلك ويبقي القرار لصاحب الشأن انا بناشد مدير الموقع وانا كمان مش عايز ابقي خبير معتمد انا عاوز ابقي مدير علي طووووول
    1 point
  36. أخي الكريم ناصر يفضل دائماً وضع الملف المرفق المعبر عن الملف الأصلي من البداية حتى لا يطول الموضوع بدون داعي كما يفضل أن يكون الطلب واضح تماماً مع توضيح تفاصيل الملف بالكامل .. لأن الأكواد حساسة جداً لكل تفصيلة عموماً إليك الكود التالي وإن شاء الله يفي بالغرض Sub Test() Dim Col As New Collection, Arr, I As Long, J As Long On Error Resume Next Arr = Sheet1.Range("A7:J" & Sheet1.Cells(Rows.Count, "A").End(xlUp).Row).Value For I = 2 To UBound(Arr, 1) For J = 2 To UBound(Arr, 2) Col.Add Key:=J & Chr(2) & Arr(I, 1), Item:=Arr(I, J) Next J Next I With Sheet2.Range("A7:J" & Sheet2.Cells(Rows.Count, "A").End(xlUp).Row) Arr = .Value For I = 2 To UBound(Arr, 1) For J = 2 To UBound(Arr, 2) Arr(I, J) = Col(J & Chr(2) & Arr(I, 1)) Next J Next I .Value = Arr End With End Sub أرجو أن يكون المطلوب إن شاء الله تقبل تحياتي
    1 point
  37. إذا كنت تقصد أخي الحبيب علامة الإغلاق في الفورم فهذا أمر يسير يمكن استخدام الكود التالي في حدث الفورم Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then Cancel = True MsgBox "تم إلغاء هذا الزر للإغلاق .. لطفاً استخدم زر الأمر", vbCritical End If End Sub إليك الملف المرفق Test YasserKhalil.rar
    1 point
  38. مش عارف الكود دا حلو ولا لا شوفوا كدا وصغير ياعم الحاج مش كبير Book1.rar
    1 point
  39. http://www.officena.net/ib/topic/36752-كود-اضافة-خدمة-مضافة-الى-الخدمة-الفعلية-للموظفين-بالاكسس/ http://www.officena.net/ib/topic/43253-حساب-العمر-الى-تاريخ-معين-مستقبلي/ http://www.officena.net/ib/topic/60034-حساب-العمر-باليوم-والشهر-والسنة-في-تاريخ-محدد/
    1 point
  40. تفضل اخي هل يفي هذا بالغرض اضغط انتر بعد فتح الفورم واحد سيظهر الفورم اتنين اضغط الزر يظهر الفريم تفعيل الأختصارات في أوامر الفورم.rar
    1 point
  41. الحمد لله تم بعون الله وحمده شكرا
    1 point
  42. السلام عليكم اطلع على المرفق تجربة4.rar
    1 point
  43. تفضل حل المشكلة الثانية في شيت فوائم الفصول غير الخلية F6 ولاحظ النتيجة طلب من اهل الخبرة ف الاكسل3.rar
    1 point
  44. مجهود بسيط مني إليكم وإلى كل من يعاني من استدعاء الصور في الإكسيل.. تم استخدام طريقة مختلفة وهي تلوين المستطيل بالصورة مما وفر علينا كثير من الكودات.. حيث يمكنك البحث عن الصور والتعديل عليها وكذلك إضافتها إلى المجلد بشكل تلقائي .. إليكم المرفق. (الرجاء نقل المجلد pics إلى مجلد المستندات لديكم) lockup and get pics.rar
    1 point
  45. الاخوة الكرام اقدم لكم بقية لدرس الترحيل كيفية وضع شروط تجبر المستخدم على ادخال بيانات مما لا شك فيه ان سند القبض اللى بصورة التالية لابد من ادخال جميع البيانات اللى بالسند وهى المظلله باللون الاصفر رقم الايصال بالخلية [G7] تاريخ السند بالخلية [D8] الجهه التى تم القبض منها بالخلية [D10] المبلغ المقبوض بالخلية [D11] ان شاء الله اليوم بنتعرف كيف يمكن اجبار المستخدم على ادخال البيانات قبل ترحيلها فلا يعقل مثلا ان يقوم المستخدم بعدم كتابه تاريخ للسند ويترك الخلية فارغه بدون تاريخ ثم يقوم بالترحيل لازم اجبره على ادخال التاريخ اولا: اجبار المستخدم على ادخال رقم الايصال بالخلية [G7] هنستخدم السطر التالى بالكود If [g7] = "" Then MsgBox "الرجاء ادخال رقم الايصال": Exit Sub هذا السطر يتم اضافتة بعد هذا السطرمن الكود Application.ScreenUpdating = False ليصبح هكذا Sub ترحيل() Application.ScreenUpdating = False If [g7] = "" Then MsgBox "الرجاء ادخال رقم الايصال": Exit Sub With Sheet4 Lr = .Cells(.Rows.Count, "D").End(xlUp).Row .Cells(Lr + 1, "A") = [D8] .Cells(Lr + 1, "B") = [g7] .Cells(Lr + 1, "D") = [D10] .Cells(Lr + 1, "G") = [d11] .Cells(Lr + 1, "E") = "=R[-1]C+RC[2]-RC[1]" End With End Sub تعالى بقى نشرح معنى هذا السطر If [g7] = "" Then MsgBox "الرجاء ادخال رقم الايصال": Exit Sub هذا السطر من الكود معناه ببساطه كدا ان لو الخلية [g7] فارغه اكتب رساله تظهر للمستخدم تنبهه بان الخلية فارغه ويجب ادخالها و اخرج من الكود ومتكملش الشىئ الذى تريد تنفيذه then الشرط المطلوب التحقق من وجوده if استخدمنا هنا IF وذالك لعمل شرط قبل عملية الترحيل وهى كما نعرف جميعا ان iF معناها لو then معناها تنفيذ الشرط الذى نريده كما اتفقنا من قبل هو عدم ترك الخلية [g7] فارغه اللى بيسجل بها رقم الايصال الكود هيقوم باختبار الشرط التالى "" = [if [g7 "" العلامه هذا بالكود تعنى فارغ ( فلو [g7] تساوى فارغ نفذ كذا كذا ) نفذ دى فى الكود هى Then وسيكون لونها بالكود ازرق هينفذ ايه بقى انا عايزة يظهر رساله وهى " الرجاء ادخال رقم الايصال" ونلاحظ انها مكتوبه بين علمتى تنصيص ( تكتب من خلال شيفت + حرف ط بالكيبور) وهينفذ ايه تانى غير الرساله هينفذ خروج من الكود ميكملش يعنى ودى بتكون exit sub : وبعدها كتابتها ستجد ان لونها اصبح ازرق لمتابعه شرح عن كتابة الرسائل فى لغة البرمجه يرجى مراجعه الرابط التالى ستجد شرح باستفاضه http://www.officena.net/ib/index.php?showtopic=57199&hl= ) ثانيا : عايزين نجبر المستخدم على ادخال التاريخ If [d8] = "" Then MsgBox "الرجاء ادخال تاريخ لسند القبض": Exit Sub هو نفس السطر السابق بس بنختبر الخليه [d8] فيها تاريخ ام لا ثالثا : اجبار المستخدم على ادخال الجهه التى تم الاستلام منها If [d10] = "" Then MsgBox "الرجاء ادخال اسم الشخص الذى تم الاستلام منه": Exit Sub رابعا: اجبار المستخدم على ادخال المبلغ المقبوض If [d11] = "" Then MsgBox "الرجاء ادخال المبلغ المقبوض": Exit Sub وهيكون الكود فى شكله النهائى كالتالى Sub ترحيل() Application.ScreenUpdating = False If [g7] = "" Then MsgBox "الرجاء ادخال رقم الايصال": Exit Sub If [d8] = "" Then MsgBox "الرجاء ادخال تاريخ لسند القبض": Exit Sub If [d10] = "" Then MsgBox "الرجاء ادخال اسم الشخص الذى تم الاستلام منه": Exit Sub If [d11] = "" Then MsgBox "الرجاء ادخال المبلغ المقبوض": Exit Sub With Sheet4 Lr = .Cells(.Rows.Count, "D").End(xlUp).Row .Cells(Lr + 1, "A") = [d8] .Cells(Lr + 1, "B") = [g7] .Cells(Lr + 1, "D") = [d10] .Cells(Lr + 1, "G") = [d11] .Cells(Lr + 1, "E") = "=R[-1]C+RC[2]-RC[1]" End With End Sub يعنى الكود قبل الترحيل هيعمل اربع اختبارات الاول هيمسك اول سطر بتاع رقم الايصال لو موجود ينتقل للسطر اللى بعده ولو مش موجود هبخرج من الكود ومش هيكمل وهكذا ما باقى الاسطر الين يتحقق من وجود بينات بالاربع خلايا ثم يقوم بعمليه الترحيل خامسا : هل يمكن عمليه الاختبار بسطر واحد بدلا من اربع اسطر نعم يمكن ذالك من خلال السطر التالى If [g7] = "" Or [d8] = "" Or [d10] = "" Or [d11] = "" Then MsgBox "الرجاء ادخال جميع بيانات السند": Exit Sub هنا تم استخدام داله OR وهى تعنى أو لو الخلية اللى بها رقم الايصال فارغه أو الخلية اللى بها التاريخ فارغه او الخلية اللى بها الجهه التى تم استلام المبلغ منها أو الخلية اللى بها المبلغ فارغه نفذ رساله ثم اخرج من الكود ومتكملش ويكون الكود بشكله النهائى كالتالى Sub ترحيل() Application.ScreenUpdating = False If [g7] = "" Or [d8] = "" Or [d10] = "" Or [d11] = "" Then MsgBox "الرجاء ادخال جميع بيانات السند": Exit Sub With Sheet4 Lr = .Cells(.Rows.Count, "D").End(xlUp).Row .Cells(Lr + 1, "A") = [d8] .Cells(Lr + 1, "B") = [g7] .Cells(Lr + 1, "D") = [d10] .Cells(Lr + 1, "G") = [d11] .Cells(Lr + 1, "E") = "=R[-1]C+RC[2]-RC[1]" End With End Sub وفى النهاية ارجوا ان اكون وفقت بالشرح واتمنى ان يستفيد منه الجميع تقبلوا منى وافر الاحترام والتقدير
    1 point
  46. بسم الله الرحمن الرحيم والصلاة والسلام على اشرف المرسلين سيدنا محمد صلى الله عليه وسلم لقد قدمت سابقا نموذج فاتوره على الاكسيل بدون فورم وبناء على طلب بعض الاخوه فى شرح كيفيه عمل النموذج وتلبية لرغباتهم نتناول طريقه عمل النموذج ونظرا لضيق الوقت ان شاء الله يتم تناول درس يوميا على الاقل حتى الانتهاء بإذن الله .......................................................................... الاخوه الافاضل الحمد لله فقد انتهينا من شرح الدرس الاول وهو عباره عن ثلاثة دروس تمهيديه وهى اولا--تصميم الفاتوره ثانيا--انشاء شيت به الاكواد المساعده ثالثا--انشاء شيت لتجميع بيانات الفواتير المسجله --------------------------------------------------- الان نبدأ فى شرح الدرس الثانى الدرس الثانى ( أ ) الكود الاول--كود يقوم بعمل تسلسل لرقم الفاتوره بالتاكيد اننا نحتاج لمثل هذا الكود توفيرا للوقت الضائع فى ادخال الرقم بأيدينا وظيفة الكود انه بعد الانتهاء من الفاتوره وادخال بياناتها يقوم الكود تلقائيا بوضع رقم جديد للفاتوره وهذا الكود سوف يكون مرتبط بالبيانات المسجله فى شيت INVOICE DATA وبالاخص فى العمود C والخاص برقم الفاتوره حيث ان عمل الكود يكون كالاتى انه فى حالى عدم وجود بيانات فى العمود c يتم اعطاء الخليه الرقم 1 اما فى حالة وجود بيانات يتم اخذ اكبر رقم موجود ثم يتم اضافة 1 اليه الان نتعرف على كيفيه كتابة الكود وطريقه عمل الكود نقوم بانشاء موديل جديد وكتابة الكود داخلها كالاتى وهنا نجد ان الشكل النهائى للكود يكون كالأتى Sub INV_NO() On Error Resume Next Dim WS As Worksheet Dim WS1 As Worksheet Set WS = Worksheets("INVOICE") Set WS1 = Worksheets("INVOICE DATA") If WS.Range("I6").Value = "" Then WS.Range("I6").Value = 1 Exit Sub End If If WS.Range("f6").Value <> "" Then With WS1 WS.Range("I6").Value = Application.Max(WS1.[C6:C10800]) + 1 End With End If End Sub واسمحو لى ايها الاخوه الافاضل بمحاوله متواضعه منى لشرح اسطر الكود Sub INV_NO() كلمة sub ,وهى اختصار لكلمة Subroutine وتعنى تنفيذ مهمه محدده هذه المهمه تم تسميتها ب INV_NO Dim WS As Worksheet Dim WS1 As Worksheet هنا يتم الاعلان عن متغير اسميناه ب ws ,ومتغير اخر اسميناه ب ws1 وتم الاشاره الى كلا من المتغيرين على انهما سيكونان عباره عن شيت اكسيل Set WS = Worksheets("INVOICE") Set WS1 = Worksheets("INVOICE DATA") وهنا يتم تعريف المتغيرين وتحديد اسمهما فنجد ان المتغير الاول ws تم نعريفه على انه الشيت المسمى ب invoice ونجد ان المتغير الثانى ws1 تم نعريفه على انه الشيت المسمى ب invoice data If WS.Range("f6").Value = "" Then هنا ينم استخدام القاعده if داخل الكود لتنفيذ شئ معين وفى البداية نود ان نشير الى شئ معين الا وهو كيفيه استخدام المتغير ws فمثلا فى هذا السطر نشير الى الخليهf6فى شيت invoice وبذلك يكون شكل الكود كألأتى sheets("invoice").range("f6") هكذا يتم الاشاره الى الخليه f6 فى شيت invoice اما فى حالة استخدام الاختصار اى استخدام المتغير ws تكون الاشاره كالأتى ws.range("f6") وبالنظر الى سطر الكود سنجد اننا نريد ان نقول انه فى حالة عدم وجود بيانات فى الخليه f6 فى الشيت ws اى شيت invoice يتم تنفيذ الاتى WS.Range("I6").Value = 1 وفى هذا السطر نجد انه سوف يتم تنفيذ أو سوف يتم اعطاء الخليه f6 فى شيت ws اى فى شيت invoice الرقم 1 Exit Sub End If كلمة Exit Sub وظيفها انه تقوم بانهاء عمل الكود فلا يتم تنفيذ شئ بعدها اما كلمة End If فهى تقوم بانهاء عمل الشرط if
    1 point
  47. أخوتى فى هذا الصرح العظيم إستكمالا بل وتكملة لما بدأتة من عمل وهو كيفية دمج العديد من الجداول فى جدول واحد كان لزاما ونظرا لطلب العديد من الزملاء كيفية البحث فى العديد من الجداول ودمجها فى أنا واحد أقدم لكم الجزء الأهم والأخطر لدمج العديد من الجداول والبحث فيها عن طريق ( شرط ) ليكون بذلك أول منتدى عربى فى الأكسيل يتضمن ذلك: والأن إلى المرفق: وهذا تطبيق عملى أخر للبحث والدمج قد طلبة أخى (عادل أبو زيد ) ، وهذالمرفق المطلوب أخى الحبيب ( عادل ) أنظر للمرفق الثالث تم تغيير الشرط للتاريخ وهذا فى يدك تستطيع أن تختار ماتريد الفلترة على أساسة البحث فى العديد من الجداول ودمجها عن طريق شرط.rar ادخال شيت دخول مع شيت خروج لعمل شيت اجمالى عملاء.rar ادخال شيت دخول مع شيت خروج لعمل شيت اجمالى عملاء 2.rar
    1 point
  48. هناك موضوع عن عمل مجموع صفوف في عامود واحد gs لقد نسيت من طلبه لكن اعرف ان اسم الملف وجدت الحل يرجى من صاحب المشاركة اعلامي كي ارسله له عبر المنتدى عندي سؤال لادارة المنتدى :كيف العمل للبحث عن موضوع معين في المنتدى/ هناك زر للبحث يأخذني الى جوجل و انا اريد البحث داحل المنتدى
    1 point
×
×
  • اضف...

Important Information