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

ابراهيم الحداد

الخبراء
  • Posts

    1,251
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    14

Community Answers

  1. ابراهيم الحداد's post in استخراج مجموعة من البيانات من عدة جداول was marked as the answer   
    السلام عليكم ورحمة الله
    مرسل اليك الملف بعد ادراج الكود الموجود بمشاركتى السابقة و سترى النتيجة بنفسك
    فقط اضغط على الزر الموجود بورقة الاجمالى
    تقرير.xlsm
  2. ابراهيم الحداد's post in فورم بحث واضافة عميل جديد was marked as the answer   
    السلام عليكم ورحمة الله
    اجعل الكود هكذا
    Sub ADD_DESCRIPTION() Dim ws As Worksheet, LR As Long, C As String Dim x As Byte Set ws = Sheets("DEFINITIONS") LR = ws.Range("D" & Rows.Count).End(xlUp).Row C = Me.TextBox1.Value x = WorksheetFunction.CountIf(ws.Range("D2:D" & LR), C) If x > 0 Then MsgBox "هذا البيان موجود ولا يجب تكرار إضافته" Exit Sub Else: ws.Range("D" & LR + 1) = C MsgBox "تم إضافة البيان الجديد بنجاح" Range([d2], [d2].End(xlDown)).Select Selection.Sort [d2], xlAscending Range("A1").Select TextBox1 = "" TextBox1.SetFocus End If End Sub  
  3. ابراهيم الحداد's post in المساعدة فى نسخ وترحيل بشرط was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم هذا الكود
    Sub AdSh_Data() Dim ws As Worksheet, C As Range Dim x As Byte, WF As Object Dim LR As Long, Sh As Worksheet Set ws = Sheets("ورقة1") Set WF = Application.WorksheetFunction LR = ws.Range("A" & Rows.Count).End(3).Row For Each C In ws.Range("A1:A" & LR) x = WF.CountIf(ws.Range("A1:A" & C.Row), C) On Error Resume Next If x = 1 Then If Len(Sheets(C).Name) = 0 Then Sheets.Add(after:=Sheets(Sheets.Count)).Name = C.Value End If End If Next 88: For Each Sh In ThisWorkbook.Worksheets For Each C In ws.Range("A1:A" & LR) If Sh.Name = C.Value Then p = p + 1 Sh.Range("A" & p).Resize(, 8) = ws.Cells(C.Row, 1).Resize(, 8).Value End If Next p = 0 Next End Sub  
  4. ابراهيم الحداد's post in التعديل على معادلة لاحتساب سنوات الخبرة was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم تلك المعادلة
    =IF(LEN(C4)>0;YEAR(TODAY())-MIN(YEAR(C4);D4);YEAR(TODAY())-YEAR(D4))  
  5. ابراهيم الحداد's post in تلوين خلايا was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم الكود التالى
    Sub Cold_Cells() i = 2 Do While i <= 30 For Each c In Range("F2:F8") If Cells(i, 9) = c.Value Then Cells(i, 9).Interior.ColorIndex = 6 End If Next i = i + 1 Loop End Sub  
  6. ابراهيم الحداد's post in أرجو تصحيح الكود was marked as the answer   
    السلام عليكم ورحمة الله
    انا طلبت منك عمل قائمة منسدلة لتسهيل الامر عليك فى التنفيذ
    و لكن حقيقة الامر  ما تم تنفيذه عندى باستخدام زر سبينر "Spinner 2"
    و لذلك سأرسل اليك الملف بعد التعديل لتطلع عليه بنفسك
    نهال.xlsm
     
  7. ابراهيم الحداد's post in حساب الدرجة الأكبر was marked as the answer   
    السلام عليكم ورحمة الله
    ضع هذه المعادلة فى شيت ديسمبر الخلية D7 ثم اسحب يسارا و للاسفل
    =MAX(اكتوبر!D7;نوفمبر!D7) اما المعادلة التالية فى شيت المتوسط فى الخلية  D7 ثم اسحب يسارا وللاسفل
    =AVERAGE(اكتوبر!D7;نوفمبر!D7;ديسمبر!D7)  
  8. ابراهيم الحداد's post in نقل البيانات من جدول افقى متغير إلى جدول رأسى متتالى was marked as the answer   
    السلام عليكم ورحمة الله
    لعل هذا الكود ان يفى بالغرض
    Sub ReArrang_Data() Dim ws As Worksheet, C As Range Dim i As Long, p As Long Set ws = Sheets("Sheet1") p = 3 i = 6 Do While i <= 16 For Each C In ws.Range(Cells(4, i), Cells(19, i)) If Len(C) > 0 Then p = p + 1 ws.Cells(p, 2) = C.Value ws.Cells(p, 3) = C.Offset(0, 1).Value End If Next i = i + 2 Loop End Sub  
  9. ابراهيم الحداد's post in معادلة لشيت كنترول was marked as the answer   
    السلام عليكم ورحمة الله
    تم تحويل الارقام الى نسب مئوية حسب ما فهمت من طلبك
    ارجو عدم الاقتراب من الاكواد المدرجة بالملف حتى لا يفسد كل ماعملناه
    لانى وجدت احد الاكواد وقد تم حذفها من محرر الاكواد بالملف
    هذا والله ولى التوفيق
    المعادلة تعديل2 (1).xlsm
  10. ابراهيم الحداد's post in نقل مبالغ من عمود الى عمود اخر عن تلوين الخلية was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم الكود الاتى
    Sub SetlColr() Dim ws As Worksheet Dim LR As Long, C As Range Set ws = Sheets("Sheet1") LR = ws.Range("A" & Rows.Count).End(3).Row For Each C In ws.Range("B3:B" & LR) If C.Value > 0 Then x = C.Interior.ColorIndex If x = 6 Then C.Offset(0, 1) = C.Value C.ClearContents Else Exit Sub End If End If Next End Sub  
  11. ابراهيم الحداد's post in طريقة ترتيب الطلاب رقميا وكتابيا دون القفز في حال وجود مكرر was marked as the answer   
    السلام عليكم ورحمة الله
    الكود الاتى يحسب الترتيب حتى العشرة الاوائل
    Sub AllRanks() Dim ws As Worksheet, j As Long Dim Arr As Variant, k As Double Dim LR As Long, i As Long Dim m As Integer, n As Integer, x As Integer Set ws = Sheets("مسودة الدرجات") LR = ws.Range("R" & Rows.Count).End(3).Row Dim TP() ReDim Arr(1 To LR, 1 To 1) j = 9 Do While j <= LR y = WorksheetFunction.CountIf(ws.Range(ws.Cells(9, "R"), ws.Cells(j, "R")), ws.Cells(j, "R")) If y = 1 Then i = i + 1 Arr(i, 1) = ws.Cells(j, "R") End If j = j + 1 Loop If i <= 10 Then x = WorksheetFunction.Large(Arr, i) End If ReDim TP(1 To i, 1 To 1) For r = 1 To i If Arr(r, 1) >= x Then p = p + 1 TP(p, 1) = Arr(r, 1) End If Next m = 9 Do While m <= LR For n = 1 To i k = WorksheetFunction.Large(TP, n) If ws.Cells(m, "R") = k Then yy = Choose(n, "الاول", "الثانى", "الثالث", "الرابع", "الخامس", _ "السادس", "السابع", "الثامن", "التاسع", "العاشر") If ws.Range("R" & m) <> Empty Then If WorksheetFunction.CountIf(ws.Range("R9:R" & m), ws.Range("R" & m)) > 1 Then yy = yy & " " & "مكرر" ws.Cells(m, "U") = yy Else yy = yy ws.Cells(m, "U") = yy End If End If End If Next m = m + 1 Loop End Sub  
  12. ابراهيم الحداد's post in ترتيب الاسماء حسب المجموع was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم هذا الكود
    Sub Ranking() p = 3 For i = 4 To Range("C" & Rows.Count).End(3).Row On Error Resume Next If Cells(i, "H") > 0 Then p = p + 1 For j = 1 To 2 Cells(p, Choose(j, 14, 15)) = Cells(i, Choose(j, 3, 8)) Next End If Next Range("N4:O" & Range("N" & Rows.Count).End(3).Row).Sort key1:=Range("O4"), _ order1:=xlDescending, key2:=Range("N4"), order2:=xlAscending End Sub  
  13. ابراهيم الحداد's post in ممكن عمل دالة IF بشرط إحتواء جملة على كلمة معينة was marked as the answer   
    السلام عليكم ىورحمة الله
    اجعل المعادلة الاولى هكذا
    =IF(LEFT($C2;5)<>"مرتجع";$D2*$E2;"") و الثانية هكذا
    =IF(LEFT($C2;5)="مرتجع";$D2*$E2;"")  
  14. ابراهيم الحداد's post in كود رسم دوائر حول الحصص was marked as the answer   
    السلام عليكم ورحمة الله
    اليك الكود الثانى
    Sub AddCircles2() Dim Shp As Shape, ws As Worksheet Dim i As Long, j As Long, p As Long Dim C As Range, x As Integer, y As Integer 'DelShap Set ws = Sheets("ورقة1") x = ws.Range("W1").Value i = 13 Do While i <= 20 j = 5 For Each C In ws.Range(Cells(j, i), Cells(13, i)) On Error Resume Next y = InStr(C.Value, "/") If C.Value <> "" And y > 0 Then Set Shp = ActiveSheet.Shapes.AddShape(msoShapeOval, _ C.Left, C.Top, C.Width, C.Height) p = p + 1 Shp.Fill.Visible = msoFalse Shp.Line.Weight = 1.5 Shp.Line.ForeColor.SchemeColor = 10 If p >= x Then Exit Sub End If Next j = j + 2 i = i + 1 Loop End Sub  
  15. ابراهيم الحداد's post in دالة جمع الاقساط المسددة was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم تلك المعادلة
    =SUMIFS($F$14:$F$35;$I$14:$I$35;"مدفوع")  
  16. ابراهيم الحداد's post in ترحيل من مفرق الى سطر واحد was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم الكود التالى بدلا من الكود السابق
    Sub Transfer() Dim ws As Worksheet, Sh As Worksheet Dim Arr As Variant, LR As Long Set ws = Sheets("vi") Set Sh = Sheets("DATA") LR = Sh.Range("B" & Rows.Count).End(3).Row + 1 Arr = Array(ws.Range("B3"), ws.Range("C7"), ws.Range("A6")) Sh.Range("B" & LR).Resize(, 3) = Arr End Sub  
  17. ابراهيم الحداد's post in برجاء المساعدة فى تجميع مواد رسوب الطالب was marked as the answer   
    السلام عليكم و رحمة الله
    اليك الملف
     
    مواد التخلف.xlsx
  18. ابراهيم الحداد's post in تعديل على كود ترحيل الناجحين والراسبين was marked as the answer   
    السلام عليكم ورحمة الله
    اليك تعديل كود ترحيل الناجحين و الراسبين
    اذا شعرت ان تنفيذ الكود يستغرق وقتا طويلا
    يمكنك طلب عمل كود جديد يعتمد على المصفوفات و لكن لضيق الوقت 
    قمت فقط بتعديل الكود المرفق بالملف 
    اما باقى المطلوبات فى وقت لاحق ان شاء الله
    اليك الكود و يجب ربطه بزر لتنفيذه فى اى وقت
    Sub Tarheel() Dim R As Integer, M As Integer, N As Integer Sheets("ناجح").Range("A11:Q1012").Clear Sheets("دور ثانى").Range("A11:R1012").Clear M = 10: N = 10 Application.ScreenUpdating = False Application.DisplayAlerts = False For R = 11 To 1012 If Cells(R, 14) = "ناجح" Then M = M + 1 Range("A" & R).Range("A1:Q1").Copy With Sheets("ناجح") .Range("A" & M).PasteSpecial xlPasteValues .Range("A" & M).PasteSpecial xlPasteFormats .Range("A" & M).Value = M - 10 End With Application.CutCopyMode = False ElseIf Cells(R, 14) = "دور ثانى" Then N = N + 2 Range("A" & R).Range("A1:R1").Copy With Sheets("دور ثانى") .Range("A" & N).PasteSpecial xlPasteValues .Range("A" & N).PasteSpecial xlPasteFormats .Range("A" & N).Value = (N - 10) / 2 End With Application.CutCopyMode = False End If Next MsgBox (" بحمد الله تم ترحيل الناجحين والدور الثانى") Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub  
  19. ابراهيم الحداد's post in مساعدة في دالة إف was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم هذه المعادلة
    =IF(LEFT($G2;2)="10";"ذكر";IF(LEFT($G2;2)="11";"أنثى";"رقم غير صحيح"))  
  20. ابراهيم الحداد's post in المديونية المتبقية was marked as the answer   
    السلام عليكم ورحمة الله
    ضع هذه المعادلة فى الخلية "B" ثم اضغط  Ctrl+Shift+Enter
    ثم اسحب عرضا وطولا
    =IFERROR(INDEX(ورقة1!$B$4:$E$8;SMALL(IF(ورقة1!$E$4:$E$8>0;ROW(ورقة1!$E$4:$E$8));ROW(A1))-3;COLUMN()-1);"")  
  21. ابراهيم الحداد's post in نقل الاسماء من ورقة الي اخري was marked as the answer   
    السلام عليكم ورحمة الله
    اكتب هذه المعادلة فى الخلية "C6"
    =IFERROR(INDEX(msheet!$D$5:$E$82;SMALL(IF(msheet!$D$5:$D$82=$E$3;ROW(msheet!$D$5:$D$82));ROW(A1))-4;2);"") ثم اصغط "CTRL+SHIFT+ENTER"
    ثم اسحب نزولا حتى الخلية "C35"
    ثم اكتب المعادلة التالية فى الخلية "E6"
    =IFERROR(INDEX(msheet!$D$5:$E$82;SMALL(IF(msheet!$D$5:$D$82=$E$3;ROW(msheet!$D$5:$D$82));ROW(A31))-4;2);"") و كر ر ما سبق
  22. ابراهيم الحداد's post in كود ترحيل was marked as the answer   
    السلام عليكم ورحمة الله
    اليك الملف
    ابتدائي2020.xlsm
  23. ابراهيم الحداد's post in طلب كود ترحيل بدلالة صف وعنوان عمود was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم هذا الكود
    Sub Work_Day() Dim ws As Worksheet, Sh As Worksheet Dim C As Range, LR As Long, i As Long Dim x As Integer, Dy As String Dim WF As Object Set ws = Sheets("ورقة2") Set Sh = Sheets("ورقة1") Set WF = WorksheetFunction LR = ws.Range("A" & Rows.Count).End(3).Row i = 2 Do While i <= LR For Each C In Sh.Range("A2:A" & ws.Range("A" & Rows.Count).End(3).Row) If ws.Cells(i, 1) = C.Value Then Dy = C.Offset(0, 1) x = WF.Match(Dy, ws.Range("B1:G1"), 0) ws.Cells(i, 1).Offset(0, x) = Dy End If Next i = i + 1 Loop End Sub  
  24. ابراهيم الحداد's post in حذف صور من كل صفحة من صفحات ملف الاكسل was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم الكود التالى 
    الرقم السرى 123 يمكنك تغييره كما شئت
    Sub Delpics() Dim ws As Worksheet, Pic As Object Dim InBox As String InBox = InputBox(" يرجى ادخال كلمة السر", "ازالة الصور ") For Each ws In Worksheets For Each Pic In ws.Pictures If InBox = "123" Then Pic.Delete Else MsgBox "ارجو وضع الرقم السرى الصحيح ...حاول مرة ثانية" Exit Sub End If Next Next End Sub  
  25. ابراهيم الحداد's post in كود اضافه صوره معينة الى كل صفحات الملف was marked as the answer   
    السلام عليكم ورحمة الله
    استخدم هذا الكود
    Sub addpics() Dim ws As Worksheet For Each ws In Worksheets ws.Pictures.Insert ("D:\عنوان.jpg") Next End Sub  
×
×
  • اضف...

Important Information