جرب هذه المعادلة في الخلية ِA2 واسحب يميناً
هنا لا لزوم للجدول
=IF(OR(A$1={"Pre Foundation";"Foundation";"Emerging";"Established";"Accomplished"}),VLOOKUP(A$1,{"Pre Foundation",1;"Foundation",2;"Emerging",3;"Established",4;"Accomplished",5},2,0),"")
جرب هذا الكود
Sub transfer_data()
Dim ws1, ws2 As Worksheet
Dim Rg_to_Copy, Rg_to_Paste As Range
Set ws1 = Sheets("ورقة1"): Set ws2 = Sheets("ورقة2")
lr1 = ws1.Cells(Rows.Count, 1).End(3).Row
lr2 = ws2.Cells(Rows.Count, 2).End(3).Row
If lr1 < 2 Then lr1 = 2: If lr2 < 2 Then lr2 = 2
Set Rg_to_Copy = ws1.Range("a2:c" & lr1)
Set Rg_to_Paste = ws2.Range("b" & lr2 + 1)
ws2.Range("a" & lr2 + 1) = Format(Date, "dd/mm/yyyy")
Rg_to_Copy.Copy Rg_to_Paste
End Sub
أخي ابو البراء ... بعد السلام
اذا كان النص 17 نأخذ 5 5 6
اذا كان النص 18 نأخذ 6 6 6
اذا كان النص 19 نأخذ 6 6 7
و هكذا نقسم طول النص على 3 (عدد الكومبو) باستعمال (int)نأخذ اول حصتين للأول والثاني والباقي للثالث
هذا ما يريد صاحب السؤال ولا ادري ما الغاية
اضف هذا السطر البسيط على الكود
Application.Volatile
ليصبح الكود بهذا الشكل
Function Color_Num(rg As Range, source_rg As Range)
Application.Volatile
my_color = source_rg.Interior.ColorIndex
For i = 1 To rg.Count
If rg.Cells(i).Interior.ColorIndex = my_color Then s = s + 1
Next
Color_Num = s
End Function
بعد اذن الاخ ابو البراء
انسخ هذا الكود الى موديل جديد
Function Color_Num(rg As Range, source_rg As Range)
my_color = source_rg.Interior.ColorIndex
For i = 1 To rg.Count
If rg.Cells(i).Interior.ColorIndex = my_color Then s = s + 1
Next
Color_Num = s
End Function
ثم في الخلية CS8 اكتب هذه المعادلة و اسحب يساراً (و نزولاً اذا كنت تريد العمل على اكثر من صف)
=IF($B8="","",Color_Num($D8:$CR8,CS$5))
اليك الملف مع المعادلة
ديسمبر 2016 سليم.rar
بعد اذن الاخ الحبيب ابو البراء و الاخ الصديق بن علية
هذه المعادلة في الخلية j2 و تسحب نزولاً (استناداً الى ملف الاخ بن علية)
=SUMPRODUCT(SUMIFS($L$3:$L$22,$K$3:$K$22,$B2:$F2))
بدل الى هذا الكود
Sub hide_some_columns()
With Sheets("sheet1")
.Columns.Hidden = True
.Range("a1,b1,c1,g1").EntireColumn.Hidden = False
Application.Goto Reference:=.Range("b1")
End With
Sheets("sheet2").Activate
End Sub
جرب هذا الملف
لاحظت ان عدد الاعمدة 25 وليس 30
لذلك عملت المعادلة على هذا الاساس
يمكنك التغيير اذا كان هذا المطلوب شرط زيادة عدد الاعمدة و تعديل المعادلات بوضع رقم 30 بدل 25
distrubution salim.rar
جرب هذا الكود
يمكنك تحديد الاعمدة من خلاله
Sub hide_some_columns()
Sheets("sheet1").Columns.Hidden = True
Range("b1,c1,d1,r1").EntireColumn.Hidden = False
End Sub
دوبل كليك على الزر "استدعاء اكبر رقم"
Private Sub CommandButton1_Click()
Me.TextBox1.Value = Application.Max(Sheets("add").Range("c:c"))
End Sub
انسخ هذا الكود
يجب ان تكون الورقة Repport اخر ورقة في المصنف و ليس الاولى و لا لزوم للورقة Sheet1 الفارغة
اذا اردت زيادة ورقة يحب ان تكون البيانات فيها تماماً مثل بقية الاوراق (المعومات تبدأ في نفس الصف والاعمدة نفسها)