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

sumif بالكووود


amir501

الردود الموصى بها

السلام عليكم ورحمة الله

أخي الكريم، لست أدري إن كان هذا هو المطلوب في الملف المرفق...

أخوك بن علية

تحويل عمل الدالة sumif لكود2 vba.zip

تم تعديل بواسطه hben
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

أخي الكريم، لست أدري إن كان هذا هو المطلوب في الملف المرفق...

أخوك بن علية

تحويل عمل الدالة sumif لكود2 vba.zip

اخي الكريم

جزيت خيرا والله هذا بالضبط ما اردت ارجوك هل تتكرم بشرح بسيط لما عدلت بهذا الكود لاني والله بحاجة ماسة لهذا العمل وكيفية اظافة مواد اخرى قد تصل الى 30 مادة

وجعلها الله في رصيد حسناتك

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

اخي الكريم

جزيت خيرا والله هذا بالضبط ما اردت ارجوك هل تتكرم بشرح بسيط لما عدلت بهذا الكود لاني والله بحاجة ماسة لهذا العمل وكيفية اظافة مواد اخرى قد تصل الى 30 مادة

وجعلها الله في رصيد حسناتك

أخي الكريم إن التغيير الذي قمت به في الكود هو تغيير بسيط بإضافة بعض الأسطر لتغيير وضعية Criterea ووضعية ناتج عملية Sumif ولتوضيح هذه التغييرات نقوم بمقارنة الكودين :

الكود خاصتك:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim wrk As Worksheet

Dim aa As Range, bb As Range, cc As Range, dd As Range

Set wrk = Sheet1

Set aa = wrk.Range("myRange")

Set bb = wrk.Range("myCriteria")

Set cc = wrk.Range("mysumif")

Set dd = wrk.Range("SumIfRange")

cc = Application.SumIf(aa, bb, dd)

End Sub
الكود الذي تم فيه التغيير:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim wrk As Worksheet

Dim aa As Range, bb As Range, cc As Range, dd As Range

For i = 13 To 100

If Cells(9, i) = "" Then Exit Sub

Set wrk = Sheet1

Set aa = wrk.Range("myRange")

Set bb = wrk.Cells(9, i)

Set cc = wrk.Cells(10, i)

Set dd = wrk.Range("SumIfRange")

cc = Application.SumIf(aa, bb, dd)

Next i

End Sub

في الكود الأول وضعت Critera و ناتج Sumif في الخليتين (الثابتتين) E2 و K2 على الترتيب وفي الكود الثاني وضعتهما في خلايا السطرين 9 و 10 بالعبارتين (Cells(9, i و (Cells(10, i حيث i يمثل رقم العمود وجعلته في الكود متغيرا من 13 إلى 100 والرقم 13 (مثلا) هو العمود M ...

والكود يفي بمطلوبك الأخير "اظافة مواد اخرى قد تصل الى 30 مادة" باعتبار أن i (أرقام الأعمدة) تتغير من 13 إلى 100 ما يجعل الكود يقبل أكثر من 80 شرطا (مادة) لأن 100-13 = 87 عمودا (وكل عمود يمثل شرطا أو مادة)

وأتمنى أني وفقت في شرح الكود...

أخوك بن علية

رابط هذا التعليق
شارك

اخي بن عليه لك مني جزيل الشكر اكرمك الله وجعلها نورا لك في دنيتك واخرتك

جزيت خيرا ان شاء الله

الشرح واضح ان شاء الله لكني اجد فيه صعوبة بالغة لفهم الاكواد لانني مستجد في مجال الاكواد كهذه

اكرر شكري وامتناني

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information