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

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

  1. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      25

    • Posts

      3,491


  2. رمهان

    رمهان

    الخبراء


    • نقاط

      7

    • Posts

      2,390


  3. محمدنجار

    محمدنجار

    04 عضو فضي


    • نقاط

      5

    • Posts

      637


  4. أبو عبدالله الحلوانى

Popular Content

Showing content with the highest reputation on 01 أبر, 2017 in all areas

  1. العفو اخي حلبي لايوجد كود وانما جملة ال sql الخاصة بالاستعلام ولو تم الذهاب للتصميم يظهر الاستعلام بالشكل المعروف او بعرض التصميم لوحدتي الاستعلام عبار عن استعلام مجاميع group by ويتم التحويل لاستعلام مجاميع بالضع على علامة سيجما او المجموع من الشريط اعلى كل شهر على حده لكل موظف SELECT Enterans_Absent.ID, Format([date],"mmyyyy") AS Expr2, Sum([hdor]="غياب") AS Expr1 FROM Enterans_Absent GROUP BY Enterans_Absent.ID, Format([date],"mmyyyy") HAVING (((Sum([hdor]="غياب"))=0)); لكل سنة SELECT Enterans_Absent.ID, Format([date],"yyyy") AS Expr2, Sum([hdor]="غياب") AS Expr1 FROM Enterans_Absent GROUP BY Enterans_Absent.ID, Format([date],"yyyy") HAVING (((Sum([hdor]="غياب"))=0)); لكل يوم SELECT Enterans_Absent.ID, Format([date],"ddmmyyyy") AS Expr2, Sum([hdor]="غياب") AS Expr1 FROM Enterans_Absent GROUP BY Enterans_Absent.ID, Format([date],"ddmmyyyy") HAVING (((Sum([hdor]="غياب"))=0)); او اخرى لكل يوم SELECT Enterans_Absent.ID, Enterans_Absent.date, Sum([hdor]="غياب") AS Expr1 FROM Enterans_Absent GROUP BY Enterans_Absent.ID, Enterans_Absent.date HAVING (((Sum([hdor]="غياب"))=0)); خلال فتره فقط اكتب المعيار between ثم التاريخين وذلك في معيار حقل التاريخ اذهب لعرض التصميم في كل جمله لترى ان الامر بسيط ومجرد استخدام المجاميع مع استخدام الدالة format بالتوفيق
    2 points
  2. السلام عليكم هذه المعلومة حصلت عليها من موسوعة ويكيبيديا المساعد الرقمي الشخصي (بالإنجليزية: Personal digital assistant) أو أختصارا (PDA) هو حاسب صغير، يمكن أن يستخدم كهاتف محمول ومتصفح ويب ولعمل التقارير والجداول الإلكترونية، وهو في الغالب يعمل بتكنولوجياشاشة اللمس ونستخلص منها أن الجهاز يمكن أن يقوم بتخزين البيانات داخله (ولعمل التقارير والجداول الإلكترونية) وأكثر ارسالها عبر الويب والآن أخبرنا كيف يتصل جهاز (PDA) بالحاسوب وما هى البيانات التى يتم سحبها منه وما هى الفكرة العامة التى أردت تنفيذها من خلال اتصال الـ (PDA) بالأكسس (يعنى باختصار ما هى البيانات التى سيتم سحبها من الجهاز (PDA) وايداعها بالأكسس ) لعلنا نستطيع المساعدة باذن الله
    2 points
  3. هل سيكون لك استفسار لاحقا اختنا بان المطلوب سيكون لكذا شهر ؟ ام فقط البيانات ستكون شهريه ؟ جرب التالي وبافتراض ان البيانات لشهر واحد او حسب قترة التواريخ الموجوده الصق هذا في محرر الاستعلام ثم تصميم لترى الطريقة SELECT Enterans_Absent.ID, Sum([hdor]="غياب") AS Expr1 FROM Enterans_Absent GROUP BY Enterans_Absent.ID HAVING (((Sum([hdor]="غياب"))=0)); بالتوفيق
    2 points
  4. ما اعرف وما افهم منك جيدا هل تريد ارسال التقرير من قاعدة بيانات من الى اي مكان ممكن توضح لنا اكثر
    2 points
  5. حسب فهمي لطلبك اتفضل هذا انا استخدم هذه الاكواد لذلك عند الحالي بياخذ كل مربع نصي احد من بيانات السجل الحالي كما مبينة في الكود Private Sub Form_Current() Me.Text11 = Me.id Me.Text13 = Nz(DMax("[id3]", "table1"), 0) + 1 Me.Text16 = Me.id3 End Sub واضفنا زر للترقيم وعطيتناه هذا الكود Private Sub Command15_Click() Dim Re As Integer Dim sql As String Re = DCount("[id]", "table1") DoCmd.GoToRecord , , acFirst For i = 1 To Re - 1 Me.Text16 = Me.id3 If Me.Text16 = "" Or IsNull(Me.Text16) = True Then sql = "UPDATE Table1 SET Table1.id3 = [Forms]![f1]![Text13] WHERE (((Table1.id)=[Forms]![f1]![Text11]));" DoCmd.RunSQL (sql) End If DoCmd.GoToRecord , , acNext Next End Sub وفي حقل اي دي 3 في جملة الشرطية عطيتنا هذا الكود [id3] Mod 2=0 [id3] Mod 2=1 لكل شرط عطيتناه لون والنتيجة طلعت هكذا هل هذا هو كان طلبك وافيني بالنتيجة تحياتي تلوين السجلات.rar
    2 points
  6. اسف انا لا اعرف الكثير على الماكروات لكن اتفضل جرب ان تستخدم هذا الكود بدل تلك الاستعلامات ووافيني بالنتيجة Private Sub Form_Open(Cancel As Integer) Dim Sql As String Dim Sql1 As String Sql = "DELETE OrderTbl.Order, Now()-[OrderTbl]![date_workEnd] AS lastdate, OrderTbl.ekhteyr FROM OrderTbl WHERE (((Now()-[OrderTbl]![date_workEnd])>=30) AND ((OrderTbl.ekhteyr)=True));" Sql1 = "DELETE PtDataTBL.PtID FROM PtDataTBL WHERE (((PtDataTBL.PtID) Not In (SELECT OrderTbl.PtNo FROM OrderTbl;)));" DoCmd.RunSQL (Sql) DoCmd.RunSQL (Sql1) Me.Requery End Sub تحياتي
    2 points
  7. اتفضل شوف الصورة مع استخدام جملة الشرطية اتفضل مع ملفك بعد عمل عليها تلوين السجلات.rar تحياتي
    2 points
  8. محتويات الموضوع : 1: مقدمة 2: رابط تحميل البرنامج 3: مرفق مع البرنامج ملف به 1122 خط مجمعة فى ملف واحد وجاهزة للتثبيت المباشر ، مع صور مفصلة لشرح كيفية تثبيت الخطوط على الجهاز . مقدمة بسم الله الرحمن الرحيم الواحد الأحد الفرد الصمد الذى لم يلد ولم يولد ولم يكن له كفوا أحد فبعد عون الله وفضله أتممت هذا البرنامج بعد مجهود شاق لأضعه بين أيديكم سهلا ميسرا حتى ينتفع به الجميع ويستفاد منه المتعلمين ويقومه جميع أساتذتنا المهتمين ببرنامج الإكسل . إن برنامج الشؤون ليس البرنامج الأول فى الإدارة المدرسية وخدماتها بل هناك الكثير والكثير من البرامج الرائدة التى تخدم العملية التعليمية بل هو أحد هذه البرامج التى تهدف إلى الإرتقاء بالمستوى التعليمى المصرى . إن الهدف من هذا البرنامج هو الانتقال بالتعليم من التعليم التقليدى إلى التعليم المعاصر الذى يعتمد على التكنولوجيا الحديثة التى من مميزاتها السرعة والجودة والعدالة والدقة والتنظيم . قد تطور هذا البرنامج من برنامج الشؤون 1 حتى اخر إصدار وهو الشؤون 7 وكل إصدار به مميزات وإصلاحات وإضافات جديدة تختلف عما قبله من إصدارات فالخطأ وارد لأن الكمال لله وحده ونحن نحاول بعون الله أن نتفادى هذه الأخطاء ونصلحها بل ونضيف عليها فى الإصدارات الحديثة فكل إصدار متميز عما قبله بإضافاته ومميزاته . من مميزات هذا الإصدار أنه قد يكون شاملا جامعا لجميع الخدمات التعليمية إذ يحتوى على أربعة أقسام رئيسية وهى : 1.. شؤون الطلبة ،.. شؤون عاملين ،. شؤون كنترول و جودة ،. شؤون إدارية وكل قسم قد يكون به جميع متطلباته التى لا غنى عنها فى العملية التعليمية مثل : · التلاميذ الضعاف على مستوى المدرسة الى الاخراج · الضعاف فى القراءة والكتابة على مستوى المدرسة بناء على درجة تحريرى العربى · العشرة الأوائل وفقا للأعلى درجة فالاصغر سنا · المتفوقون العشرة فى كل مادة على حده الية الاخراج · الضعاف العشرة فى كل مادة على حده الى الاخراج · الاحصاءات الخاصة بالمدرسة والإدارة · كشف النسبة والترتيب العام وفى كل مادة على حدة · كشوف الناجحين والراسبين · كشف مراجعة درجات الراسبين للدور الثانى · كشوف اللجان وأرقام الجلوس · شهادات التلاميذ بأشكال مختلفة · سجلات الكنترول · الكشوف الخاصة بالجودة وهذه هى إضافة جديدة فى هذا الإصدار إذ تحتوى على الاتى : · كشوف الناجحين والراسبين بناء على درجة التحريرى · كشف النسبة والترتيب العام على المدرسة وعلى كل مادة على حده · العشرة الاوائل بناء على درجة التحريرى مجمعة لكل الصفوف · الضعاف على مستوى المدرسة بناء على مجموع التحريرى دون اعمال السنة · الضعاف فى القراءة والكتابة بناء على تحريرى العربى دون أعمال السنة الاحصاء الخاص بالمدرسة والمواد · قاعدة بيانات تفصيلية لجميع تلاميذ المدرسة · كشوف أعمال السنة لجميع فصول المدرسة · كشوف مستويات التلاميذ لجميع صفوف المرحلة · قوائم الفصول الالكترونية · بيان حالة الى الاخراج لكل التلاميذ · قاعدة بيانات لجميع العاملين بالمدرسة · بيان حالة لكل موظف الكترونى · خطاب تحوبل للتأمين · إحصاء عام وشامل لكل من التلاميذ والعمال · كشف الغياب اليومى · كشف الحالات ( الايتام / الموهوبين / ......... ) · ....................... الخ وفيما يلى وصف مبسط للبرنامج: اسم البرنامج الشؤون 7 حجم البرنامج 40 ميجا تقريبا نوع الملف xlsx مصمم البرنامج إبراهيم حسن النجار مدة فتح البرنامج 6 دقائق تقريبا مميزات البرنامج قد يكون شاملا جامعا لجميع الخدمات التعليمية عيوب ومشاكل البرنامج قد يكون ثقيلا جدا على الأجهزة ذات الإمكانات الضعيفة طرق حل المشكلة إما رفع إمكانات الجهاز وإما إعادة تصميم البرنامج من قبل المصمم وتقسيمه إلى أربعة برامج الاول خاص بشؤون الصفوف الاول والثانى والثالث والثانى خاص بشؤون الصفوف الرابع والخامس والسادس والثالث خاص بالشؤون الإدارية قد تطول مدة فتح البرنامج إما لضعف إمكانات الجهاز وإما لكثرة محتويات البرنامج يفضل إبقاء البرنامج مفتوحا من بداية اليوم الدراسى حتى نهايته وعدم إغلاقه وفتحه أكثر من مرة بسبب طول مدة فتحه وتحميله إما لثقله وإما لكثرة محتوياته كلمة سر فك الحماية لمن أراد أن يتعلم أو يستفاد هى 700215 162001كثانوية رجاء عدم استخدامها من قبل غير الخبراء ببرنامج الإكسل أو استخدامها فى تغيير نظام وبصمة البرنامج ملاحظة : البرنامج مرفق معه ملف به 1122 خط جاهزة للتثبيت المباشر مع صور لشرح كيفية التثبيت رابط تحميل البرنامج http://www.egynt.org/program.zip رابط تحميل الخطوط http://www.egynt.org/font.zip
    1 point
  9. برنامج حسابات و فواتير مشتريات و مبيعات و عملاء و موردين و مستودعات و حسابات ختامية فوق الوصف ينافس الاوريكل و السيكوال سيرفر العيب الوحيد لا يعمل على الانترنت رابط التحميل http://www.mohasebmoslem.com/prog/moslem.rar رابط فيديو التسطيب http://www.mohasebmoslem.com/other_prog/setup_moslem.rar
    1 point
  10. Version 1.0.0

    393 تنزيل

    كنترول شيت للصف الاول الثانوي جميل ورائع
    1 point
  11. السلام عليكم ورحمة الله تعالى وبركاته اساتذتي الكرام تحية طيبة وبعد ،، هل يمكن ترجمة الكود الموجود في هذه الصفحة الى الاكسس http://stackoverflow.com/questions/29750894/how-to-retrieve-wmi-data-such-as-uuid-from-a-c-sharp-program تحياتي
    1 point
  12. جرب وبفكره اعتقد سهله ... استخدمت استعلام ليغني عن الكود .. وطبعا يمكن ان تكون الفكره بكود وبداله تستدعى في النموذج بالتوفيق تلوين السجلات1.rar
    1 point
  13. هل ما وصلت لطلبك بمشاركتي السابقة ؟ ممكن تخبرني ماتريد
    1 point
  14. وعليكم السلام ورحمة الله وبركاته الوظيفة التالية تعيد قيمة (UUID) للمنتج Function UUID() On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems UUID = objItem.UUID Next End Function إذا كنت بحاجة إلى معرف كامل البيانات التي يعيها المجال (Win32_ComputerSystemProduct) استخدم الإجراء التالي Sub ComputerSystemProduct() On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems Debug.Print "Caption: " & objItem.Caption Debug.Print "Description: " & objItem.Description Debug.Print "IdentifyingNumber: " & objItem.IdentifyingNumber Debug.Print "Name: " & objItem.Name Debug.Print "SKUNumber: " & objItem.SKUNumber Debug.Print "UUID: " & objItem.UUID Debug.Print "Vendor: " & objItem.Vendor Debug.Print "Version: " & objItem.Version Next End Sub SCRIPTING.zip
    1 point
  15. ياسلام عليك استاد رمهان استاد / استاد حل في منتهي الخبرة والجمال جزاك الله خير الجزاء وجعله في ميزان حسناتك كل الاحترام والتقدير لهده الخبرة
    1 point
  16. السلام عليكم وعذرا على التاخير للانشغال قليلا الاستاذ شيفان مبدع باكواده الاخ ستيف كود الاستاذه زهره خاص بالتقرير وليس بالنموذج وسؤالك في الاصل يخص نموذج مستمر ذهبت للرابط وحملت المرفق ووجدتك تقول بانك حذفت الاوفيس واعدت تحميله وكنت متمنيا ان تسال في المشكله قبل اقدام على حل مثل هذا الفكره رائعة كروعة صاحبتها وهي تشابهت مع فكرتي في ان الشرط قيم بولين وتتغير في اماكن محدده ولحل المشكله في التقرير لديك وفي كود الاستاذه زهره اتوقع : عليك حذف خاصية اللون البديل لتفصيل التقرير = بدون لون no color . وان شاء الله يمشي معاك الان : اذا كان المطلوب بتقرير فهناك حل الاستاذه زهره يكفي ويمكن اختصاره اما اذا كان بنموذج مستمر : فلم تردني فكره ناضجه مختصره الى الان ولكن ان شاء الله قريب اتفرغ واركز واعود لك بحل مرضي مختصر وبعد اذن ااستاذ الخبير شيفان تحياتي
    1 point
  17. برجاء ارفاق ملف كمثال اخي الكريم تقبل خالص تحياتي
    1 point
  18. السلام عليكم فيديو لشرح إضافة وظيفة فىvba
    1 point
  19. ربما هذا الكود اسرع قليلاُ (للبيانات الكثيرة ) حيث يقوم يتحديد الصفوف المطلوبة ثم ينقلها دفعة واحدة الى المكان المقصود Sub Tarhil_Complete_Data1() Dim Ws1, Ws2 As Worksheet Dim Lr1, S, i As Integer Dim RG1, Temp_Range As Range Set Ws1 = Sheets("sheet1"): Set Ws2 = Sheets("sheet2") Lr1 = Application.Max(Ws1.Range("a:a")) + 1 Set RG1 = Ws1.Range("A1:F" & Lr1) For i = 2 To Lr1 S = Application.CountA(RG1.Cells(i, 1).Resize(1, 6)) If S = 6 Then If Temp_Range Is Nothing Then Set Temp_Range = RG1.Cells(i, 1).Resize(1, 6) Else Set Temp_Range = Union(Temp_Range, _ RG1.Cells(i, 1).Resize(1, 6)) End If End If Next If Temp_Range Is Nothing Then Exit Sub Temp_Range.Copy Ws2.Range("a2") Set Temp_Range = Nothing End Sub
    1 point
  20. جزاك الله خيرا وننتظر المزيد
    1 point
  21. عل الرغم ان انا عملت في مشاركتي السابقه‌ كما طلبت من مشاركت السابقة لكن الان غير المطلوب من جديد اتفضل هذه المرة بها تقرير واحد و نموذج واحد وعملت كلا من حالتين بالكود وبالاستعلام تحياتي اتفضل تلوين السجلات (1).rar
    1 point
  22. انا لم اواجه مشكلة في هذا الصدد من قبل لكن وحسب نقاش بعض الاخوة في المنتديات اقترحوا عمل ذلك .. نعم من خلال ال option يمكنك الوصول اليها تحياتي
    1 point
  23. السلام عليكم تفضل هذا التعديل أخي أبو الآء 037.rar
    1 point
  24. نعم هو كذلك استاذ وفي العادة يستخدم هذا الجهاز محمول في اليد لعمل طلبيات الشراء و استلام الطلبيات الشراء هذا هو الجهاز للاسف لا يعمل بالاكسس
    1 point
  25. وأنا كذلك أخ شفان وفقكم الله جميعا
    1 point
  26. على كل حال احنا نفتخر بك بأنك معنا تحياتي اخوك الصغير شفان ريكاني
    1 point
  27. :::وهو كذلك ...كنت فقط امازحك اخوي بران شفان..
    1 point
  28. استغفرالله ما هذا الاعتذار سامحني سامحك الله ما رديتك من شان شي فقط رديتك لنستفيد منه الجميع ... طبعا هذه النقاط بيعطينا المشاكل في الاكواد ومن الافضل ان نستبعد منه في محرر فيجوال لكن هذا طريقة SQL حسب فهمي له ما به مشكله‌ تحياتي لك انت اخونا الكبير وشكرا لك على المداخله‌ لان بمشاركتك كلنا راح نستفيد منه شي اخوك الصغير شفان ريكاني
    1 point
  29. اعتذر عن تدخلي السافر استاذنا الكبير شيفان ... هذا فقط ما تعلمناه منك اخي الكريم.
    1 point
  30. شكرا لك استاذنا نعم صحيح اذا بيحذفنا راح يشتغل بشكل عادي لكن اذا ما نحذفه هم بيشتغل بشكل عادي من شان مشاركتك انا جربت مرة اخرى بدون نحذفه هل بيشتغل ام لا وطلعت مافيه مشكلة مع تحياتي اخوك الصغير شفان ريكاني
    1 point
  31. اخي العزيز شيفان ... اعتقد علينا ازالة الفارزة المنقوطة اخر جملة SQL تحياتي لك ..
    1 point
  32. استأذن من استاذنا على التدخل للتوضيح استاذنا @محمدنجار استعمل هذا في احد الاستعلامين <>"غياب" And <>"مجاز" وهذا في استعلام اخر <>"غياب" وكما قلتي سابقا ان "وعندما اضع شرط في الاستعلام ( "غياب "<> ) لاتعطي النتيجة المطلوب ." السبب هو انك اضفت فراغ واحد للشرط "غياب "<> في اخر كلمة غياب اي يجب تكتبه بين "" الكلمة اللي تفسه في الجدول بدون اضافة اي شي اخر اي يجب ان تكتبه هكذا "غياب"<> مع تحياتي
    1 point
  33. افتح مصدر التقرير وهو استعلام اكتب شرط ان يكون ذاك الحقل بيكون يساوي مع كومبوبوكس اللي في النموذج جربه واذا ما اكدرت راح نساعدك اكثر تحياتي
    1 point
  34. بارك الله فيك على هذا الاداء لكن كما قلت في مشاركاتي السابقة اذا بترفق القاعدة اللي تعمل عليه العمليات اللي في الفيديو مع الفيديو راح نستفيد كل الاعضاء اكثر هذا حسب رأيي وشكرا لك مرة اخرى مع تحياتي اخوك صغير شفان ريكاني
    1 point
  35. السلام عليكم معذرة أخى صالح لتأخرى فى الرد و قد كان لى رد هنا وبعد كتابته تزامن ضغط زر الإرسال للمشاركة مع انقطاع المنتدى فذهبت المشاركة سدى قمت بتحميل ملفك و هو قريب جدا مما أردت لكن هناك خطأ يظهر مع أسماء المجلدات العربية و أرفع لحضراتكم ملفا يعمل بكفاءة بدون أخطاء و قد جربته على مجلد تحته مجلدات فرعية للمستوى السادس فكان الناتج حوالى 35 ألف ملف مع محتويات المجلدات الفرعية طبعا و شكرا لاهتمامك جزاك الله خيرا هاك الملف للجميع myfileslistsubFS.rar
    1 point
  36. اتفضل جرب هذ الكود DoCmd.SendObject acSendReport, "x", "PDFFormat(*.pdf)", shivan_rekany212@yahoo.com, "", "", "", "", True, "" غير ايميلي بايميلك جرب ووافيني بالنتيجة تحياتي
    1 point
  37. الان وقت النوم غدا راح اشوف لاني عندي دوام وغدا ساتابع ان شاء الله اکید عندک شی ماعندنا کل مرة عندك حل اضافي
    1 point
  38. الى هنا اقول وباعلى صوت حق لك ان تصبح خبير واكثر استاذ شيفان
    1 point
  39. اود عمل برنامج او ملف لمساعدتي و كذلك رؤساء الاقسام للتنبيه بقرب انتهاء صلاحية بطاقة الموظف قبل شهر بحيث يتم تثبيته في الجهاز و يكون يعمل مع بدء تشغيل الجهاز و كذلك يقوم طباعة قائمة اوتوماتيكيا بالبطاقات التي بقي شهر على انتهائها يوميا الساعه الثامنه صباحا و كذلك تنبيه على سطح المكتب اسم الموظف الرقم الدائم القسم تاريخ الاصدار تاريخ الانتهاء
    1 point
  40. ما هو اصدار قاعدة بيانات اللي تريد فتحه الرسالة بيقول لك لا تستطبع تفتح قاعدة بيانات تم انشاءه بواسطة اصدار قبل اصدار برامجك اي قبل اصدار اكسي تابعك هل هو من اصدار 97 ؟ تحياتي
    1 point
  41. تفضل ، هذه الوحدة النمطية الجديدة 1. نحسب طول المعلومة ، اذا كانت صفر ، فلا ندخل في بقية المعادلات ، 2. واذا لقينا Case 47 ، فنحذف كل ما كان قبله ""=Which_Letter ، ونبدأ البحث عن الارقام من جديد Function Seperate_Digits(T) 'T = Text From Query If Len(T & "") = 0 Then Seperate_Digits = "" Exit Function End If For i = 1 To Len(T) 'the ascii number of each number C = Asc(Mid(T, i, 1)) 'ascii numbers we want '46= . '47= / '48= 0 '49= 1 '50= 2 '51= 3 '52= 4 '53= 5 '54= 6 '55= 7 '56= 8 '57= 9 Select Case C Case 46, 48 To 57 Which_Letter = Which_Letter & Mid(T, i, 1) Case 47 Which_Letter = "" End Select Next i Seperate_Digits = Which_Letter End Function جعفر
    1 point
  42. بسم الله الرحمن الرحيم الحمد لله رب العالمين والصلاة والسلام علي سيدنا محمد النبي الامين وعلي من سار بهديه الي يوم الدين اما.....بعد اقدم لكم اليوم أعزائي أعضاء منتدى أوفيسنا كود بسيط تستطيع من خلاله تحويل الأرقام من أرقام إلى كتابه لكن ( إنجليزي ) . ويسمى in words طريقة إضافة الكود سهله جداً , بعد فتح ملف الإكسل اظغط على Alt+F11 في الكيبورد وبعدها Insert > module وأضف الكود , تابع الشرح في الصور . الكود + ملف إكسل جاهز في المرفقات in words code & xmls.rar
    1 point
  43. اسم البرنامج : Employs رقم الاصدار : 3.1.0 اسم المبرمج : almaistro وصف البرنامج : البرنامج عبارة عن قاعدة بيانات للموظفين يسجل فيها كل بيانات الموظف كما تشاهد بالصورة المرفقة ايضا تستطيع عمل نسخ احتياطى للبيانات (اختيارى) تستطيع ايضا وضع شاشة دخول للبرنامج (إجبارى) تستطيع حفظ واسترجاع قاعدة البيانات (اختيارى) تستطيع حفظ صورة لكل موظف مع تشفير الصورة ووضعها بملف خارجى تستطيع طباعة كشف المرتبات لكل فرع (جديد) تستطيع تسجيل الحضور والانصراف لكل موظف(جديد) تستطيع إستعراض حضور موظف خلال فترة مع حساب اجرة الاضافى(جديد) واشياء اخرى اكتشفها بنفسك ،،، كلمة المرور للبرنامج :arafa صورة للبرنامج انتظرو ادائما جديد البرنامج Employs v3.1.0.rar
    1 point
  44. الحلقة الرابعة عشر ***************** السلام عليكم ورحمة الله وبركاته وحشتكم !! أكيد لا .. لأني لو وحشتكم كنتو فتحتوا الباب وسألتوا عليا .. عموما إنتو وحشتوني ، وعشان وحشتوني هاقدم لكم حلقة جديدة يمكن تفتكروني. النهاردة هتكلم عن حاجة ناس كتير شرحوها ، وشرحوها بشكل ممتاز ، ودا خلاني مش عارف أشرح إزاي ، لأن اللي شرحوها وفوا شرحها صراحة .. هنتكلم عن الحلقات (بس مش حلقات افتح الباب) الحلقات اللي هنتكلم عنها الحلقات التكرارية ، ومن اسمها هي عبارة عن حلقات بتتكرر (إضافة عظيمة!) اسمها بالإنجليزي Loops ودي مهمة جداً في عالم الأكواد ، محدش يقدر يستغنى عنها تقريباً .. نفترض إني دخلت الفصل (بما إني معلم) ولسه دي أول مرة أتعرف على الطلبة اللي في الفصل ..يا ترى أنا عندي استعداد أخلى طالب طالب يقوم وأنا أقوله قول اسمك والطالب اللي بعديه قول اسمك .. أعتقد إن ريقي هينشف ودماغي هتصدع ودا طبعا مش يرضيكم (مش كدا ولا ايه) ..أنا من النوع الكسول فكل اللي هعمله هعمل تكرار من أول طالب في الفصل لآخر طالب ، وأعطي الأمر مرة واحدة .. من أول طالب إلى آخر طالب قووووول اسمك يا حبيبي الطالب التالي هو دا شكل الحلقة التكرارية .. نبرمجها بلغة الـ VBA ... هنقول إن الفصل فيه 60 طالب (معلش دا واقع الفصول في مصر) .. نقطة مهمة مننساش إن الطالب متغير مش ثابت ، فنرمز للطالب المتغير بالرمز X مثلاً ... Sub Loops() Dim X As Long For X = 1 To 60 'Say your name Next X End Sub طبعاً الكود دا شوية له علاقة بالبرمجة وشوية هتش .. ايه اللي هنعمله ..زي ما اتعودنا (دايما) إننا نعرف المتغير .. ونركز في السطر الثاني بدأ بكلمة For متبوعة باسم المتغير اللي هو X وبعدين علامة يساوي عشان نحدد قيمة X المتغيرة (أو الطالب المتغير) وهنا القيمة ليها بداية وليها نهاية (كل شيء له بداية ونهاية) وبيفصل بين البداية والنهاية حرف الجر To وفي آخر الحلقة التكرارية جملة Next X وممكن نقول Next ونسكت ، ومحرر الأكواد هيفهم لوحده .. بس أنا تقليدي شويتين فخلينا نكتب المتغير ، عشان الكود ممكن يكون فيه أكتر من حلقة تكرارية .. الجزء المهم هو الجزء اللي بين السطرين ، وهو دا الأمر المطلوب تكراره ، السطر اللي هنا مجرد تعليق وهتش وملوش علاقة بالبرمجة .. بس حبيت أقرب لكم الفكرة بأسلوب جديد.. كدا لما أنفذ الكود اللي فات ، كل اللي عملته إني أعطيت الأمر مرة واحدة وبس (وأنا حاطط رجل على رجل ... الدورة تلف على طالب طالب ، ويقول اسمه ، ولما يخلص ، الدورة تنتقل للطالب اللي بعديه وهكذا إلى أن ينتهي الطلاب ، ولما الـ 60 طالب يخلصوا ..يتم إيقاف تنفيذ الكود... ناخد أول مثال بجد عشان نقدر نتعلم إزاي نستفيد من الحلقات التكرارية :: لنفترض أننا عايزين نرقم النطاق A1:A10 بالأرقام من 1 إلى 10يعني الخلية A1 = 1 والخلية A2=2 وهكذا ..طبعا الموضوع بسيط جدا Sub NumberRange() Range("A1").Value = 1 Range("A2").Value = 2 Range("A3").Value = 3 Range("A4").Value = 4 Range("A5").Value = 5 Range("A6").Value = 6 Range("A7").Value = 7 Range("A8").Value = 8 Range("A9").Value = 9 Range("A10").Value = 10 End Sub كود في منتهى الروعة .. شايف حسام بيضحك ويقولي عايزك ترقم النطاق من A1:A100 (وابتسم ابتسامة فيها شماته !!) نفكر شوية .. بقول نفكر شوية (بلاش تكمل الحلقة غير لما تبص في الكود وتفكر شوية .. فكر شوية واكسب التوفير في الوقت والجهد) ايه المشترك في أسطر الكود .. وايه المختلف .. المتشابه في كل الأسطر Range("A ").Value = والمختلف هو الرقم بعد حرف الـ A ، والقيمة اللي بعد علامة يساوي .. في السطر الأول الرقم اللي بعد حرف الـ A هو 1 ، والقيمة بعد علامة يساوي بردو 1 ، ونفس الكلام مع السطر رقم 2 ، ورقم 3 وهكذا يبقا أول حاجة تفكر فيها إنك المختلف أو المتغير أو الشيء الغير ثابت تضعه في متغير ، ودا لأنه مش ثابت ومتغير .. فنضع متغير باسم X مثلاً ونعمل حلقة تكرارية من 1 إلى 10 (دي القيم اللي هيحملها المتغير) Sub NumberRange() Dim X As Long For X = 1 To 10 Range("A" & X).Value = X Next X End Sub نفس الكود اللي شرحناه من شوية ، الاختلاف في السطر اللي بين سطري التكرار .. الحلقة هتدور 10 مرات ، وفي كل مرة المتغير X بيحمل قيمة مختلفة (نرررررركز في الجزئية اللي جاية لأنها مهمة جداً جداً ) مش هنفذ الكود مرة واحدة .. سنقوم بعملية التنفيذ واحدة واحدة ، اللي مستعجل يروح ينفذ الكود مرة واحدة ، واللي مش مستعجل أنا معاه ..عشان يعرف حاجة مش هيعرفها الأخ المستعجل ... ضع مؤشر الماوس في أي مكان في الكود .. جميل >> اضغط F8 من لوحة المفاتيح ، وجمد قلبك وقول يا رب .. لاحظت ايه يا عبد المحسن؟ عبد المحسن ناااااااام مني (الله يسامحك) ..عبد المحسن : شايف الدنيا صفرا ليه ، هو فيه عاصفة النهاردة كمان؟ .. رديت عليه : لا يا عبد المحسن كمل نومك ، السطر الأصفر اللي ظهر ده سببه إننا ضغطنا F8 .. ودا فايدته إننا هنقوم بعملية التنفيذ واحدة واحدة .. سطر سطر .. السطر الأصفر على أول سطر في الكود Sub NumberRange() اضغط F8 مرة تانية ، ايه اللي حصل انتقل السطر الأصفر للسطر التالت ، طيب والسطر التاني يا معلم .. ملوش لازمة !!! أكبر خطأ إنك تعتقد إنه ملوش لازمة ، لما ضغطنا F8 للمرة التانية ، محرر الأكواد خزن في الذاكرة كل المتغيرات الموجودة في الكود عايز تتأكد من كلامي ، حرك مؤشر الماوس اللي على شكل حرف I (فيه شرطة فوق وشرطة تحت) حرك الماوس من غير ما تدوس كليك .. واقف على المتغير X هتلاقي تلميح في مستطيل صغير بيقولك المتغير X=0 ، دي كدا القيمة المبدئية للمتغير ... لما تضغط F8 للمرة التالتة ، روح شوف قيمة X مرة تانية هتلاقي قيمة X=1 (ايه اللي خلاها 1 مش كانت صفر من لحظة ) اللي حصل إننا انتقلنا من السطر For X = 1 To 10 والسطر دا هيبدأ في عمل الحلقة التكرارية اللي بنقول عليها ، والحلقة بدايتها 1 زي ما حددنا (وطبعاً ممكن نغير نقطة البداية يا شباب .. مش شرط 1) حرك مؤشر الماوس من غير ما تدوس على المتغير X في السطر المظلل بالأصفر Range("A" & X).Value = X هنلاقي زي ما قلت إن X =1 يعني محرر الأكواد هيعمل ايه دلوقتي ، هيشيل كل X ويحط مكانه القيمة 1 ، فيصبح السطر في الذاكرة بهذا الشكل Range("A1").Value = 1 لحد كدا تمام التمام ، صغر محرر الأكواد بحيث تكون ورقة العمل ظاهرة بالنسبة لك واتأكد إن النطاق A1:A10 فارغ ليس به أي بيانات ، وركز في ورقة العمل ، واضغط F8 عشان تنقل السطر الأصفر إلى هذا السطر ، ولاحظ ورقة العمل Next X لاحظت يا منصور الخلية A1 وضعت فيها القيمة 1 ، نخلي بالنا إن السطر الأصفر بيتم تنفيذه بعد الخروج منه ، فلما خرجنا من السطر تم تنفيذ الأمر وأعطى القيمة 1 للخلية A1 .. اضغط F8 مرة أخرى ، ونلاحظ إن السطر الأصفر انتقل للسطر اللي قبليه ، مش لبداية الحلقة التكرارية ، يعني ببساطة السطر اللي بيحدد بداية الحلقة ونهايتها بيعدي عليه مرة واحدة فقط .. أما سطر الأمر والسطر اللي فيه كلمة Next بيبدل السطر الأصفر عليهم... نبص دلوقتي على قيمة المتغير X هنلاقيها بقت 2 فيتم تنفيذ السطر بمجرد الضغط على F8 ويضع القيمة 2 في الخلية A2 وهكذا ..جرب واضغط F8 وفي كل مرة شوف قيمة المتغير X وشوف النطاق A1:A10 في كل مرة أول ما توصل قيمة المتغير X إلى الرقم 10 تتوقف الحلقة التكرارية ، وينتقل السطر الأصفر لجملة End Sub .. وينتهي عمل الكود .. عارف إني طولت في النقطة اللي فاتت ، بس كان لازم أطول فيها ، عشان أنا فاضي ومفيش ورايا شغل ، فقلت أصدعكم شوية!! ننتقل لمثال آخر --------------- عشان نقدر نفهم إزاي نستفيد من الحلقات التكرارية .. عايزين نعد الاسم (أحمد) في النطاق A1:A10 نفترض إني عندي الأسماء دي في النطاق A1:A10 أحمد ياسر سليم حسام عيسى أحمد أحمد خليل عبد الله أحمد المطلوب : نشوف الاسم (أحمد) كم مرة تم تكراره .. المعطيات : استعن بالله ثم بالحلقة التكرارية .. الفكرة : هنعمل اختبار صغير بقاعدة IF وهنقول لو قيمة الخلية بتساوي "أحمد" .. زود المتغير Counter بقيمة واحد Sub CountName() Dim X As Long Dim Counter As Long For X = 1 To 10 If Range("A" & X).Value = "أحمد" Then Counter = Counter + 1 Next X MsgBox Counter End Sub عملنا متغير جديد باسم Counter عشان لما يتحقق الشرط ويلاقي الاسم "أحمد" يقوم يخلي المتغير Counter يساوي نفسه + 1 طيب ليه يساوي نفسه ، عشان في كل مرة يلاقي أحمد قيمته هتتغير فلازم نضيف واحد لكل Counter جديد النتيجة في الآخر هتظهر في رسالة ، وهي 4 .. طيب نجرب نشيل الواحد في هذا السطر Counter = Counter + 1 لو شيلنا الواحد هتكون النتيجة 0 ، لأن المتغير قيمته المبدئية صفر ، فلما يتحقق الشرط مش هيزيد المتغير إلا لما نضيف واحد في كل مرة يتحقق الشرط. هناخد مثال آخر ---------------- عندنا درجات في النطاق A6:A15 ، عايزين نكتب ناجح أوراسب في الخلية المجاورة للدرجة ، لو الدرجة أكبر من أو يساوي 50 يبقا ناجح ، مكانش يكون راسب ... نخلي بالنا أنا غيرت بداية النطاق عشان الحلقة التكرارية بردو هتتغير بدايتها ونهايتها طبقاً للصفوف الجديدة 58 41 88 40 50 40 98 94 60 35 نجرب الكود التالي .. Sub LoopsTest() Dim X As Long For X = 6 To 15 If Cells(X, 1).Value >= 50 Then Cells(X, 2).Value = "ناجح" Else Cells(X, 2).Value = "راسب" End If Next X End Sub نلاحظ الحلقة التكرارية بدأت من 6 إلى 15 (ودا متغير للصفوف من الصف رقم 6 إلى الصف رقم 15) ووضعنا الشرط بين سطري الحلقة التكرارية ، لو الخلية اللي في الصف X والعمود الأول أكبر من أو يساوي 50 يقوم يعمل ايه؟ يضع القيمة النصية "ناجح" في الخلية اللي في العمود الثاني والصف X (نفس الصف بالطبع لأن قيمة X في الحالة دي هي هي نفس القيمة لأننا في نفس اللفة) .. إذا لم يتحقق الشرط قام بتنفيذ الجزء الثاني بأن يكتب النص "راسب" ثم إغلاق جملة IF بالجملة End IF ومننساش القفلة زي ما اتعودنا.. ننتقل لآخر مثال في الحلقة دي (عشان أنا تعبت وإنتو كمان أكيد تعبتو) في الأمثلة اللي فاتت عملنا حلقات تكرارية للصفوف .. واحد بيقولي طيب والأعمدة ملهاش نصيب في الدوخة اللي إحنا فيها دي .. أقوله أكيد ليها نصيب .. المطلوب إننا في الصف الرابع ، نكتب معادلة =COLUMN() بس في الأعمدة من العمود رقم 1 إلى العمود رقم 15 (A To O) نعقدها شوية ونقول في الأعمدة اللي رقمها فردي بس (الأعمدة اللي رقمها زوجي مش محتاجينها) يعني ببساطة عايزين نحط المعادلة في الأعمدة A C E G I K M O Sub ColumnsLoop() Dim X As Long For X = 1 To 15 Step 2 Cells(4, X).Formula = "=COLUMN()" Next X End Sub الحلقة التكرارية بدأت من العمود الأول حتى العمود رقم 15 (البداية والنهاية) معلومة جديدة Step 2 (دي معناها إننا هنقفز ..والقفز هيكون بمقدار 2 أي خطوتين) بدأنا بـ 1 فلما نقفز بمقدار 2 ، هنروح لرقم 3 ، أي أن المتغير سيكون رقم فردي في كل مرة 1 ، 3 ، 5 ، 7 ، 9 ، 11 ، 13 ، 15 (وهو دا المطلوب بالضبط) سطر الأمر فيه الخاصية Formula ودي عشان نقدر نضع معادلة من خلالها .. والمعادلة ببساطة زي ما شفناها من شوية بس بتكون بين أقواس تنصيص .. طيب الجزء الأول من السطر نلاحظ إننا استخدمنا Cells ودي بتكون متبوعة بقوسين ، وبين القوسين رقم الصف ثم فاصلة ثم رقم العمود ، وبما إن رقم الصف ثابت اللي هو رقم 4 ، فكتبناه زي ما هو .. اما رقم العمود فمتغير فوضعنا رقم العمود X ... جرب الكود وشوف النتيجة بنفسك أرجو أن أكون قد وفقت في توصيل المعلومة بأسلوب مبسط كان معكم أخوكم أبو البراء من تراك أوفيسنا (لف على الحلقات من الحلقة رقم 1 إلى الحلقة رقم 14 .. لو عايز تتعلم الـ VBA) ويا رب ميكونش فيه حد جاله دووووووووخة من كتر اللف .. والله أنا اللي دوخت أستودعكم الله .. دمتم في رعاية الله تقبلوا تحياتي .. دمتم بود
    1 point
  45. يلا شباب بدي ردود سأضع بين أيديكم أكثر من 3000 برنامج بس بدي تشجيعكم BackUpWithCompact2k.zip
    1 point
  46. وهاي كمان برامج ولسى الخير قادم أنا شايف إنو لغاية الآن ما في لسى حد دخل على المنتدى و هيك راح تكون مفاجئة كبيرة للكل WriteNumber2000.zip ProgressBar2000.zip ColorRecords2000.zip Keyboard2000.zip FindAndFilter2000.zip HideMsgBoxFail2000.zip Animation2k.zip
    1 point
×
×
  • اضف...

Important Information