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

احمد عبد الناصر

الخبراء
  • Posts

    662
  • تاريخ الانضمام

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

  • Days Won

    5

كل منشورات العضو احمد عبد الناصر

  1. السلام عليكم جرب ''''''''''''' copy للبيانات past special -- transpose فرز ثم copy للبيانات past special -- transpose '''''''''''''' لترجع كما كانت تحياتي
  2. حياك الله استاذ محمد طاهر الان الاشعارات تعمل بطريقة صحيحة جزاك الله خيرا
  3. السلام عليكم جرب هذا باستخدام iferror لتحويل الخطأ الي صفر . تحياتي Book1 +.rar
  4. استاذ حمادة عمر استاذ nicola حياكم الله علي هذه الكلمات الطيبة .
  5. السلام عليكم جرب هذا تحياتي عدد تكرار القيم في الست +.rar
  6. السلام عليكم استاذ صباح جرب المرفق تحياتي +اجازات_2.rar
  7. السلام عليكم استاذ صباح هذا شرح مبسط لاجزاء للكود عامتا Sub dahmour_go() Application.ScreenUpdating = False 'هذه الفقرة لمحو البيانات القديمة ان وجدت و تعديل عدد ايام الشهر x = Cells(Rows.Count, 1).End(xlUp).Row If x > 5 Then Range("a6:ag" & x).ClearContents Range("ad5:ag5").ClearContents m = Day(DateSerial([b2], [b3] + 1, 0)) For x = 28 To m Cells(5, x + 2) = x Next 'هذه الفقرة للاستعلام من الاكسيس و استخراج كود الموظف و اسمه بدون تكرار بشرط ان اجازاته تقع في الشهر المراد الاستعلام عنه Dim rsData As ADODB.Recordset Dim sConnect As String Dim sSQL As String sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ActiveWorkbook.Path & "\" & [b1] & ".mdb;Persist Security Info=True " sSQL = "select distinct x.emb_id,emb_name from ejazat as x,nformation as y where x.emb_id=y.emb_id and month(from_day)=" & [b3] & " and year(from_day)=" & [b2] & " or (x.emb_id=y.emb_id and month(from_day)<" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)=" & [b2] & " ) or (x.emb_id=y.emb_id and month(from_day)>" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)<" & [b2] & " and year(from_day+moda_ejaza)=" & [b2] & " ) order by x.emb_id" Set rsData = New ADODB.Recordset rsData.Open sSQL, sConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText If Not rsData.EOF Then [a6].CopyFromRecordset rsData 'هذه الفقرة لاستخراج كود الموظف و اسمه و نوع الاجازة و تاريخ البداية و عدد الايام و تاريخ النهاية 'بشرط ان اجازاته تقع في الشهر المراد الاستعلام عنه ' و هذه البيانات مؤقتة لحساب التقرير و تمحى في اخر الكود sSQL = "select x.emb_id,emb_name,ejaza_type,from_day,moda_ejaza,from_day+moda_ejaza from ejazat as x,nformation as y where x.emb_id=y.emb_id and month(from_day)=" & [b3] & " and year(from_day)=" & [b2] & " or (x.emb_id=y.emb_id and month(from_day)<" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)=" & [b2] & " ) or (x.emb_id=y.emb_id and month(from_day)>" & [b3] & " and month(from_day+moda_ejaza)>=" & [b3] & " and year(from_day)<" & [b2] & " and year(from_day+moda_ejaza)=" & [b2] & " ) order by x.emb_id,from_day" Set rsData = New ADODB.Recordset rsData.Open sSQL, sConnect, adOpenForwardOnly, _ adLockReadOnly, adCmdText If Not rsData.EOF Then [ah6].CopyFromRecordset rsData rsData.Close End If '******************************************************** 'هنا كود لتحويل البيانات الي شكل التقرير النهائي For i = 6 To Cells(Rows.Count, 1).End(xlUp).Row For n = 6 To Cells(Rows.Count, "ah").End(xlUp).Row If Cells(i, 1) = Cells(n, 34) Then For Each c In Range("c5:ag5") If Not IsEmpty(c) Then If DateSerial([b2], [b3], c.Value) >= Cells(n, 37) And DateSerial([b2], [b3], c.Value) <= Cells(n, 39) Then Cells(i, c.Column) = Cells(n, 36).Value End If End If Next End If Next Next '************************************************************* Range("ah6:am" & Cells(Rows.Count, "ah").End(xlUp).Row).Clear End If Application.ScreenUpdating = True End Sub اولا يمكن زيادة عمود departmen لكن سيلزم التعديل في باقي اجزاء الكود . ثانيا بالنسبة لجملة sql فتعتمد علي استخراج البيانات ان كان تاريخ بداية الاجازة في الشهر الحالي و السنة الحالية او تاريخ بداية الاجازة في شهر سابق و في السنة الحالية و تاريخ نهاية الاجازة اكبر من او يساوي الشهر الحالي او تاريخ بداية الاجازة في سنة سابقة و تاريخ نهاية الاجازة يقطع الشهر الحالي للسنة الحالية ملاحظة الشهر الحالي اي الشهر المراد البحث بدللالته . تحياتي
  8. شكرا لك استاذ أبو خليل اللهم اجعلنا منهم ,آمين يا رب الحل يعتمد علي اكواد sql لاستخراج البيانات المطلوبة بشكل دقيق و سريع ثم يترك الباقي للاكسيل و vba بمرونته ليكمل المهمة . ربما لو كان تصميم البيانات بشكل اخر لاختلف الامر , ربما امكن استخراج التقرير باستخدام sql فقط و الله اعلم. او كما نوهت حضرتك في المشاركة رقم 7 بان هناك طرق متبعة يمكن البناء عليها . تحياتي
  9. السلام عليكم كل الشكر و التحية للاستاذ جعفر المغربي علي هذا الابداع . و الشكر بالطبع للاستاذ حمادة عمر . جزاكم الله خيرا و زادكم علما .
  10. السلام عليكم بعد اذن استاذنا ابو خليل هذه محاولة باستخدام استعلام من خلال ملف اكسيل تحياتي +اجازات.rar
  11. معذرة لم اتبين اين الخطأ بالتحديد ارفق ملف يوضح المشكلة و مكان الخطأ تحياتي
  12. السلام عليكم جرب هذا مفردات المرتب-+-.rar
  13. السلام عليكم جرب هذا تحياتي مفردات المرتب--++.rar
  14. السلام عليكم جرب هذا تحياتي صلاحيات المستخدمين -2-5++-+.rar
  15. السلام عليكم جرب هذا تحياتي مفردات المرتب++.rar
  16. السلام عليكم بعد اذن استاذ احمد جرب هذا تحياتي Booننk11+++.rar
  17. السلام عليكم جرب هذا باستخدام معادلة استاذ اسلام الشيمي للرصيد , و معادلات استاذ عبد الله باقشير في اخر دفعة وتاريخها تحياتي report+-+.rar
  18. السلام عليكم لا ادري ان كان هذا ما تقصد او ان كان هناك طريقة اسهل جرب المرفق تحياتي مفردات المرتب+.rar
  19. السلام عليكم جرب كليك يمين علي الخلية المراد التعديل عليها format cells custom ثم اكتب 00 ok تحياتي
  20. السلام عليكم هذا حل يعتمد علي طرح 1 من السنة فقط علي اساس ان اخر يوم دائما 31 و اخر شهر 12 تحياتي السنه+.rar
  21. السلام عليكم تحياتي للجميع اعتقد ان هذا موضوع مكرر (الطلب الثاني و الثالث) شاهد هذا الرابط http://www.officena.net/ib/index.php?showtopic=45714&hl=lookup%282#entry270443 اعتقد ان حل استاذ عبد الله باقشير المشاركة رقم 5 مناسب لك طالما بياناتك مرتبة تصاعديا بالتاريخ(و هذا هو الحال)
  22. الحمد لله واي استفسار انا في الخدمة الله المستعان
×
×
  • اضف...

Important Information