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

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

قام بنشر

السلام عليكم

ارجو ان يكون الجميع بخير وصحة وسلامة 

في المرفق ملف اكسل يتضمن ورقتي عمل الاولى تحتوي على قائمة باسماء الطلبة مع بياناتهم وفي الورقة الثانية جدول يتضمن احصائية بالطلبة الموجودين في الورقة الاولى حسب القسم والنوع والصف اخذين بنظر الاعتبار امكانية اضافة او حذف الاسماء او تغيير النوع او القسم. شاكرين جهودكم 

موجودون 2020 اولية 13-4-2020.xlsx

  • أفضل إجابة
قام بنشر

لا ضرورة لرفع ملف من اكثر من 2000 صف

يكفي نموذج بسيط (في الملف المرفق حوالي 130 صف )فقط لمعايتة الماكرو

يمنكنك اضافة اي عدد من الصفوف في الورقة Toullab شرط عدم ترك خلايا فارغة في الصفوف حيث يعمل الفلتر ( الرابع  السادس  والسابع)

شخصياً لا افضّل تسمية الشيتات باللغة الغربية لصعوبة كتابة الكود ونقله

الكود

 

Option Explicit
Sub My_FILTER()
      Rem Created by Saliom Hasbaya on 14/4/2020
      With Application
      .ScreenUpdating = False
      .Calculation = xlCalculationManual
      End With
Dim T As Worksheet, S As Worksheet
Dim T_Table As Range, mr As Range, era As Range
Dim i%, lr%, x%, Homany%, k%, y%
Dim arr

Set T = Sheets("Toullab"): Set S = Sheets("Statics")
arr = Array("الاول", "الثاني", "الثالث", "الرابع")

 Set T_Table = T.Range("A1").CurrentRegion
 If T.AutoFilterMode Then T_Table.AutoFilter
 lr = S.Cells(Rows.Count, 1).End(3).Row
  With S.Range("C4:D" & lr - 1)
  .ClearContents
  .Offset(, 3).ClearContents
  .Offset(, 6).ClearContents
  .Offset(, 9).ClearContents
  End With
 y = 2
For k = 0 To 3
 For i = 4 To lr - 1
 '++++++++++++++++++++++++++++++++++++
  T_Table.AutoFilter 6, S.Cells(i, 1)
  T_Table.AutoFilter 7, arr(k)
  T_Table.AutoFilter 4, S.Cells(2, 3)
  
  Set mr = T_Table.SpecialCells(xlCellTypeVisible).Offset(1)
  For Each era In mr.Areas
   x = Application.CountA(era.Columns(7))
  If x Then
  Homany = Homany + era.Rows.Count
End If
Next
  S.Cells(i, 1).Offset(, y) = Homany - 1: Homany = 0
  '************************************************************
  T_Table.AutoFilter 4, S.Cells(2, 4)
  Set mr = T_Table.SpecialCells(xlCellTypeVisible).Offset(1)
  For Each era In mr.Areas
   x = Application.CountA(era.Columns(7))
  If x Then
    Homany = Homany + era.Rows.Count
  End If
Next
  S.Cells(i, 1).Offset(, y + 1) = Homany - 1: Homany = 0
  
  Next i
  y = y + 3
Next k
If T.AutoFilterMode Then T_Table.AutoFilter
      With Application
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      End With
Set T = Nothing: Set S = Nothing
Set T_Table = Nothing
Set mr = Nothing: Set era = Nothing
End Sub

الملف مرفق

OH_my_filter.xlsm

  • Like 2

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