عادل ابوزيد قام بنشر يناير 16, 2013 قام بنشر يناير 16, 2013 اساتذتى الكرام الآتى كود للاستاذ عادل حنفى يقوم بعمل دالة sumif ارجو شرحه لاستيعابه حيث انه مفيد جداً فى التقارير وعمل الاحصائيات ومرفق ملف مثال Sub Test() Dim LastRow As Long Dim rngCriteria As Range, rngValue As Range LastRow = Cells(Rows.Count, "D").End(xlUp).Row Set rngCriteria = Range("D2:D" & VBA.CStr(LastRow)) Set rngValue = Range("F2:I" & VBA.CStr(LastRow)) Application.ScreenUpdating = False With rngCriteria .Offset(0, 2).FormulaR1C1 = "=SUMIF(Kind,RC[-2],Sales)" .Offset(0, 3).FormulaR1C1 = "=SUMIF(Kind,RC[-3],Purchases)" .Offset(0, 4).FormulaR1C1 = "=SUMIF(Kind,RC[-4],SalesRefunds)" .Offset(0, 5).FormulaR1C1 = "=SUMIF(Kind,RC[-5],PurchasesRefunds)" End With rngValue.Value = rngValue.Value Application.ScreenUpdating = False End Sub SumIfByCode.rar
عبدالله المجرب قام بنشر يناير 17, 2013 قام بنشر يناير 17, 2013 السلام عليكم Dim LastRow As Long Dim rngCriteria As Range, rngValue As Range التعريف عن متغيرات =============== LastRow = Cells(Rows.Count, "D").End(xlUp).Row لاستخراج رقم أخر صف به بيانات (في مثالك 13) ======= Set rngCriteria = Range("D2:D" & VBA.CStr(LastRow)) تعريف المدى من D2 الى D و أخر صف به بيانات ===== Set rngValue = Range("F2:I" & VBA.CStr(LastRow)) تعريف المدى من F2 الى I و أخر صف به بيانات ======================= Application.ScreenUpdating = False إيقاف اهتزاز الشاشة === With rngCriteria .Offset(0, 2).FormulaR1C1 = "=SUMIF(Kind,RC[-2],Sales)" .Offset(0, 3).FormulaR1C1 = "=SUMIF(Kind,RC[-3],Purchases)" .Offset(0, 4).FormulaR1C1 = "=SUMIF(Kind,RC[-4],SalesRefunds)" .Offset(0, 5).FormulaR1C1 = "=SUMIF(Kind,RC[-5],PurchasesRefunds)" End With هذه الجزئية ساتناول السطر .Offset(0, 2).FormulaR1C1 = "=SUMIF(Kind,RC[-2],Sales)" والباقي بنفس الفكرة في المدى D2:D واخر صف فاضي والذي تم تعريفه بهذا الاسم (rngCriteria) الخلايا المزاحة بمقدار عمودين يتم وضع هذه الصيغة (دالة ) فيها "=SUMIF(Kind,RC[-2],Sales)" وكما هو معروف بالنسبة لدالة SUMIF وطريقة عملها مع العلم ان المدى Kind والمدى Sales تم تعريفهما مسبقاً =========================== rngValue.Value = rngValue.Value هذا السطر يعني ان قيمة المدى من F2:I واخر خليه بها بيانات التي تم جلبها بالدالة يتم استبدال الدالة بالقيمه الناتجة عنها جرب مسحه وسترى ان الخلايا تحوي معادلات ================ ان شاء الله ان اكون وفقت في الشرح 1
رعد داود قام بنشر يناير 17, 2013 قام بنشر يناير 17, 2013 أحسنتم استاذ عبد الله على هذا الشرح مالمقصود من هذه الجزئيه من الداله RC[-2]
خالد القدس قام بنشر يناير 17, 2013 قام بنشر يناير 17, 2013 السلام عليكم أستاذ عبدالله شرح معلم متمكن بارك الله فيك
الـعيدروس قام بنشر يناير 17, 2013 قام بنشر يناير 17, 2013 السلام عليكم RC[-2] تشير الى مرجع الخلية النشطه R تمثل الصف و C العمود ناقص 2 اي اذا الخليه النشطه هيا C1 تعتبر بالمرجع السابق هيا A1
عادل ابوزيد قام بنشر يناير 17, 2013 الكاتب قام بنشر يناير 17, 2013 اساتذتى الكبار الاستاذ عبد الله المجرب الاستاذ عباد زادكم الله علماً وجعل علمكم نوراً لكل باحث علم وزادكم من فضله الواسع .. اللهم امين يا رب العالمين
الردود الموصى بها