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

سليم حاصبيا

أوفيسنا
  • Posts

    8,723
  • تاريخ الانضمام

  • Days Won

    262

كل منشورات العضو سليم حاصبيا

  1. هذه المعادلة =IFERROR(INDEX(A!$B$1:$B$100,MATCH(A1,A!$A$1:$A$100,0)),INDEX(B!$B$1:$B$100,MATCH(A1,B!$A$1:$A$100,0)))
  2. لا اظن ان هناك معادلات تقوم بهذا الشيء والله أعلم اليك هذا الماكرو الاخر الذي يقوم بنفس العمل لكن اسرع بالنسبة للبيانات الكثيرة Option Explicit Sub Tasalsul_1() Dim My_Min, My_max, i%, m% i = 1 m = 1 Range("K:K").Clear Do Until Cells(i, 1) = vbNullString My_Min = Cells(i, 1): My_max = Cells(i, 2) If Not IsNumeric(My_Min) Or Not IsNumeric(My_max) Then GoTo 1 Range("k" & m) = My_Min Range("K" & m & ":K" & My_max - My_Min + m).DataSeries m = m + My_max - My_Min + 1 1: i = i + 1 Loop With Range("K1").CurrentRegion .Borders.LineStyle = 1 .Interior.ColorIndex = 6 End With End Sub
  3. جرب هذا الملف تمت صياغته على 2003 ليستفيد منه اكبر عد من الاعضاء فك التسلسل_2003.rar
  4. لو فرضنا ان الارقام عندك في الخلايا A1:A50 اكتب هذه المعادلة واسحب نزولاً =IF(N(A1)<=0,"",INT(A1/30))
  5. الكود Option Explicit Sub give_data() Dim i%, k%, m% i = 2 m = 2 Range("L2").CurrentRegion.Offset(1).ClearContents Do Until Cells(i, 1) = vbNullString For k = 2 To 9 If Cells(i, 1).Offset(0, k) <> 0 Then Cells(m, "L").Resize(, 10).Value = Cells(i, 1).Resize(, 10).Value m = m + 1 Exit For End If Next i = i + 1 Loop End Sub
  6. بعد كتابة المعادلة بالمرفق الذي رفعته لك ,و يعد سحبها على كامل الغامود A اذا لم تعمل المعادلات اضغط F9
  7. ضع خاصية calculation Automatic لاته يبدو ان هناك ماكرو يحولها الى xlmanual او اضغط f9
  8. بد اذن اخي ابو حنين ربما كان المطلوب Aziz_salim.rar
  9. جرب هذا الكود Option Explicit Sub compaire_columns() Dim sh1 As Worksheet, sh2 As Worksheet Dim First_rg1 As Range, Sec_rg1 As Range Dim First_rg2 As Range, Sec_rg2 As Range Dim m%, i% Set sh1 = Sheets("بيانات 1"): Set sh2 = Sheets("بيانات2") sh1.Range("A2").CurrentRegion.Columns(3).Offset(1).Resize(100, 2).Clear Set First_rg2 = sh2.Range("a2").CurrentRegion.Columns(1) Set Sec_rg2 = sh2.Range("a2").CurrentRegion.Columns(2) Set First_rg1 = sh1.Range("a2").CurrentRegion.Columns(1) Set Sec_rg1 = sh1.Range("a2").CurrentRegion.Columns(2) For i = 2 To First_rg1.Rows.Count If First_rg1.Cells(i) = First_rg2.Cells(i) Then First_rg1.Cells(i).Offset(, 2) = "مطابق" Else First_rg1.Cells(i).Offset(, 2).Interior.ColorIndex = 6 End If Next For i = 2 To Sec_rg1.Rows.Count If Sec_rg1.Cells(i) = Sec_rg2.Cells(i) Then Sec_rg1.Cells(i).Offset(, 2) = "مطابق" Else Sec_rg1.Cells(i).Offset(, 2).Interior.ColorIndex = 6 End If Next End Sub الملف مرفق المصنف2 _سليم.rar
  10. ربما كان المطلوب اكتب ما تريد تكراره في الصفحة 1 و لاحظ النتيجة في الصفحة 2 takrar by_choise.rar لا حظ هذا الملف ايضاً تكرار حسب الرغبة.rar
  11. الحل هو كتابة اشياء يفهمها اكسل ليقوم بالعمليات الحسابية عليها
  12. هذا هو المطلوب بالضبط قم يتصغير شاشة الكود و شاشة الاكسل الى النصف تقريباً(ضعهما جانب بعضهم البعض) و مع كل كبسة على F8 ينفذ السطر الاصفر من الكود لينتقل التلوين الى السطر التالي وهكذا الى نهابة الكود لاجظ ما يجري على صفحة الاكسل بعد كل كبسة F8 وخاصة لاحظ المعادلة(المؤقتة) التي سوف تظهر قي الخلية s2 عند السطر "المصدر!$H2=الهدف!"= T_sh.Range("s2").Formula هذه المعادلة يقوم على اساسها الفلتر بعد تنفيذ الفلتر تمسح هذه المعادلة لانه لا لزوم لها بعد بواسطة هذا السطر T_sh.Range("s2").ClearContents يمكنك اعادة المحاولة من البداية قدر ما تريد من المرات مع تغيير قيمة الخلية L1 بواسطة f8
  13. الكود يقوم بالتصفية عن طريق Advanced filter يجب ان تكون الصفحة T_sh محددة (اي الصفحة "الهدف") 1-ادخل على صفحة الكود و قم بتعطيل الكود (حدث الصفحة) عن طريق وضع فاصلة عليا عند كل سطر من اسطره ليصيح الكود بهذا الشكل Option Explicit Sub filter_for_ME() With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With Dim S_sh As Worksheet: Set S_sh = Sheets("المصدر") Dim T_sh As Worksheet: Set T_sh = Sheets("الهدف") Dim My_Table As Range: Set My_Table = S_sh.Range("A1").CurrentRegion T_sh.Range("a1").CurrentRegion.ClearContents T_sh.Range("s2").Formula = "=المصدر!$H2=الهدف!$L$1" My_Table.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=T_sh.Range("s1:s2"), _ CopyToRange:=T_sh.Range("A1") T_sh.Range("s2").ClearContents With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With End Sub 'Private Sub Worksheet_Change(ByVal Target As Range) 'If Target.Address <> "$L$1" Or Target.Count > 1 Then GoTo 1 'Application.EnableEvents = False 'filter_for_ME '1: 'Application.EnableEvents = True 'End Sub 2-ضع المؤشر داخل الكود filter_for_ME 3-بواسطة المفتاح F8 نفذ الكود خطوة خطوة و لا حظ ماذا يجري على الصفحة و ستفهم الكود يسرعة 4- بعد دراسة الكود ازل الفواصل العليا ليعود كل شيء الى طبيعته
  14. انت لم تكتب اعداداً في الخلايا بل نصوصاً لا يمكن ان يجمعها الاكسل
  15. 1-عدد الصفوف لا قيمة له المهم الا تكون هناك خلايا فارغة قي العامود A 2-تأخذ قيمة k في الحلقة التكرارية من 1 الى عدد الاعمدة ناقص 1 3- في جملة (Resize(, 9 تستبدل الرقم 9 بعدد الاعمدة 4- تستبدل اسم العامود "K" في الجملة ("Cells(m, "k بالعمود الذي تريد ان تظهر فيه البيانات (يجب الا يكون ملاصقاً لاخر عامود فيه البيانات الرئيسية) مثلاً ("Cells(m, "W
×
×
  • اضف...

Important Information