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

كود جمع خلايا بشرط


إذهب إلى أفضل إجابة Solved by سليم حاصبيا,

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

جرب هذا الملف صفحة Salim

Option Explicit

Sub sum_merged_cells()
If ActiveSheet.Name <> "Salim" Then Exit Sub
Dim Rg As Range
Dim Ro%, X%, m%
Dim t%, y%, s#, k%, Roc%
Ro = Cells(Rows.Count, 2).End(3).Row
Roc = Cells(Rows.Count, 3).End(3).Row
 With Range("E4").CurrentRegion
  .UnMerge
  .Clear
End With
 For X = 4 To Ro
    If Cells(X, 2).MergeCells = True Then
        t = Cells(X, 2).MergeArea.Rows.Count
        k = X
          For y = 1 To t
             s = s + Cells(k, 3).Offset(y - 1)
          Next
       Cells(k, 5).Resize(y - 1).Merge
       Cells(k, 5) = s
       s = 0
       X = X + y - 2
   Else
       Cells(X, 5) = Cells(X, 3)
   End If
 Next X
   
   With Range("E4:E" & Roc)
   .VerticalAlignment = 2
   .HorizontalAlignment = 3
   .Borders.LineStyle = 1
   .Font.Size = 18
   .Font.Bold = True
   End With
End Sub

الملف مرفق

Abd_naser.xlsm

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

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

اخر طلب اخي اريد ان يكتب معادلة 
sum 

لا يقوم بكتابة الارقام فقط بل يقوم ايضا بكتابة المعادلة داخل خلية الناتج

ويقوم بعمل الامر في العمود 

d 1

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

  • أفضل إجابة

هذا الكود يقوم بذلك

Option Explicit
Sub Sum_Merged_Cells_By_Formula()
    Rem Created By Salim Hasbaya On 29/9/2020
If ActiveSheet.Name <> "Salim" Then GoTo Bay_Bay
Application.ScreenUpdating = False
Dim Ro%, X%
Dim t%, k%, Roc%
Ro = Cells(Rows.Count, 2).End(3).Row
Roc = Cells(Rows.Count, 3).End(3).Row

With Range("D2:D" & Roc)
  .UnMerge
  .Clear
End With
 
 For X = 2 To Ro
    If Cells(X, 2).MergeCells = True Then
        t = Cells(X, 2).MergeArea.Rows.Count
        Cells(X, 4).Resize(t).Merge
        Cells(X, 4).Formula = _
         "=SUM(C" & X & ":C" & X + t - 1 & ")"
       X = X + t - 1
   Else
       Cells(X, 4).Formula = "=SUM(C" & X & ")"
   End If
 Next X
   
   With Range("D2:D" & Roc)
   .VerticalAlignment = 2
   .HorizontalAlignment = 3
   .Borders.LineStyle = 1
   .Font.Size = 18
   .Font.Bold = True
   End With
Bay_Bay:
 Application.ScreenUpdating = True
End Sub

Abd_naser_New.xlsm

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information