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

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

الخبراء
  • Posts

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

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

  • Days Won

    14

كل منشورات العضو ابراهيم الحداد

  1. السلام عليكم ورحمة الله فى هذا السطر Controls("TextBox" & j).Text = Cells(ListBox1.List(i, 1), j) تغيير بسيط جدا اجعله هكذا Controls("TextBox" & j).Text = Cells(ListBox1.List(i, 1), j+2) و تنتهى المشكلة
  2. السلام عليكم و رحمة الله ..استخدم المعادلة التالية =IFERROR(INDEX($B$3:$C$20;SMALL(IF($B$3:$B$20=$F12;ROW($B$3:$B$20));COLUMN()-6)-2;2);"-") و لا تنسى الضغط على CTRL+SHIFT+ENTER قبل سحب المعادلة يسارا و لاسفل حتى تعمل معك بشكل جيد هذا و الله ولى التوفيق
  3. السلام عليكم و رحمة الله جرب هذا الكود Sub ConTxtNum() Dim ws As Worksheet, C As Range Dim i As Long, j As Long Dim Arr, Tmp, Txt As String Set ws = Sheets("Sheet1") Application.ScreenUpdating = False For Each C In ws.Range("K6:K" & ws.Range("K" & Rows.Count).End(3).Row) For i = 1 To Len(C) Txt = Mid(C, i, 1) If Txt Like "[0-9]" Or Txt = "0" Then Arr = Arr & Txt Else Arr = Arr & " " End If Next Arr = Application.WorksheetFunction.Trim(Arr) Tmp = Split(Arr, " ") For j = 0 To UBound(Tmp) C.Offset(0, j + 2) = Tmp(j) Arr = "" Next Next Application.ScreenUpdating = True End Sub
  4. السلام عليكم ورحمة الله ..الارقام فى هذا السطر بالكود اجعلها هكذا Fsl = WorksheetFunction.Index(ws.Range("S8:T" & xx + 7), i, 1) يعنى 7 يتحول الى 8 و 6 يتحول الى 7
  5. السلام عليكم ورحمة الله بالنسبة للزر الاول هو لعرض بيانات فصل محدد من القائمة المنسدلة دون طباعة اما الزر الثانى فهو مخصص لعرض الفصول بداية من الفصل الاول حتى الاخير و طباعته مباشرة ..الكود التالى لطباعة ورقة محددة بعد عرضها عن طريق الزر الاول Sub PrnData() ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _ :=True, IgnorePrintAreas:=False End Sub
  6. السلام عليكم ورحمة الله اخى الكريم الكود يقوم بمسح البيانات حتى الصف رقم 49 ..سيتم رفع الملف بعد التعديلات لصعوبة تطبيقها بنفسك قوائم.xlsm
  7. السلام عليكم و رحمة الله تم الغاء شرط العدد 40 سواء بالنسبة للذكور او الاناث و اصبح الشرط هو انتماء التلميذ للفصل و النوع فقط ..هذا و الله ولى التوفيق Sub AdClass() Const K1 = "ذكر": Const K2 = "أنثى" Dim Sh As Worksheet, ws As Worksheet Dim LR As Long, p As Long, q As Long Dim Fsl As String, C As Range Application.ScreenUpdating = False Set Sh = Sheets("بيانات"): Set ws = Sheets("فصول") ws.Range("D10:I49") = "": ws.Range("K10:P49") = "" LR = Sh.Range("E" & Rows.Count).End(3).Row Fsl = ws.Range("O7").Value For Each C In Sh.Range("J10:J" & LR) If C.Value = Fsl And C.Offset(0, -3) = K1 Then p = p + 1 ws.Range("D" & p + 9).Resize(, 6).Value = Sh.Range("D" & C.Row).Resize(, 6).Value ElseIf C.Value = Fsl And C.Offset(0, -3) = K2 Then q = q + 1 ws.Range("K" & q + 9).Resize(, 6).Value = Sh.Range("D" & C.Row).Resize(, 6).Value End If Next Application.ScreenUpdating = True End Sub
  8. السلام عليكم ورحمة الله اخى الكريم جرب هذا الكود ..لو لك طلبات غير و اضحة فى مشاركتك الاولى يرجى توضيحها لآن الملف البببانات فيه غير كافية سواء من ناحية عدد الفصل الواحد او النوع بحيث نتمكن من اختبار الكود جيدا ..ارجو الاجابة بوضوح بعد التجربة ..اليك الكود Sub AdClass() Const K1 = "ذكر": Const K2 = "" Dim Sh As Worksheet, ws As Worksheet Dim Arr As Variant, Tmp As Variant Dim LR As Long, p As Long, i As Long, ii As Long, j As Long Dim Fsl As String, C As Range Application.ScreenUpdating = False Set Sh = Sheets("بيانات"): Set ws = Sheets("فصول") ws.Range("D10:I49") = "": ws.Range("K10:P49") = "" LR = Sh.Range("E" & Rows.Count).End(3).Row Fsl = ws.Range("O7").Value For Each C In Sh.Range("J10:J" & LR) If C.Value = Fsl Then p = p + 1 If p <= 40 Then On Error Resume Next ws.Range("D" & p + 9).Resize(, 6).Value = Sh.Range("D" & C.Row).Resize(, 6).Value Else ws.Range("K" & p - 31).Resize(, 6).Value = Sh.Range("D" & C.Row + 40).Resize(, 6).Value End If End If Next Application.ScreenUpdating =true End Sub
  9. السلام عليكم ورحمة الله استخدم هذا الكود Sub SeaechData() Dim Sh As Worksheet, ws As Worksheet Dim LR As Long, i As Long, C As Range Dim ShNam As String Set Sh = Sheets("ورقة11") For Each ws In Worksheets If ws.Name <> Sh.Name Then LR = ws.Range("A" & Rows.Count).End(3).Row i = 7 Do While Sh.Cells(i, 6) <> "" For Each C In ws.Range("A1:A" & LR) If C.Value = Sh.Cells(i, 6) Then ShNam = ws.Name Sh.Cells(i, 7) = ShNam End If Next i = i + 1 Loop End If Next End Sub
  10. السلام عليكم ورحمة الله ..استبدل هذه العبارة MsgBox .Cells(r, 1) بهذه العبارة x = x & Chr(10) & .Cells(r, 1) و امسح هذه العبارة MsgBox .Cells(r, 1) و قم باولة العلامة من امام هذه العبارة MsgBox x
  11. السلام عليكم و رحمة الله اخى الكريم هى نفس المشكلة فى كل الاكواد لابد من تحديد اسم الشيت الذى تستمد منه البيانات فى الماكرو المسمى FILTERAR_CRITERIO اجعل هذا السطر Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = Range("A" & Z).Value هكذا Me.ListBox1.List(Me.ListBox1.ListCount - 1, 0) = Sheet1.Range("A" & Z).Value و كذلك كل الاسطر التالية و المشابهة له و سيعمل معك الكود بمنتهى الكفاءة
  12. السلام عليكم و رحمة الله ..فى كود الفلترة حول هذه الكلمة ActiveSheet الى Sheet1..و ينتهى الامر باذن الله
  13. السلام عليكم ورحمة الله فى الكود المسمى Public Sub cargar_cambobox ... استبدل هذه العبارة Me.ComboBox1.RowSource = Range("k1:k12").Address بتلك العبارة Me.ComboBox1.List = Sheet1.Range("k1:k12").Value
  14. السلام عليكم و رحمة الله اجعل الكود هكذا Sub y() Dim sumRange As Range, criteriaRange As Range Dim result As Double Dim i As Integer Dim lastrow As Long Dim R As Range Dim criteria As Variant Set criteriaRange = Range("D4:D20") criteria = Array("اجمالي صنف1", "اجمالي صنف2") j = 1 Do While j <= 6 Set sumRange = Range("E4:E20").Offset(0, j - 1) For i = 0 To UBound(criteria) result = WorksheetFunction.Sum(result, WorksheetFunction.SumIfs(sumRange, criteriaRange, criteria(i))) Set R = ActiveSheet.Cells.Find("اجمالي الأصناف", , xlValues, xlWhole) If Not R Is Nothing Then R.Select ActiveCell.Offset(0, j).Select ActiveCell.Value = result Next i result = 0 j = j + 1 Loop Range("D3").Activate End Sub
  15. السلام عليكم و رحمة الله استخدم الاكواد الآتية كلها انسخها و ضعها كما هى Private Sub CommandButton5_Click() Dim ws As Worksheet, C As Range Set ws = Sheets("Sheet1") For Each C In ws.Range("C2:C" & ws.Range("C" & Rows.Count).End(3).Row) If C.Value = Val(Me.TextBox2.Value) Then C.Offset(0, 1).Value = Me.TextBox3.Value End If Next End Sub Private Sub CommandButton6_Click() Unload Me End Sub Private Sub TextBox2_Change() If Len(Me.TextBox2.Value) <> 14 Then Exit Sub Dim a As Single, b As Single, C As Single Dim m As Single, n As Single, cd, sn cd = Val(Me.TextBox2.Value) m = Left(cd, 1) If m = 2 Then n = 19 Else n = 20 End If a = Mid(cd, 2, 2) b = Mid(cd, 4, 2) C = Mid(cd, 6, 2) sn = n & a & "/" & b & "/" & C Me.TextBox3.Value = sn End Sub
  16. السلام عليكم و رحمة الله عذرا اخى الكريم / الجمال لم انتبه لموضوعك هذا عنى الا من ايام قليلة و انا لم اعتد فى منتدى اوفيسنا الا الدخول على قسم الاكسل و بالصدفة و انا ابحث عن عودة عضويتى الضائعة فى المنتدى وجد هذا الموضوع الخاص بى . صراحة استحيت من الرد و خاصة و قد مرت ما يقرب من الثلاثة شهور على هذا الموضوع و لكن اليوم ذكرتنى ادارة المنتدى بهذا الموضوع فلم اجد بدا من الرد حقيقة اخى / الجمال يشرفنى معرفتك و خدمتك فى اى امر تريد و لكن من خلال المنتدى و من قسم الاكسل تحديدا و الخقيقة كثير من الاعضاء سواء فى هذا المنتدى او بعض المنتديات الاخرى طلبوا الاتصال بى او عمل صداقة و كثيرا ما اعتذر لهم . بصراحة لا عمرى و لاخبرتى فى البرمجة تسمح لى بأن اعشم احدا ان اقدم لهم خدمات او عمل صداقات او اتصالات الا من خلال هذا المنتدى العظيم و بيتنا الكبير الذى يجمعنا دائما اعتذر ان كان ردى هذا فيه ما يحبط اى شخص يرى فىٌ غير ذلك هذا و الله ولى التوفيق اخيك / ابراهيم الحداد
  17. السلام عليكم ورحمة الله استخدم المعادلة التالية =OFFSET(البيانات!$A$2;COUNT(البيانات!$A:$A)-1;0)
  18. السلام عليكم و رحمة الله لا اعلم ان كانت المشكلة من التنسيق او وجود بيانات مخفية تجعل البيانات ترحل بعد الصف 387 لتتأكد بنفسك انزل الى الصف 387 و سوف ترى البيانات التى تم ترحيلها لكى يعمل معك الكود بدون مشاكل ..حدد النطاق من B8 الى مثلا G400 مثلا ثم اضغط على زر Delete ليتم مسحها و ينتهى الامر ..ثم اضعط زر الترحيل سترى البيانات و قد رحلت ..هذا و الله ولى التوفيق
  19. السلام عليكم و رحمة الله اتمنى ان يكون هذا ما تصبو اليه Sub try01() Dim r, r2, x, l As Long Dim ws As Worksheet ' [هذه العبارة تم اضافتها حتى يعمل معك الكود من اى ورقة Set ws = Sheets("summare ") ' اسم الورقة التى سوف يتم العمل عليها ws.Range("b7:o1000") = "" ' محو البيانات القديمة x = ThisWorkbook.Sheets.Count ' عدد الشيتات فى الملف r = 7 ' الصف الذى سوف يبدأالعمل من خلاله For i = 3 To x ' ترتيب الشيتات التى سوف يتم استيراد البيانات منها 'اسم الشيت ws.Cells(r, "b") = Sheets(i).Name ' اسماء الشيتات تسجل فى هذا العمود ws.Cells(r, "c") = Sheets(i).Range("c8") ' رقم العقد و الموجود فى هذه الخلية من الشيتات المشار اليها ' عدد الصفوف بالشيت Z = Sheets(i).Cells(Rows.Count, "b").End(xlUp).Row ' آخر صف فى هذا العمود For i2 = 12 To Z ' البداية من الصف 12 حتى الصف 'التاريخ dt = Sheets(i).Cells(i2, "b") ' الاعمدة التى تحتوى على التواريخ التى سيتم جلب البيانات منها For i3 = 4 To 15 ' الاعمدة التى سوف يتم جلب البيانات اليها If Month(ws.Cells(6, i3)) = Month(dt) And Year(ws.Cells(6, i3)) = Year(dt) Then ' شرط استدعاء البيانات ws.Cells(r, i3) = Sheets(i).Cells(i2, "f") + ws.Cells(r, i3) ' الامر بأضافة البيانات End If Next i3 Next i2 r = r + 1 Next i End Sub
  20. السلام عليكم ورحمة الله استخدم هذا الكود Sub SSheet() Dim ws As Worksheet, Data As Worksheet, ShName As String Dim LR As Long, ER As Long, x As Integer Set Data = Sheets("Sheet1") ShName = Data.Range("C3").Text ER = Data.Range("B" & Rows.Count).End(3).Row x = ER - 7 For Each ws In Worksheets If ws.Name = ShName Then LR = ws.Range("B" & Rows.Count).End(3).Row ws.Name = ShName ws.Range("B" & LR + 1).Resize(x, 5) = Data.Range("B8").Resize(x, 5).Value End If Next End Sub
  21. السلام عليكم و رحمة الله لكى يعمل معك الكود التالى لابد من تطابق البيانات التى فى العمود AP مع رؤوس الاعمدة فى الصف الثالث يمكنك مراجعة ذلك باستخدام علامة = بين الخلية فى الصف الثالث و الخلية فى العمود AP اليك الكود Sub TData() Dim ws As Worksheet, LR As Long Dim C As Range, i As Long Dim x As Integer, y As Double Set ws = Sheets("الايرادات") LR = ws.Range("AP" & Rows.Count).End(3).Row i = 5 Do While i <= LR For Each C In ws.Range("B3:AL3") If ws.Range("AP" & i).Value = C.Value Then x = C.Column + 1 y = ws.Cells(i, x).Value ws.Range("AO" & i).Value = y End If Next i = i + 1 Loop End Sub
  22. السلام عليكم و رحمة الله بارك الله فيك اخى الكريم / حسونة لن انسى انك اول من علق على هذه الشكوى و اول من افتتح بابا لحل المشكلة جعلها الله فى ميزان حسناتك
  23. السلام عليكم و رحمة الله استخدم هذا الكود Sub SumThig() Const str1 As String = "اجمالي العملاء", str2 As String = "اجمالي الموردين" Dim LR As Long, i As Long, x As Integer, y As Integer With Sheets("بيانات") LR = .Range("B" & Rows.Count).End(3).Row For i = 3 To LR If .Range("B" & i) = str1 Then x = i ElseIf .Range("B" & i) = str2 Then y = i End If Next .Range("E" & x) = WorksheetFunction.Sum(.Range("E3:E" & x - 1)) .Range("E" & y) = WorksheetFunction.Sum(.Range("E" & x + 1 & ":E" & y - 1)) End With End Sub
  24. السلام عليكم و رخمة الله اخى الكريم / محمد حسن المحمد دائما ما يسعدنى مرورك الكريم و كلماتك العطرة تخيل اننى كنت سأحرم من هذه الصحبة الجميلة و الطيبة و المشاعر الرقيقة و عسى ان تكرهوا شيئا و هو خير لكم
  25. السلام عليكم ورحمة الله بارك الله فيك جمعيا احبتى الآن قد عادت لى عضويتى فعادت الى روحى اشكر الاخوة الاعزاء الاستاذ / حسونة و الاستاذ / على محمد و الاستاذ / محمد طاهر و االشكر الخاص لاخى الاستاذ / محمد عرفة الذى ذكرنى بالايميل القديم و الذى نسيته تماما و الذى من خلاله استطعت الولوج مرة اخرى الى منتدانا الحبيب اخيكم / ابراهيم الحداد
×
×
  • اضف...

Important Information