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

سليم حاصبيا

أوفيسنا
  • Posts

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

  • Days Won

    262

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

  1. جرب المرفق المعادلات المطلوبة في الخلية:B1 (يحب استعمال Ctrl+Shift+Enter و ليس Enter وحدها لانها معادلة صفيف Array_Fromula) =LEFT(A1,(MAX(IF(CODE(MID(TRIM(A1),ROW(INDIRECT("1:"&LEN(TRIM(A1)))),1))>=122,ROW(INDIRECT("1:"&LEN(TRIM(A1)))),0)))+1) في الخلية:C1 (يحب استعمال Ctrl+Shift+Enter و ليس Enter وحدها لانها معادلة صفيف Array_Fromula) =RIGHT(A1,LEN(A1)-(MAX(IF(CODE(MID(TRIM(A1),ROW(INDIRECT("1:"&LEN(TRIM(A1)))),1))>=122,ROW(INDIRECT("1:"&LEN(TRIM(A1)))),0)))-1) اذا لم تعمل المعادلات معك استبدل الفاصلة "," بفاصلة منقوطة ";" في المعادلة أو العكس(حسب اعدادات الجهاز عندك ) dictionary Salim.rar
  2. تصحيح Private Sub CommandButton1_Click() If TextBox1 + 0 > TextBox2 + 0 Then TextBox3 = "منتظم" _ Else TextBox3 = "متأخر" End Sub او هذا Private Sub CommandButton1_Click() If CInt(TextBox1) > CInt(TextBox2) Then TextBox3 = "منتظم" _ Else TextBox3 = "متأخر" End Sub
  3. جرب هذا الماكرو Option Explicit Option Base 1 Sub Salim_filter() Dim arr, k% arr = Array("1", "2", "3") For k = 1 To 3 Sheets(arr(k)).Range("a2:h10000").ClearContents Sheets(arr(k)).Range("XFC1:XFC2") = Application.Transpose(Array("النتيجة", arr(k))) Sheets("البيانات").Range("b1:H10000").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Sheets(arr(k)).Range("XFC1:XFC2"), CopyToRange:=Sheets(arr(k)).Range("b1:h1") Sheets(arr(k)).Range("XFC1:XFC2") = "" Next End Sub الملف مرفق ترحيل Salim.rar
  4. استبدل الفاصلة "," بفاصلة منقوطة ";" في المعادلة أو العكس(حسب اعدادات الجهاز عندك ) لتصبح هكذا =IF(OR($J$10=100;$J$10=150);IF(CHOOSE(($J$10=100)+1;VLOOKUP($I$11;{0,"راسب";74,"مقبول";98,"جيد";113,"جيد جداً ";128,"ممتاز"};2);VLOOKUP($I$11;{0,"راسب";50,"مقبول";65,"جيد";75,"جيد جداً ";85,"ممتاز"},2))="راسب";$I$11;CHOOSE(($J$10=100)+1;97;64));"")
  5. جرب هذه المعادلة =IF(OR($J$10=100,$J$10=150),IF(CHOOSE(($J$10=100)+1,VLOOKUP($I$11,{0,"راسب";74,"مقبول";98,"جيد";113,"جيد جداً ";128,"ممتاز"},2),VLOOKUP($I$11,{0,"راسب";50,"مقبول";65,"جيد";75,"جيد جداً ";85,"ممتاز"},2))="راسب",$I$11,CHOOSE(($J$10=100)+1,97,64)),"")
  6. جرب هذا الملف تم تغيير اسماء الصفحات لحسن التعامل مع اللغة الاجنبية Salim1ترحيل.rar
  7. تم الاستعانة بعامود مساعد(يمكن اخفاءه) Salim_Sum.rar
  8. جرب هذاالكود Option Explicit Sub Copy_With_Hidden_Sheet() If ActiveSheet.Name <> "Sales" Then Exit Sub Dim Lr_sales%, Lr_data% Dim Rg_Tocopy As Range Lr_sales = Sheets("sales").Cells(Rows.Count, "A").End(3).Row Lr_data = Sheets("data").Cells(Rows.Count, "V").End(3).Row If Lr_sales < 2 Then Lr_sales = 2 Set Rg_Tocopy = Sheets("data").Range("l1:v" & Lr_data) With Sheets("Sales") .Range("A2:K" & Lr_sales).ClearContents .Range("a2").Resize(Lr_data, Rg_Tocopy.Columns.Count).Value = Rg_Tocopy.Value .Range("A1").Select End With End Sub
  9. يمكن ذلك لكن بدون استعمال الامر Select او Activate او اي من الاوامر التي تقتضي ان تكون الشيت غير مخفية جرب هذا الكود بعد اخفاء الشيت 2 Sub workking_with_hidden_sheet() Dim i% For i = 1 To 50 Sheets("sheet2").Range("a" & i) = i Next End Sub
  10. جرب هذه الكود لزر التنفيذ Private Sub CommandButton1_Click() On Error Resume Next m = CDate(TextBox1.Value): n = CDate(TextBox2.Value) If IsEmpty(m) Then TextBox1.Value = "" TextBox1.SetFocus Exit Sub End If If IsEmpty(n) Then TextBox2.Value = "" TextBox2.SetFocus Exit Sub End If TextBox3 = m - n End Sub
  11. طلب الي في احد المدارس تحويل علامات الطلاب من بيانات عامودية الى جدول قكان هذا الملف (وضعتة يتصرف المنتدى لمن يريد الاستفادة منه) Tanspose_notes.rar
  12. تعديل بسيط Option Explicit Sub doyoun() 'استعمال With و End With يزيد من سرعة الماكرو للبيانات الكبيرة 'ْxلا حاجة للمتغير Dim ws As Worksheet, lr%, xx As Worksheet, rng As Range Application.ScreenUpdating = False For Each xx In Sheets With xx lr = .Cells(Rows.Count, "d").End(xlUp).Row '================================== '' For x = 9 To lr لا حاجة لهذا السطر '================================== If .Name <> "الرئيسية" And .Name <> "طباعة" Then .Range("h3:h4").ClearContents Set rng = .Range("d9:d" & lr) .Range("h3").Value = Application.Sum(rng) .Range("h3").Offset(1) = .Range("d" & lr) End If '================================== ' Next لا حاجة لهذا السطر '================================== End With Next Application.ScreenUpdating = True End Sub ان استعمال المتغير x من 9 الى lr هنا تجعل الكود يكرر نقسه عدة مرات في كل صفجة
  13. حاول وضع عملبة الجمع في الكود وارفعه (الكود فقط) مع مراعاة الملاحظات التي ارسلتها
  14. لا يأس كخطوة أولى لكن لدي 3 ملاحظات 1- تعريف المنغيرات بهذا الشكل Dim ws As Worksheet, x, lr, xx يثقل الملف لان اكسل يعتبر ان Ws هو المتغير الوحيد كصفحة عمل و كل الباقي x,lr,xx يعتبرها Variant وبالتالي يحجز لها مكاناَ كبيراً في Memory بجب ان يعّرف كل متفير بنوعه %ْx هي نفسها X as integer و بذلك تكون البداية Dim ws As Worksheet, x%, lr%, xx As Worksheet 2- لا حاجة لتنشيط الخلية المعنية بالأمر Cells(x, 4).Activate لان هذا يزيد من مهمة الكود دون سبب و لا داعي له فقط اكنب For x = 9 To lr '===================== If xx.Name <> "الرئيسية" And xx.Name <> "طباعة" Then xx.Range("h4").Value = xx.Range("d" & lr) End If '===================== 3-أين عملية الجمع من الرقم 9 الى الخلية ما قبل الاخيرة
  15. يلزمك هذا الماكرو Option Explicit Sub Salim() Dim Ws As Worksheet, x%, lr%, k%, My_Rg As Range k = Sheets.Count For x = 2 To k - 1 Set Ws = Sheets(x) With Ws lr = .Cells(Rows.Count, "d").End(xlUp).Row Set My_Rg = .Range("d9:d" & lr) With .Range("h3") .Value = Application.Sum(My_Rg) .Offset(1) = Range("d" & lr) End With End With Next End Sub
  16. يجب كتابة البيانات بلغة يفهمها الاكسل 1-مثلاً يوم الاحد هو Sun و ليس Su يوم الاثنين هو Mon و ليس Mo و هكذا 2-أين التاريخ كي يتعرف الاكسل عليه
×
×
  • اضف...

Important Information