saad abed قام بنشر مايو 7, 2013 مشاركة قام بنشر مايو 7, 2013 اخوانى الافاضل لماذا لا تعمل الدالة داخل الكود وما هى الطريقة الصحيحة لاستخدامها فى الاكواد Sub saad() Application.ScreenUpdating = False On Error Resume Next Dim a, d, z As Range ww = Application.WorksheetFunction Set d = Sheets("saad").Range("c5:c1500") Set a = Sheets("saad").Range("e5:e1500") Set z = Sheets("saad").Range("b5:b1500") Y = Sheets("saad").Cells(Sheets("saad").Rows.Count, Sheets("saad").Range("a5:a1000").Column).End(xlUp).Row For i = 6 To Y Cells(i, "c") = ww.SumIfs(a, z, Cells(i, "b"), d, Range("c5:c5")) Next i 1.rar رابط هذا التعليق شارك More sharing options...
احمد عبد الناصر قام بنشر مايو 7, 2013 مشاركة قام بنشر مايو 7, 2013 (معدل) السلام عليكم بداية هذا السطر يتخطى الاخطاء و بذلك لن تعلم ما او اين الخطأ بالظبط فمن الافضل حذفه ام لم يكن وضعه ضروري On Error Resume Next وهذا السطر اعتقد يجب ان يضاف له SET هكذا Set ww = Application.WorksheetFunction هذا لا بأس به لكن يمكن اختصاره ليصبح Y = Sheets("saad").Range("a" & Rows.Count).End(xlUp).Row اما بالنسبه لهذا فسوف يعمل لكن لاحظ ان عمود النتيجة هو C و C ايضا جزء من شروط المعادلة لا اعلم ان كان هذا مقصود Cells(i, "c") = ww.SumIfs(a, z, Cells(i, "b"), d, Range("c5")) و هكذا يصبح الكود النهائي Sub saad() Set ww = Application.WorksheetFunction Set d = Sheets("saad").Range("c5:c1500") Set a = Sheets("saad").Range("e5:e1500") Set z = Sheets("saad").Range("b5:b1500") Y = Sheets("saad").Range("a" & Rows.Count).End(xlUp).Row For i = 6 To Y Cells(i, "c") = ww.SumIfs(a, z, Cells(i, "b"), d, Range("c5")) Next i End Sub هذا و الله اعلم تحياتي تم تعديل مايو 7, 2013 بواسطه احمد عبد الناصر رابط هذا التعليق شارك More sharing options...
saad abed قام بنشر مايو 7, 2013 الكاتب مشاركة قام بنشر مايو 7, 2013 اخى احمد عبدالناصر اشكرك كل الشكر على شرحك ولكنى نفذت كل النصائح ولم يعمل الكود وارجو ممن يحاول فى الملف ان يغير اسم الورقة الى saad 1.rar رابط هذا التعليق شارك More sharing options...
احمد عبد الناصر قام بنشر مايو 7, 2013 مشاركة قام بنشر مايو 7, 2013 السلام عليكم معذرة لم انتبه للملف المرفق في البداية علي اي حال جرب هذه المحاولة Sub saad() Sheets("report").Range("b5:l1000").Clear Sheets("data").Range("k7:k" & Sheets("data").Range("k" & Rows.Count).End(xlUp).Row).Copy Sheets("report").Range("b5").PasteSpecial (xlPasteValuesAndNumberFormats) Sheets("data").Range("l8:l" & Sheets("data").Range("l" & Rows.Count).End(xlUp).Row).Copy Sheets("report").Range("c5").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True Application.CutCopyMode = False r = Sheets("report").Range("b" & Rows.Count).End(xlUp).Row c = Sheets("report").Range("iv5").End(xlToLeft).Column Sheets("report").Range(Cells(6, 3), Cells(r, c)).FormulaR1C1 = "=SUMIFS(saad!C4,saad!C1,RC2,saad!C2,R5C)" Sheets("report").Range(Cells(6, 3), Cells(r, c)) = Sheets("report").Range(Cells(6, 3), Cells(r, c)).Value End Sub تحياتي 1++.rar 1 رابط هذا التعليق شارك More sharing options...
saad abed قام بنشر مايو 7, 2013 الكاتب مشاركة قام بنشر مايو 7, 2013 اخى احمد عبدالناصر اشكرك كل الشكر هو المطلوب بالفعل جزاك الله خيرا رابط هذا التعليق شارك More sharing options...
saad abed قام بنشر مايو 8, 2013 الكاتب مشاركة قام بنشر مايو 8, 2013 اخى احمد هل ممكن تشرح تكوين المعادلة دى c4هى العمود الرابع c1هى العمود الاول c2هى العمود الثانى لان c هو collumn ما معنىrc2هل العمود الثانى فى اى صف ارجو التوضيح ولك الشكر FormulaR1C1 = "=SUMIFS(saad!C4,saad!C1,RC2,saad!C2,R5C) رابط هذا التعليق شارك More sharing options...
احمد عبد الناصر قام بنشر مايو 8, 2013 مشاركة قام بنشر مايو 8, 2013 السلام عليكم هذه اصل المعادلة في الاكسيل =SUMIFS(saad!$D:$D;saad!$A:$A;$B6;saad!$B:$B;C$5) بصراحة انا سجلتها بالمكرو ليحولها الاكسيل بنفسه علي اي حال RC2 تعني العمود الثاني (ثابت) مع تغير الصف تعادل هذه $B6 و العكس في R5C الصف الخامس ثابت مع تغير العمود حسب الخليه التي تحتوي علي المعادلة تعادل C$5 تحياتي رابط هذا التعليق شارك More sharing options...
saad abed قام بنشر مايو 8, 2013 الكاتب مشاركة قام بنشر مايو 8, 2013 اخى احمد كل الشكر والتقدير اعزكم الله بارك الله فيكم جزاك الله كل خير رابط هذا التعليق شارك More sharing options...
خالد القدس قام بنشر مايو 8, 2013 مشاركة قام بنشر مايو 8, 2013 السلام عليكم<br />سلمت يداك استاذ احمد<br />شرح رائع واكواد ذكية رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان