Eid Mostafa قام بنشر ديسمبر 23, 2011 قام بنشر ديسمبر 23, 2011 الأخوة الأعزاء السلام عليكم ورحمة الله وبركاته ،،،، هل بالإمكان تحويل دالة SUMPRODUCT بالملف المرفق إلى كود VBA ؟؟؟؟ ولكم خالص تحياتى أخوكم عيد مصطفى Statement of Account (21.12.11).rar
الـعيدروس قام بنشر ديسمبر 24, 2011 قام بنشر ديسمبر 24, 2011 السلام عليكم جرب هكذا Public Sub alidroos_CP_SU() For ALI_SUM = 3 To 28 Cells(17, ALI_SUM).Value = Evaluate("=SUMPRODUCT((Name=$B$17)*(Month=" & Cells(1, ALI_SUM).Address(False, True) & ")*Madine)") Next ALI_SUM End Sub
Eid Mostafa قام بنشر ديسمبر 24, 2011 الكاتب قام بنشر ديسمبر 24, 2011 الأخ الكريم بداية أشكرك بالغ الشكر على إهتمامك بالرد وقد قمت بتجربة الكود الذى أرسلته إلى ، ولكنه لم يؤدى المطلوب. حيث ستجد فى الملف المرفق بأننى قد قمت بعمل قيدين على سبيل التجربة القيد الأول بشيت [Movement] بسطر 356 ، 357 ويخص الحساب رقم 12 والحساب رقم 14 بتاريخ 2011/4/1 القيد الثانى بشيت [Movement] بسطر 358 ، 359 ويخص نفس الحسابان أعلاه وبتاريخ 2011/5/1 وبالذهاب إلى شيت [Detailed Trial Balance] لم أجد أن القيم بالقيدين أعلاه قد تم ترحيلهم. والمطلوب يتلخص فى التالى:- ترحيل القيم بالقيدين أعلاه إلى شيت [Detailed Trial Balance] التى تخص كل حساب أمام الحساب الخاص بها وفى الشهر الخاص بها بمعنى أوضح :- (ترحيل 99.999 إلى خانة K15 وأيضاً إلى خانة L17 وذلك بالنسبة للقيد الأول) (ترحيل 99.999 إلى خانة M15 وأيضاً إلى خانة N17 وذلك بالنسبة للقيد الثانى) أرجو أن أكون بذلك قد أوضحت لك ما أقصدة. وأرجو أيضاً ألا أكون قد أطلت عليك. ومرة أخرى لك خالص تحياتى وتقديرى. أخوك عيد مصطفى Statement of Account (24.12.11).rar
الـعيدروس قام بنشر ديسمبر 24, 2011 قام بنشر ديسمبر 24, 2011 (معدل) الاخ الفاضل عيد مصطفى انت طلبت تحويل المعادلة الى كود وانا اطلعت على المرفق للمشاركة السابقة ووجود المعادلة هو في المدى ( C17 : AB17 ) فقط والكود يقوم مقام الصيغة التي في المدى المذكور ارجو ارفاق الصيغة المراد تحويلها الى كود والسلام عليكم تم تعديل ديسمبر 24, 2011 بواسطه alidroos
الـعيدروس قام بنشر ديسمبر 24, 2011 قام بنشر ديسمبر 24, 2011 وهذا لتأكيد عمل الكود جرب هذا نفس الكود ولاكن ينفذ الصيغة على المدى Public Sub alidroos_CP_SU_F() With ورقة1 For ALI_SUM = 3 To 28 .Cells(17, ALI_SUM).Formula = "=SUMPRODUCT((Name=$B$17)*(Month=" & .Cells(1, ALI_SUM).Address(True, False) & ")*Madine)" Next ALI_SUM End With End Sub
Eid Mostafa قام بنشر ديسمبر 24, 2011 الكاتب قام بنشر ديسمبر 24, 2011 الأخ الكريم / العيدروس أكرر شكرى مرة أخرى على إهتمامك بالرد وعذراً على عدم الإيضاح ، فالمعادلة الموجودة بالمدى الذى ذكرتة هى كانت على سبيل المثال وقبل سحبها على كافة الحسابات (مرفق الملف بعد سحب المعادلة إلى المدى المطلوب ، وأرجو ألا تعانى مما أعانى منه فى بطء الجهاز وهو السبب الأول والأخير لطلبى تعديل المعادلة إلى كود). والمدى المطلوب هو من (C4 إلى AB160) وستجد أن القيم التى أشرت إليها بمشاركتى السابقة قد تم ترحيلها بعد تطبيق المعادلة. أرجو أن أكون بذلك قد أوضحت لك ما أقصدة. وأرجو أيضاً ألا أكون قد أطلت عليك. ومرة أخرى لك خالص تحياتى وتقديرى. أخوك عيد مصطفى Statement of Account (24.12.11) 2.rar
الـعيدروس قام بنشر ديسمبر 24, 2011 قام بنشر ديسمبر 24, 2011 السلام عليكم حاولت اطبق الكود على عمود فأخذ وقت فما بالك بالمدى كامل حقيقة ماانصحك حاول تقلص من حجم الملف لان حجم الملف ماهو طبيعي تحياتي
عبدالله المجرب قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 السلام عليكم الاستاذ الفاضل ابو نصار جهد ونشاط ملحوظ تشكر عليه وان شاء الله في موازين اعمالك == اخي الفاضل عيد مصطفى ان شاء الله هذا الرابط ينفع معاك http://www.officena.net/ib/index.php?showtopic=32650
Eid Mostafa قام بنشر ديسمبر 25, 2011 الكاتب قام بنشر ديسمبر 25, 2011 الأخ العزيز والفاضل / عبد الله أشكرك بالغ الشكر على إهتمامك بالرد. ولكن بالإطلاع على الملف الموجود بالرابط الذى أشرت إلية لم أجد أنه يتناسب مع طلبى. والذى يتمثل فى ترحيل قيم كل قيد إلى النطاق C4 : AB160 وفقاً للإعتبارات التالية:- - الشهر - إسم الحساب - طبيعة القيمة (مدينة / دائنة) أرجو منك التكرم والإطلاع على الملف المرفق بالمشاركة رقم 8 وما بها من شرح فقد تصل إلى حل لما أريدة. أخوك عيد مصطفى
بن علية حاجي قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 السلام عليكم ورحمة الله أخي الكريم مصطفى، في الحقيقة لم أتوقف عن التفكير في مسألتك وقد قمت بتحضير كود يقوم بالتعويض الذي طلبته لكن للأسف بقي تنفيذ هذا الكود ثقيلا... ولا زلت أفكر وأبحث عن الحل المناسب والسريع إن لم يجد أحد فطاحلة الأكواد حلا لها قبل هذا... وآسف جدا لعدم التوصل للحل... أخوك بن علية
عبدالله باقشير قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 السلام عليكم ورحمة الله اخي الفاضل نفس الحاصل الذي اورده اخي بن عليه الملف ثقيل عند التنفيذ جرب الكود التالي على عشرين صف زي ما هو معمول اذا ناسبك زيادة النطاق الخاص بيك Option Explicit Sub kh_Evaluate() Dim X As Boolean Dim Rng As Range, Col As Range Set Rng = Sheets("Detailed Trial Balance").Range("C4:AB20") Rng.ClearContents Application.ScreenUpdating = False Application.Calculation = xlCalculationManual For Each Col In Rng X = Col.Column Mod 2 = 1 Select Case X Case True: Col = Application.Evaluate("=SUMPRODUCT((Name=" & Cells(Col.Row, 2).Address & ")*(Month=" & Cells(1, Col.Column).Address & ")*Madine)") Case False: Col = Application.Evaluate("=SUMPRODUCT((Name=" & Cells(Col.Row, 2).Address & ")*(Month=" & Cells(1, Col.Column).Address & ")*Daine)") End Select Next Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True Set Rng = Nothing End Sub ودمتم في حفظ الله
abouelhassan قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 (معدل) كل الاحترام وكل التقدير استاذ عبدالله المجرب استاذ بن علية استاذ خبور خير استاذ ابو نصار كل وفائق الاحترام من كل قلبى تم تعديل ديسمبر 25, 2011 بواسطه abouelhssan
Eid Mostafa قام بنشر ديسمبر 25, 2011 الكاتب قام بنشر ديسمبر 25, 2011 الأساتذة العظام أستاذ عبدالله المجرب أستاذ بن علية أستاذ خبور خير أستاذ أبو نصار لقد قمت بإضافة الكود المعد بواسطة الأستاذ / خبور خير ، ثم قمت بعمل قيد على سبيل التجربة بشيت Movement ثم ذهبت لشيت Detailed Trial Balance فلم أجد شيئاً تم ترحيلة. مرفق الملف للإطلاع. خالص تحياتى وتقديرى أخوكم عيد مصطفى Statement of Account (24.12.11) 3.rar
عبدالله باقشير قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 السلام عليكم هذا الكود للتجربة قم بتنفيذه من الشبت Detailed Trial Balance وعاين النتائج في النطاق "C4:AB20"
Eid Mostafa قام بنشر ديسمبر 25, 2011 الكاتب قام بنشر ديسمبر 25, 2011 السلام عليكم أخى الكريم / خبور خير لقد قمت بإضافة الكود إلى شيت Detailed Trial Balance ، ثم قمت بعمل قيد على سبيل التجربة بشيت Movement ثم ذهبت لشيت Detailed Trial Balance فلم أجد شيئاً تم ترحيلة. مرفق الملف للإطلاع بالمشاركة السابقة. خالص تحياتى وتقديرى أخوك عيد مصطفى
عبدالله باقشير قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 السلام عليكم اضغط الزر اللي امامك في المرفق Statement of Account (24.12.11) 2.rar 1
عبدالله باقشير قام بنشر ديسمبر 25, 2011 قام بنشر ديسمبر 25, 2011 السلام عليكم لقد لاحظت الان النطاقات المسماه اللي موجودة في الدالة تحتوي على 100000 صف هذا سبب الثقل !!!!! الاسم والشهر والمين او الدائن 300000 للمعادلة الوحدة
بن علية حاجي قام بنشر ديسمبر 26, 2011 قام بنشر ديسمبر 26, 2011 السلام عليكم ورحمة الله إخواني الكرام، لما رأيت مشاركات أخي الحبيب خبور حفظه الله من كل سوء سعدت كثيرا وسيتم حل المسألة بإذن الله... والكود (ويبقى ثقيلا في التنفيذ) الذي كنت قد حضرته في هذا الشأن يشبه كثيرا كود أخي خبور ... Sub hben() Application.ScreenUpdating = False For J = 3 To 28 For I = 4 To 160 If J Mod 2 = 1 Then Cells(I, J) = Evaluate("SumProduct(( Name = B" & I & ")*(Month =" & Cells(1, J) & ")* Madine)") Else Cells(I, J) = Evaluate("SumProduct(( Name = B" & I & ")*(Month =" & Cells(1, J) & ")* Daine)") End If Next I Next J Application.ScreenUpdating = True End Sub وأسألك أخي خبور عن أمر فكرت فيه مليا (لمعرفتك أكثر بالأكواد) : هل يمكن إنشاء جدول (مصفوفة) عن طريق VBA نخزن فيها نتائج المعادلات ثم بعد الانتهاء منها نقوم بلصقها في النطاق المطلوب من الورقة؟؟؟ أخوكم بن علية
Eid Mostafa قام بنشر ديسمبر 26, 2011 الكاتب قام بنشر ديسمبر 26, 2011 السلام عليكم الأخ الكريم / خبور خير الأخ الكريم / بن علية كل الأخوة الذين شاركوا فى مساعدتى فى حل هذة المشكلة أتوجة إليكم جميعاً بخالص الشكر والتقدير على محاولاتكم القيمة والتى أضافت إلى الكثير وأتوجة بجزيل الشكر إلى الأخ / خبور خير فالحل الذى توصل إلية هو بالفعل ما أقصدة تماماً ، وإن كنت سأقوم بتقليل حجم أو مدى النطاقات ( الإسم ، الشهر ، المدين ، الدائن) وآمل أن يقل الوقت المستغرق فى الترحيل. مرة أخرى خالص شكرى وتقديرى لكل من ساهم فى حل هذة المشكلة. أفادكم الله جميعاً ، وزادكم علماً. خالص تحياتى وتقديرى أخوكم عيد مصطفى
عبدالله باقشير قام بنشر ديسمبر 27, 2011 قام بنشر ديسمبر 27, 2011 السلام عليكم الاخ الفاضل بن عليه-----حفظه الله وأسألك أخي خبور عن أمر فكرت فيه مليا (لمعرفتك أكثر بالأكواد) : هل يمكن إنشاء جدول (مصفوفة) عن طريق VBA نخزن فيها نتائج المعادلات ثم بعد الانتهاء منها نقوم بلصقها في النطاق المطلوب من الورقة؟؟؟ أخوكم بن علية هل هذا ما تقصده ؟؟ Option Explicit Const RR As Integer = 157 Const CC As Integer = 26 Sub kh_SumProduct() Dim nAry() As Variant, mAry() As Variant, M_D() As Variant Dim MyCalc As XlCalculation Dim Last As Long, C As Integer, R As Integer, cN As Byte Dim Na As Range, Mo As Range, M As Range, D As Range On Error GoTo 1 '------------------------------------------ With Range("Name") Last = .Cells(.Rows.Count).End(xlUp).Row End With '------------------------------------------ Set Na = Range("Name").Resize(Last, 1) Set Mo = Range("Month").Resize(Last, 1) Set M = Range("Madine").Resize(Last, 1) Set D = Range("Daine").Resize(Last, 1) '------------------------------------------ ReDim nAry(1 To RR): ReDim mAry(1 To CC): ReDim M_D(1 To 2) '------------------------------------------ MyCalc = Application.Calculation Application.Calculation = xlCalculationManual Application.ScreenUpdating = False '------------------------------------------ M_D(1) = Kh_RgToAry(M): M_D(2) = Kh_RgToAry(D) '------------------------------------------ With Sheet4 For C = 1 To CC If C Mod 2 = 1 Then cN = 1 Else cN = 2 For R = 1 To RR If R = 1 Then mAry(C) = Kh_RgToAry(Mo, 1, .Cells(1, C + 2)) If C = 1 Then nAry(R) = Kh_RgToAry(Na, 1, .Cells(R + 3, 2)) .Cells(R + 3, C + 2) = WorksheetFunction.SumProduct(nAry(R), mAry(C), M_D(cN)) Next Next End With 1: Application.Calculation = MyCalc Application.ScreenUpdating = True '------------------------------------------ Erase nAry: Erase mAry Set Na = Nothing: Set Mo = Nothing: Set M = Nothing: Set D = Nothing End Sub Function Kh_RgToAry(MyRng As Range, Optional T As Variant, Optional Test As Variant) Dim co As Range, i As Long, Tb As Boolean ReDim MyAr(1 To MyRng.Cells.Count) For Each co In MyRng.Cells i = i + 1 If IsMissing(T) Or IsMissing(Test) Then MyAr(i) = CDbl(co) Else Select Case Val(T) Case 1: Tb = co = Test Case 2: Tb = co <> Test Case 3: Tb = co > Test Case 4: Tb = co < Test End Select MyAr(i) = Abs(CInt(Tb)) End If Next Kh_RgToAry = MyAr Erase MyAr End Function شاهد المرفق kh_SumProduct.rar ودمتم في حفظ الله 1
Eid Mostafa قام بنشر ديسمبر 31, 2011 الكاتب قام بنشر ديسمبر 31, 2011 السلام عليكم الأخ الكريم / خبور خير أشكرك مرة أخرى على إهتمامك وإحيائك للموضوع مرة أخرى. مرة أخرى خالص شكرى وتقديرى لكل من ساهم فى حل هذة المشكلة. أفادكم الله جميعاً ، وزادكم علماً. خالص تحياتى وتقديرى أخوك عيد مصطفى
الـعيدروس قام بنشر ديسمبر 31, 2011 قام بنشر ديسمبر 31, 2011 (معدل) السلام عليكم كذا يااستاذ خبور خير صارت مصنع تحف وليست تحفه فقط زادك الله من علمه وفضله ومتعك الله بالصحه والعافية كما تمتعنى باأكوادك وأعمالك تقبل مروري تم تعديل ديسمبر 31, 2011 بواسطه alidroos
saad abed قام بنشر ديسمبر 31, 2011 قام بنشر ديسمبر 31, 2011 السلام عليكم كذا يااستاذ خبور خير صارت مصنع تحف وليست تحفه فقط زادك الله من علمه وفضله ومتعك الله بالصحه والعافية كما تمتعنى باأكوادك وأعمالك تقبل مروري اخى ابوعلى صدق ابونصار اعمالك تثبت لنا ان الاكواد تطيعك فى كل ما تريد زادك الله من العلم ونفع بك سعد عابد
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.