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

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

  1. kkhalifa1960

    kkhalifa1960

    الخبراء


    • نقاط

      5

    • Posts

      1,530


  2. lionheart

    lionheart

    الخبراء


    • نقاط

      4

    • Posts

      654


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      3

    • Posts

      11,721


  4. احمد عبدالحليم

    احمد عبدالحليم

    03 عضو مميز


    • نقاط

      3

    • Posts

      167


Popular Content

Showing content with the highest reputation on 11 مار, 2024 in all areas

  1. Stop prompt to save a file when printing - Windows This typically occurs when the Print to file option is checked in the print dialog box prior to printing from an application. To adjust this setting: 1. Click File → Print. The steps for printing may vary depending on the application you're using. 2. Uncheck Print to file. 3. Click Print or OK, depending on your application. Your document should now print properly.
    3 points
  2. Here's a version that merges cells although I see not practical and not useful later Sub Test() Dim ws As Worksheet, sh As Worksheet, lr As Long, r As Long, m As Long, n As Long, i As Long, c As Long Set ws = ThisWorkbook.Worksheets("1") Set sh = ThisWorkbook.Worksheets("2") lr = ws.Cells(Rows.Count, 1).End(xlUp).Row If lr < 6 Then Exit Sub m = 5: n = m Application.ScreenUpdating = False Application.DisplayAlerts = False With sh.Rows("5:" & Rows.Count) .ClearContents: .Borders.Value = 0: .UnMerge: .RowHeight = 20.25 End With For r = 6 To lr If ws.Cells(r, 4).Value > 0 Then For i = 1 To ws.Cells(r, 4).Value sh.Cells(m, 1).Value = ws.Cells(r, 2).Value sh.Cells(m, 2).Value = ws.Cells(r, 3).Value sh.Cells(m, 3).Value = ws.Cells(r, 4).Value sh.Cells(m, 4).Value = ws.Range("D3").Value & ws.Cells(r, 1).Value & ws.Cells(r, 2).Value & i m = m + 1 Next i For c = 1 To 3 With sh.Range(sh.Cells(n, c), sh.Cells(m - 1, c)) .Merge: .HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter End With Next c If lr = r Then Exit For sh.Cells(m, 1).Resize(, 4).Interior.Color = vbMagenta m = m + 1 n = m End If Next r sh.Range("A5:F" & m - 1).Borders.Value = 1 Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
    2 points
  3. وعليكم السلام ورحمه الله وبركاته تفضل اخى حل سريع ........ تم اضافة عمود مساعد فى شيت الاصناف للحصول على اخر تاريخ لشراء الصنف ومنه نحصل على اخر سعر شراء للصنف بناءا على اخر تاريخ شراء للصنف المعادلة هى صيغة مصفوفة هتلاقيها بين قوسين {} ولعمل ذلك اذا اردت التعديل على المعادلة تضغط من الكيبورد على Ctrl + Shift + Enter معا ايضا يتم الحصول على احر تاريخ واخر سعر بناءا على كود الصنف وليس اسم الصنف تقبل تحياتى لاخر سعر.xlsx
    2 points
  4. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) لكثرة الطلبات على برنامج إدارة الحضور والإنصراف للموظفين ، وددت مشاركتكم النسخة الأولى الغير مفتوحة المصدر حالياً ، لحين الإنتهاء من التعديلات التي ستتم على البرنامج . دون الإطالة في المقدمة ؛ سأشرح لكم بعض ميزات البرنامج :- أولاً سيتم إضافة الإعدادات الضرورية للبرنامج وهي :- تصنيف الموظفين ( ولكل تصنيف سيتم تحديد عدد أيام الإجازات السنوية له ) . تصنيف الإجازات ( طارئة ، مرضية ، ..... إلخ ) . تحديد وقت بداية ونهاية ساعات العمل الرسمي ، و تحديد مدة السماح للتأخير ( المرونة في العمل ) ، تحديد عدد مرات التأخير ليتم احتساب يوم إجازة في اليوم الأخير من المدة . ثانياً ومن الطبيعي وجود موظفين في قاعدة البيانات ، سيكون قسم لإدخال بيانات الموظفين بشكل بسيط من المعلومات ( ولكم حرية التوسع حسب رغبتكم وحاجتكم كمستخدمين ) ، وطبعاً لكل موظف رقم وظيفي خاص به اعتمد على سلسلة مكونة من التاريخ والوقت الحالي بدون مسافات بهذا التنسيق YYYYMMDDhhmmss ، بحيث لا يكون هناك تكرار نهائي لأي رقم موظف . ثالثاً لوحة تسجيل الحضور والإنصراف عن طريق الرقم الوظيفي ، وتدعم القراءة من الباركود الموجود على باجة الموظف ( طبعاً لاحقاً سيتم إضافة طباعة باجة أو بطاقة للموظف ) ، وفي هذه اللوحة لن تحتاج تحديد الحالة ( حضور أو إنصراف ) فقط أدخل رقم الموظف وسيتم احتساب وقت الحضور وتسجيل مدة التأخير بالدقيقة في الجدول ، وكذلك الأمر للإنصراف . رابعاً لوحة تسجيل الإجازات ، وطبعاً بناءً على المعطيات التي تم إدخالها في نماذج البيانات الأساسية في الإعدادات - سيكون الأمر بسيطاً جداً وتم اعتماد رقم الموظف في المرحلة الأولى من البرنامج وسيتم اعتماد اسم الموظف أيضاً لجلب البيانات لاحقاً . بخطوات بسيطة بعد ادخال رقم الموظف نحدد تاريخ بداية الإجازة ، ثم عدد الأيام المطلوبة كإجازة ، ثم سيتم تلقائياً احتساب يوم نهاية الإجازة ، وطبعاً نوع الإجازة المطلوبة ستقوم باختياره من قائمة نوع الإجازة . خامساً لوحة التقارير ، بحيث سيكون لدينا في المشروع تقرير واحد فقط لكنه سيخدم جميع الطرق التي تريدها كمستخدم ( تقرير للموظفين جميعاً مع وبدون تحديد فترة ، تقرير لموظف واحد مع وبدون تحديد فترة ) . *وطبعاً ما زالت قيد التطوير بشكل خاص ملاحظة:- تم حفظ البرنامج بصيغة Accde كونه قيد التطوير والتعديل حالياً اقترب عيد المسلمين مودعين به شهرهم الفضيل أعاده الله علينا وعليكم باليمن والبركات . وتقبل الله منا ومنكم الطاعات وصالح الأعمال . وسأختم به آخر تعديل على هذا المشروع البسيط ؛ متمنياً أن يكون على قدر الجهد المبذول فيه . وأعتذر بداية عن التأخير في انهاء العمل عليه ، ولكن لضيق الوقت ليس إلا . اليوم انهيت تأسيس الأساسيات في برنامج إدارة الحضور والإنصراف الذي يعمل بنظام بصمة الـ QR . وسأذكر بالتفصيل البسيط ما تم إضافته . الإضافات في النماذج :- ربط قارىء QR يعمل عن طريق الـ USB أو عن طريق الجوال بالنظام . دعم كامل لللغة العربية في قراءة رمز الإستجابة السريعة QR . اعتماد اسم الموظف بالإضافة الى رمز الـ QR . نظام التنبيه لضبط الإعدادات الرئيسية في البرنامج عند تشغيله أول مرة . إحصاء لعدد الموظفين ، الحضور ( على رأس عملهم ) ، المجازين ، المغادرات خلال اليوم . ترحيل بيانات الإجازات والمغادرات والحضور بشكل شهري ( بداية كل شهر ) . الإضافات في الأكواد :- تمت مراجعة جميع الأكواد من أي خطأ محتمل في التنظيم أو آلية العمل . تم إضافة فكرة تثبيت برنامج الربط Barcode2Win من خلال الأكواد ، وفي حال عدم وجوده يتم تحميله من الموقع الرسمي ( يتطلب انترنت ) . تم دمج العديد من الإستعلامات في الأكواد لتقليل مكونات وعناصر النظام وتخفيف العبئ عليه . تم تقسيم العديد من الوظائف لسهولة التعامل معها وصيانتها . تم إضافة نموذج لإعادة تهيئة النظام وتفريغ محتوياته ( الجداول ) ، طبعاً باسوورد تأكيد العملية مدمج في أكواد النموذج . العديد من المميزات التي ستجدونها في المشروع
    1 point
  5. السلام عليكم ورحمة الله وبركاته مرقق مثال مصغر على كيفية اعادة ربط الجداول (منقول من المنتدى من احد الاخوان لا اتذكر اسمه ـ جزاه الله خير) فى قاعدة بيانات مقسمة نموذج form يعمل على اعادة الربط والكود مصبوط حتى لو نقل ملف الجداول الى مكان اخر المطلوب : فى حالة انه ملف الجداول نقل الى مكان اخر وقمت باعادة ربط الجداول فانه لا يظهر ولا يفتح مرة اخرى نموذج form ويغلق طالما الربط مصبوط اما فى حالة الربط خطأ (اي ان ملف الجداول فى مكان اخر ) يفتح نموذج form لاعادة الربط ارجو ان يكون المطلوب واضحا وان كان هناك شئ غير مفهوم سوف اقوم بتوضيحة جزاكم الله خيرا test.rar
    1 point
  6. السلام عليكم ورحمة الله وبركاته في احد البرامج التي اشتغلت عليها ، كان المطلوب احد الاشياء التالية مثلا: مدة الخدمة ، من تاريخ التوظيف الى اليوم ، إضافة خدمة (سنوات/اشهر/ايام) الى تاريخ التوظيف ، خصم مدة (سنوات/اشهر/ايام) من تاريخ التوظيف ، فبدل الحساب اليدوي ، عملت نموذج لآلة حاسبة ، للتواريخ النموذج frm_Date_Diff : حساب الفرق بين تاريخين: 1. ادخل التاريخ الاكبر في الحقل 1 ، وعند تغيير التاريخ سنرى الفرق بين التاريخين في الحقول سنة/شهر/يوم ، 2. ادخل التاريخ الاصغر في الحقل 2 ، وعند تغيير التاريخ سنرى الفرق بين التاريخين في الحقول سنة/شهر/يوم ، وعند النقر المزدوج على 1 او 2 ، فان القيم سيتم حفظها في الحقول 11 و 22 مؤقتا ، بحيث تستطيع ان تقوم بعمليات اخرى وتغيير التواريخ ، بينما تحتفظ بأصل التواريخ في 11 و 22 ، إضافة / طرح (سنوات / اشهر / ايام) من تاريخ: 1. احذف التاريخ من الحقل 2 ، 2. ادخل سنة/شهر/يوم الى الخانات 3 و4 و5 ، 3. حسب الحاجة ، اختر 6 لإضافة السنة/شهر/يوم الى التاريخ الاول ، وسترى النتيجة في الحقل 2 ، 4. حسب الحاجة ، اختر 7 لطرح السنة/شهر/يوم من التاريخ الاول ، وسترى النتيجة في الحقل 2 ، وعند النقر المزدوج على 3 او 4 او 5 ، فان القيم سيتم حفظها في الحقول 543 مؤقتا ، بحيث تستطيع ان تقوم بعمليات اخرى وتغيير السنوات/الاشهر/الايام ، بينما تحتفظ بالاصل في 3 و4 و5 وهنا مثال متحرك: جعفر 301.Dates_Calculations.mdb.zip
    1 point
  7. زادك الله من علمه ونفعك به أستاذنا ومعلمنا @ابوخليل ، وأشكر مرورك الجميل . وكتوضيح لقراء الموضوع :- على سبيل المثال ان المسؤول قام بتحديد بداية الدوام الساعة 08:00 AM ونهاية العمل الساعة 04:00 PM ، وقام بتحديد مدة 10 دقائق ليتم بعدها احتساب التأخير ، وأيضاً قام بتحديد عدد 2 تأخير ليتم بعدها احتساب الثالث كيوم إجازة . وجاء الموظف الأول وسجل حضور 08:09 AM فلن يتم احتسابه كيوم تأخير حتى لو تكرر . ولو تم تسجيل الحضور الساعة 08:15 AM فسيتم احتسابه تأخيراً مع ظهور كم مرة تأخر هذا الموظف خلال الشهر . وفي حال تكرار التأخير مرتين والثالثة سيتم احتساب له يوم إجازة عند تسجيله الإنصراف . وطبعاً لن يتم تسجيل الحضور والإنصراف للموظف أكثر من مرة في اليوم الواحد . وسيتم توسيع الفكرة لتشمل المغادرة والعودة خلال نفس اليوم ( وقت الدوام ) .
    1 point
  8. واجهات جميلة متقنة ايضا تقنيا .. كما هو شرحك والواجهات المصاحبة .. اختصار احترافي لخطوات كثيرة زادك الله علما ونفع بك
    1 point
  9. بارك الله فيك و جزاك الله كل خير استاذنا الكبير @lionheart شكرا لك الكود يعمل بما هو مطلوب
    1 point
  10. Here's a modification to let empty row between results but I won't merge cells Sub Test() Dim ws As Worksheet, sh As Worksheet, lr As Long, r As Long, m As Long, i As Long Set ws = ThisWorkbook.Worksheets("1") Set sh = ThisWorkbook.Worksheets("2") lr = ws.Cells(Rows.Count, 1).End(xlUp).Row If lr < 6 Then Exit Sub m = 5 Application.ScreenUpdating = False For r = 6 To lr If ws.Cells(r, 4).Value > 0 Then For i = 1 To ws.Cells(r, 4).Value sh.Cells(m, 1).Value = ws.Cells(r, 2).Value sh.Cells(m, 2).Value = ws.Cells(r, 3).Value sh.Cells(m, 3).Value = ws.Cells(r, 4).Value sh.Cells(m, 4).Value = ws.Range("D3").Value & ws.Cells(r, 1).Value & ws.Cells(r, 2).Value & i m = m + 1 Next i If lr = r Then Exit For sh.Cells(m, 1).Resize(, 4).Interior.Color = vbMagenta m = m + 1 End If Next r Application.ScreenUpdating = True End Sub
    1 point
  11. ابشر .. الامر يسير عندي بعض الاستفسارات اولا يجب ان تعتبر نفسك تقوم بعمل برنامج جديد ، لا صلة له ببياناتك القديمة .. فأنت تؤسس برنامج يعمل عليه من البداية ، وليس لجلب بيانات اليه . .............................................. 1- لماذا لا نكتفي بادخال التاريخ فقط .. لأنه يمكننا استخراج السنة المالية من التاريخ في اي وقت وعند كل تصفية بدلا من طريقتك واذا مصر تدخل السنة المالية فيمكن استخلاصها من التاريخ ورصدها ( على اعتبار انك تدخل بيانات جديدة اول باول ) ولست تنقل بيانات قديمة وترصدها ............................. الارصدة ليس مكانها الجدول ولكن في الاستعلامات ( التقارير والنماذج ) لانك تدخل الاموال يا دائن او مدين فقط ................................................................. لم تذكر نوع الحساب ومتى يتم ادخاله
    1 point
  12. Delete the rows in sheet2 from row 5 to row 25 then try this code Sub Test() Dim ws As Worksheet, sh As Worksheet, lr As Long, r As Long, m As Long, i As Long Set ws = ThisWorkbook.Worksheets("1") Set sh = ThisWorkbook.Worksheets("2") lr = ws.Cells(Rows.Count, 1).End(xlUp).Row If lr < 6 Then Exit Sub m = 5 Application.ScreenUpdating = False For r = 6 To lr If ws.Cells(r, 4).Value > 0 Then For i = 1 To ws.Cells(r, 4).Value sh.Cells(m, 1).Value = ws.Cells(r, 2).Value sh.Cells(m, 2).Value = ws.Cells(r, 3).Value sh.Cells(m, 3).Value = ws.Cells(r, 4).Value sh.Cells(m, 4).Value = ws.Range("D3").Value & ws.Cells(r, 1).Value & ws.Cells(r, 2).Value & i m = m + 1 Next i End If Next r Application.ScreenUpdating = True End Sub I didn't merge the cells as it is not practical
    1 point
  13. تفضل .. وتجنب اخي تسمية الحقول بكلمات محجوزة مثل name Public Function spltTxt(txtNm As String) On Error Resume Next Dim x, i As Integer Dim t1, t2, t3 As String x = Len([txtNm]) - Len(Replace([txtNm], " ", "")) For i = 0 To x If i = 0 Then t1 = Split(txtNm, " ")(0) If i = 1 Then t2 = Split(txtNm, " ")(1) If i = 2 Then t3 = Split(txtNm, " ")(2) If i = x Then t4 = Split(txtNm, " ")(x) Next spltTxt = t1 & " " & t2 & " " & t3 & " " & t4 End Function Database18.rar
    1 point
  14. تفضل اخى جرب الملف قكت بتعديل كود MajStkProv وكود xx() لتاكيد الحصول على الرصيد الصحيح وتم اضافة هذا الكود الى كود التحويل او الحفظ Dim rng As Range Dim cll As Range Dim cll2 As Range Dim lastRow As Long lastRow = ThisWorkbook.Sheets("Stock").Cells(Rows.Count, "A").End(xlUp).Row Set rng = ThisWorkbook.Sheets("Stock").Range("A4:A" & lastRow) For Each cll In rng If cll.Value = Me.CB_Pièce.Text And cll.Offset(0, 11).Value = Me.ComboBox1.Value Then cll.Offset(0, 3).Value = Val(Me.stocktr.Value) - Val(Me.Quantitetr.Value) Exit For End If Next cll For Each cll2 In rng If cll2.Value = Me.CB_Pièce.Text And cll2.Offset(0, 11).Value = Me.ComboBox2.Value Then cll2.Offset(0, 3).Value = Val(Me.TextBox_Stock_Initial.Value) + Val(Me.Quantitetr.Value) Exit For End If Next cll2 تقبل تحياتى نقل المخزون بين المخازن.xlsm
    1 point
  15. تفضل استاذ @Abdelaziz Osman Me.AA = Me.BB & "/" & Format(Date, "yyyy") ' AA=حقل الناتج 'BB=حقل الإدخال(5G)
    1 point
  16. أكسس يحول للاكسل جداول استعلامات تقارير واذا احتوت على صور فالصور لا تظهر في الاكسل .
    1 point
  17. لا إله إلا الله محمد رسول الله
    1 point
  18. 1. هذا الكود لا يتعلق بحقل او جدول ، وانما بالعمليات الحسابية في هذه الوحدة Sub ، لذلك كل وحدة Sub يجب ان يكون عندها اسم آخر لإصطياد رسائل الخطأ ، يعني ما تقدر تستخدم err_cmd_click لجميع Subs اللي عندك ، 2. انت كمبرمج يجب ان تبرمج على الحقل الصحيح ، مثلا (وهذا المثال لا علاقة له برسالة الخطأ ، وانما له علاقة بسؤالك) : عندك حقلين: Date_From و Date_To وتريد ان تستخدمهم لتقرير ، ومن المعروف بانه اذا احد الحقلين فاضي فقد تحصل على رسالة خطأ من الاستعلام (وطبعا ستحصل على نتيجة خطأ من الاستعلام) ، لذلك ، يجب عليك التأكد ان هذه الحقول غير فارغة ، لذلك وعلى حدث النقر على زر فتح/معاينة التقرير ، اكتب هذا الكود: if len(me.Date_From & "")=0 then msgbox "رجاء ادخال قيمة في حقل: تاريخ_من" me.Date_From.setfocus exit sub elseif len(me.Date_To & "")=0 then msgbox "رجاء ادخال قيمة في حقل: تاريخ_الى" me.Date_To.setfocus exit sub endif جعفر
    1 point
×
×
  • اضف...

Important Information