نجوم المشاركات
Popular Content
Showing content with the highest reputation on 24 ديس, 2020 in all areas
-
3 points
-
جرب هذا الماكرو (حتى لو تكرر الاسم في نفس الصفحة يقوم الماكرو بايجاده مع تلوينه) مثلاً "كريم عفيفى" Sub Data_Sum_1() Dim Res As Worksheet Dim sh As Worksheet Dim ro1%, ro2%, K% Dim F_rg As Range Dim Ar Set Res = Sheets("Result") Ar = Array(0, 0, 0, 0, 0, 0, 0, 0) Res.Range("A3:I3").ClearContents If Res.Cells(1, "K") = vbNullString Then Exit Sub For Each sh In Sheets If sh.Name <> "Result" Then sh.Range("A3:J1000"). _ Interior.ColorIndex = xlNone Set F_rg = sh.Range("A:A"). _ Find(Res.Cells(1, "K"), lookat:=1) If Not F_rg Is Nothing Then ro1 = F_rg.Row: ro2 = ro1 Do sh.Cells(ro2, 1).Resize(, 10). _ Interior.ColorIndex = 35 For K = LBound(Ar) To UBound(Ar) Ar(K) = Ar(K) + Val(sh.Cells(ro2, 3).Offset(, K)) Next Set F_rg = sh.Range("A:A").FindNext(F_rg) ro2 = F_rg.Row If ro1 = ro2 Then Exit Do Loop End If End If Next sh With Res.Cells(3, 1) .Value = Res.Cells(1, "K") .Offset(, 1).Resize(, UBound(Ar) + 1) = Ar End With End Sub الملف مرفق Ihab_summation.xlsm3 points
-
وعليكم السلام 🙂 . . الآن نريد معرفة رقم الزر F5 : Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) MsgBox KeyCode End Sub . وعند فتح النموذج ، نضغط على الزر F5 ، فنحصل على رقمه : . الآن نعود الى الحدث اعلاه ، ونخبر الاكسس ما نريد عمله عند الضغط على الزر F5 (الذي رقمه 116) : حدث النقر على الزر الاحمر "الرسالة Private Sub cmd_F5_Click() MsgBox "السلام عليكم" End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 116 Then Call cmd_F5_Click '<---- ننادي الحدث اعلاه End If End Sub . والنتيجة . جعفر 1315.Press_F5.accdb.zip2 points
-
ربما يكون المطلوب Option Explicit Sub tot() Dim lr, x, to1, to2 Dim Dt1, Dt2 to1 = 0 to2 = 0 Dt1 = [a2] Dt2 = [b2] lr = Cells(Rows.Count, 2).End(3).Row For x = 5 To lr If Cells(x, 3).Text = Range("c2") Then Select Case Cells(x, 2).Value2: Case Dt1 To Dt2 to1 = to1 + Cells(x, 4).Value to2 = to2 + Cells(x, 5).Value End Select End If Next x Range("d2").Value = to1 Range("e2").Value = to2 End Sub2 points
-
2 points
-
رائع اخي وجيه كنت اريد اسنعمال الدالة AGGREGATE لكن قلت في نفسي لعل اصدار الاكسل عند السائل قديم وبالتالي لا توجد هذه الدالة عنده نفس التعليق بالنسبة لـــ الاسماء غير مضبوطة2 points
-
بعد اذن الاستاذ سليم واثراء للموضوع اتفضل الملف لعله يفى رالغرض الاسماء غير مضبوطة عندك فى كتابتها فصحح كتابتها حتى تعمل المعادلات بشكلها الصحيح مقارنة.xlsx2 points
-
2 points
-
السلام عليكم.. في البداية شكرا لكل من قام بالرد على موضوعي السابق في وقتنا الحاضر ارى ان اغلب البرامج في السوق هي من هذا النوع وللأسف لم اجد التفاعل الكبير معها، خصوصا في موضوعي في الأعلى عموما، قمت ببرمجة برنامج صغير لإدارة المخزن، وانتضر منكم التجربة للوقوع على الأخطاء ومحاولة تصحيحها علماً، ان النسخة مؤقتة وسوف تُغلق بعد تصحيح الأخطاء. باسورد فتح البرنامج = 313 تحياتي للجميع. store_manager.rar1 point
-
اذا كان لا بد من الكود Option Explicit Sub My_code() With Range("D2").Resize(, 2) Select Case True Case Range("C2") = vbNullString .Formula = "=SUMPRODUCT(($B$5:$B$50<=MAX($A$2:$B$2))*($B$5:$B$50>=MIN($A$2:$B$2))*D$5:D$50)" Case Else .Formula = "=SUMPRODUCT(($B$5:$B$50<=MAX($A$2:$B$2))*($B$5:$B$50>=MIN($A$2:$B$2))*($C$5:$C$50=$C$2)*D$5:D$50)" End Select .Value = .Value End With End Sub1 point
-
المعدلة تعمل المبلغ =IF($C$2="الكل";SUMIFS(D5:D18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2);SUMIFS(D5:D18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2)) الدين =IF(C2="الكل";SUMIFS(E5:E18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2);SUMIFS(E5:E18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2)) ودي تعديل للكود لاخي حسين مامون للكل Sub tot() Dim lr, x, to1, to2 Dim Dt1, Dt2 to1 = 0 to2 = 0 Dt1 = [a2] Dt2 = [b2] lr = Cells(Rows.Count, 2).End(3).Row If Cells(2, 3) <> "الكل" Then For x = 5 To lr If Cells(x, 3).Text = Range("c2") Then Select Case Cells(x, 2).Value2: Case Dt1 To Dt2 to1 = to1 + Cells(x, 4).Value to2 = to2 + Cells(x, 5).Value End Select End If Next x ElseIf Cells(2, 3) = "الكل" Then For x = 5 To lr Select Case Cells(x, 2).Value2: Case Dt1 To Dt2 to1 = to1 + Cells(x, 4).Value to2 = to2 + Cells(x, 5).Value End Select Next End If Range("d2").Value = to1 Range("e2").Value = to2 End Sub1 point
-
1 point
-
المبلغ =IF(C2="الكل";SUMIFS(D5:D18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2);SUMIFS(D5:D18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2)) الدين =IF(c2="الكل";SUMIFS(E5:E18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2);SUMIFS(E5:E18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2)) تم التعديل1 point
-
المبلغ =IF(C2="الكل";SUMPRODUCT(D5:D18);SUMIFS(D5:D18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2)) الديون =IF(C2="الكل";SUMPRODUCT(E5:E18);SUMIFS(E5:E18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2)) دي للكل1 point
-
المبلغ =SUMIFS(D5:D18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2) الدين =SUMIFS(E5:E18;$B$5:$B$18;">="&$A$2;$B$5:$B$18;"<="&$B$2;$C$5:$C$18;$C$2) اعذرني اختي لم انتبه لموضع التاريخ طريقة اخري1 point
-
بارك الله فى حضرتك استاذ سليم خالص الدعاء لحضرتك والله هل بالامكان تجنب المعادلات بكود من روائع حضرتك اكون ممنونة وشاكرة لحضرتك اسعدك الله بين العباد استاذ ابو القاسم المعادلة لا تعطى نتائج صحيحة بالتاريخ مشكور استاذ سليم حاصبيا المعادلة تعمل ممتازة زادك الله من فضله استاذ حسين مامون بارك الله فيك هذا الكود ممتاز يعمل تمام التمام زادك الله من فضله اشكركم اخوانى الافاضل اسعد الله اوقاتكم بكل خير ان شاء الله اختكم فى الله1 point
-
تسلم على ردك الرائع اخي سليم وجزاك الله خيرا1 point
-
وعليكم السلام 🙂 لجعل برنامجك يعمل على جميع الكمبيوترات : 1. اعمله بأقل اصدارات الاكسس ، مثلا 2003 ، وإلا ، فالبرامج المعمولة على اكسس 2007 فما فوق ، لن تعمل مع الاكسس 2003 ، 2. نصب الاكسس الانجليزي ، ومافي مانع تنصب معاه حزمة اللغة العربية ، 3. جميع اسماء الكائنات (وليس البيانات) يجب ان تكون باللغة الانجليزية ، ومافي مشكلة في ان تكون المسميات Caption باللغة العربية ، 4. لا تكتب في الكود إلا باللغة الانجليزية 🙂 وهذا موضوع شبيه بموضوعك : هل من حل شافى لمشكلة اختلاف اعدادات اللغة بالويندز على الأجهزة المختلفة - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر1 point
-
1- لا تقم بالترقيم لأنة يدرج اوتوماتيكياُ في كل صف (عندما تمتلىء كل الخلايا) 2- اكتب ما تريد في الجدول بما فيه الخلية الخضراء 3- عند الانتهاء اضغط الزر Run Sub Auto_sum() Dim Rg As Range Dim Mmax% Dim ro% ro = Cells(Rows.Count, 1).End(3).Row Mmax = Application.Max(Range("A2:A" & ro)) + 3 Cells(Mmax - 1, 2).Resize(, 5).Interior.ColorIndex = xlNone With Cells(Mmax, "F") .Formula = "=SUM(F3:F" & Mmax - 1 & ")" .Value = "My_Sum : " & .Value .Interior.ColorIndex = 35 End With End Sub Summation.xlsm1 point
-
الاستئناس اي الوناسة لما يشوف أحد نتيجة الدالة وانا كتبتها لعموم من يمر على المشاركة ، وغفلت اني اكاتب استاذ وقامة في هذا المنتدى لذا تتبعت صيغة الخطاب وعدلته .1 point
-
اذكر ان الجدول يجب ان يكون مستقلاً عن كل الخلايا التي لا غلاقة له بها بصفوف فارغة وأعمدة فارغة) اجمع كل الأوراق التي تريدها في Array واحد و اعمل حلقة على هذا الـــ Array Option Explicit Sub Get_Spacial_Data() Dim A As Worksheet Dim sh As Worksheet Dim ar, itm Dim lr%, m%, t%, Mmax% Dim R_copy As Range Set A = Sheets("all") t = 4 If A.Range("A3").CurrentRegion.Rows.Count > 1 Then With A.Range("A3").CurrentRegion.Offset(1). _ Resize(A.Range("A3").CurrentRegion.Rows.Count - 1) .Interior.ColorIndex = xlNone .ClearContents End With End If '+++++++++++++++++++++++++++++++++++++++++ ' Add to the array the Sheets you want ar = Array("1", "2", "3", "4", "5", "6") '++++++++++++++++++++++++++++++++++++++ For Each itm In ar Set sh = Sheets(itm) Set R_copy = sh.Range("A3").CurrentRegion Mmax = R_copy.Rows.Count If Mmax > 1 Then With A.Cells(t, 1) .Resize(, 8).Interior.ColorIndex = 6 .Resize(Mmax - 1, 8).Value = _ sh.Range("A3").CurrentRegion.Offset(1).Resize(Mmax - 1).Value t = t + Mmax - 1 End With End If 'Mmax Next End Sub1 point
-
بارك الله فيك وزادك الله من فضله بالطبع هذه البرامج من البرامج المفيدة والنافعة والهامة والمطلوبة لعدد كبير جداً من الأعضاء ... جعله الله فى ميزان حسناتك ورحم الله والديك1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته بدون ارفاق ملف الاجابة نعم يمكن ذلك لك وافر الاحترام1 point
-
يا اخي كن واضحاً في سؤالك لاستدعاء البيانات من اوراق متعددة الى ورقة واحدة ما هي اوراق المصدر ؟؟؟ و ما هي الورقة الهدف ولم أر الماكرو المذكور في الملف الذي يحتوي على اكثر من Module فأين اريد ان اجده)1 point
-
وعليكم السلام-تم تغيير المعادلة بمعادلة أخرى أخفف منها وليست مصفوفة -تفضل =IFERROR(INDEX($A$2:$A$14,AGGREGATE(15,6,ROW($A$1:$A$14)/(MATCH($A$2:$A$14&$B$2:$B$14,$A$2:$A$14&$B$2:$B$14,0)=ROW($A$1:$A$14)),ROWS($2:2))),"") ترتيب التاريخ1.xlsx1 point
-
جرب هذا الملف 1- يمكن ان تختار اسم واحد أو كل الاسماء 2- الجمع يتم على الأعمدة E و F و I و J من كل صفحة (تم عمل حساب تكرار الاسم في الصفحة الواحدة) 3- يالنسبة للاسم الواحد Sub Data_Sum_1() Dim Res As Worksheet Dim Sh As Worksheet Dim ro1%, ro2%, K% Dim F_rg As Range Dim Ar Set Res = Sheets("Result") Ar = Array(0, 0, 0, 0) If Res.Range("A1").CurrentRegion.Rows.Count > 2 Then Res.Range("A1").CurrentRegion.Offset(2). _ Resize(Res.Range("A1").CurrentRegion.Rows.Count - 2).Clear End If If Res.Cells(2, "H") = vbNullString Then Exit Sub For Each Sh In Sheets If Sh.Name <> "Result" Then Sh.Range("A3:J1000"). _ Interior.ColorIndex = xlNone Set F_rg = Sh.Range("B:B"). _ Find(Res.Cells(2, "H"), lookat:=1) If Not F_rg Is Nothing Then ro1 = F_rg.Row: ro2 = ro1 Do Sh.Cells(ro2, 1).Resize(, 10). _ Interior.ColorIndex = 35 Ar(0) = Ar(0) + Val(Sh.Cells(ro2, 5)) Ar(1) = Ar(1) + Val(Sh.Cells(ro2, 6)) Ar(2) = Ar(2) + Val(Sh.Cells(ro2, 9)) Ar(3) = Ar(3) + Val(Sh.Cells(ro2, 10)) Set F_rg = Sh.Range("B:B").FindNext(F_rg) ro2 = F_rg.Row If ro1 = ro2 Then Exit Do Loop End If End If Next Sh With Res.Cells(3, 1) .Value = 1 .Offset(, 1) = Res.Cells(2, "H") .Offset(, 2).Resize(, UBound(Ar) + 1) = Ar With .Resize(, UBound(Ar) + 3) .Borders.LineStyle = 1 .Font.Size = 14 .Font.Bold = True .InsertIndent 1 .Interior.ColorIndex = 35 End With End With End Sub بالنسبة لكل الاسماء Sub Data_Sum_ALL() Dim Res As Worksheet Dim Sh As Worksheet Dim ro1%, ro2%, K% Dim F_rg As Range Dim Ar Dim OBJ As Object, ky Dim m%, t% Set OBJ = CreateObject("Scripting.Dictionary") Set Res = Sheets("Result") If Res.Range("A1").CurrentRegion.Rows.Count > 2 Then Res.Range("A1").CurrentRegion.Offset(2). _ Resize(Res.Range("A1").CurrentRegion.Rows.Count - 2).Clear End If For Each Sh In Sheets If Sh.Name <> "Result" Then m = 3 Do Until Sh.Cells(m, 2) = vbNullString OBJ(Sh.Cells(m, 2).Value) = vbNullString m = m + 1 Loop End If Next Sh Ar = Array(0, 0, 0, 0) If OBJ.Count Then t = 3 For Each ky In OBJ.keys For Each Sh In Sheets If Sh.Name <> "Result" Then Set F_rg = Sh.Range("B:B").Find(ky, lookat:=1) If Not F_rg Is Nothing Then '+++++++++++++++++++++++ ro1 = F_rg.Row: ro2 = ro1 Do Ar(0) = Ar(0) + Val(Sh.Cells(ro2, 5)) Ar(1) = Ar(1) + Val(Sh.Cells(ro2, 6)) Ar(2) = Ar(2) + Val(Sh.Cells(ro2, 9)) Ar(3) = Ar(3) + Val(Sh.Cells(ro2, 10)) Set F_rg = Sh.Range("B:B").FindNext(F_rg) ro2 = F_rg.Row If ro1 = ro2 Then Exit Do Loop '++++++++++++++++++++++++++ End If 'F_rg End If 'Sh Next Sh Res.Cells(t, 2) = ky Res.Cells(t, 3).Resize(, UBound(Ar) + 1) = Ar Ar = Array(0, 0, 0, 0) t = t + 1 Next ky With Res.Range("A3").Resize(t - 3, 6) .Columns(1).Value = _ Evaluate("Row(1:" & t - 3 & ")") .Borders.LineStyle = 1 .Font.Size = 14 .Font.Bold = True .InsertIndent 1 .Interior.ColorIndex = 35 End With End If 'dic.count End Sub الملف مرفق Ihab_ALL.xlsm1 point
-
السلام عليكم المعادلة المكتوبة في الملف صحيحة (يمكن اختصارها) ولا خلل فيها... بالنسبة للحساب بالآلة الحاسبة لا يمكن أن نعرف كيف قمت بذلك (وأعتقد أن الخظأ في طريقة الحساب)... أما النتيجة فلا يمكن أن تكون سالبة مهما كانت القيم التي اخترتها لأن كلا من الجذر التربيعي (بشرط أن تكون قيمة S أكبر تماما من الصفر) وقيمة العدد النيبيري (e) موجبان دوما.... راجع حساباتك بالآلة الحاسبة مع مراعاة أولية العمليات...1 point
-
ممتاز لكن الاخ بريد ان يكون عدد الصفحات غير محصور بــ 2 فقط1 point
-
لا تحكم على شيء دون ان تتأكد لا حظ عبد الكريم سلام (عدد الساعات لا تتم حسابها) لانك لم تضعها في الجدول في الصفحة Result في الصفحة الأولى : 1- من C7 الى J7 في كل خلية 1 2- من C10 الى J10 في كل خلية 1 في الصفحة الثّانية : 1- من C6 الى J6 في كل خلية 1 2- من C10 الى J10 في كل خلية 1 3- من C13 الى J13 في كل خلية 1 المحموع العام في كل حلية 5 وهذا ما تجده في الصفحة Result Ihab_summation_1.xlsm1 point
-
السلام عليكم ورحمة الله وبركاته بعد اذن اخوي العزيز .. سليم .. تم وضع معادلة .. Ihab_summation.xlsm1 point
-
استاذ سليم بمعنى ان يكون فى اكتر من شيت وترتيب الاعمده مختلف وليست بنفس الترتيب فى كل الشيتات اذا اردت مثلا فى شيت result انا اجمع مثلا الاعمده الخاصه بخانه غبر خاضع وخانه خاضع اسفل خانه الجمله والاعمده الخاصه بخانه اجمالى الاجر والاعمده الخاصه بخانه غير خاضع وبخانه خاضع اسفل خانه الاجر الاضافى والاعمده الخاصه بخانه الضريبه والاعمده الخاصه بخانه الدمغه والاعمده الخاصه بخانه جمله المستحقات Ihab.rar1 point
-
وعليكم السلام-بعد اذن الأستاذ خيماوى ولإثراء الحل يمكنك ايضاً استخدام هذا الكود أو يمكن أيضاً بإستخدام المعادلات وهذه المعادلة للإسم =IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($1:$900)/(LEN($B$1:$B$900)-LEN(SUBSTITUTE($B$1:$B$900,"-",""))+1>=COLUMN($A:$J)),ROW(A1))),"") أما معادلة الكود فتكون كالتالى =IF(H2="","",TRIM(MID(SUBSTITUTE("-"&VLOOKUP(H2,$A$1:$B$900,2,0),"-",REPT(" ",99)),COUNTIF(H$2:H2,H2)*99,99))) Sub Demo() Dim Ary As Variant, Nary As Variant, Sp As Variant Dim r As Long, nr As Long, i As Long Ary = Range("A1").CurrentRegion.Value2 ReDim Nary(1 To UBound(Ary) * 100, 1 To 2) For r = 1 To UBound(Ary) Sp = Split(Ary(r, 2), "-") For i = 0 To UBound(Sp) nr = nr + 1 Nary(nr, 1) = Ary(r, 1) Nary(nr, 2) = Sp(i) Next i Next r Range("E:F").EntireColumn.Value = "" Range("E1").Resize(nr, 2).Value = Nary End Sub جدول بيانات الشراء1.xlsm1 point
-
1 point
-
هديتى برنامج مخزنى و دليل حسابات_ECO2_DuClick_store_ بفورم بحث و اضافه بسم الله الرحمن الرحيم ( رَبَّنَا آتِنَا مِن لَّدُنكَ رَحْمَةً وَهَيِّئْ لَنَا مِنْ أَمْرِنَا رَشَدًا ) تحياتى و ايام مباركه ايام مبشره و هموم راحله يا الله هديتى لكل اعضاء المنتدى برنامج دليل حسابات و مخازن ECO2_DuClick_store مميزات البرنامج ( يمكن تطويعه لاستخدامات اخرى ) كود رقم الصنف تلقائى ارصدة الاصناف تلقائى فورم بحث و اضافه استخراج رصيد حركة الصنف بين تاريخين سهولة البحث عن البنود / الاصناف عند الادخال بحركة اليوميه سهولة التنقل بين الصفحات كود طباعة كارت الصنف و ارصدة الاصناف البرنامج مفتوح المصدر للجميع للاستفاده من الاكواد و المعادلات يمكن التعديل عليه لزيادة نطاق الصفوف بسحب المعادلات يمكن استخدامه للافراد و للشركات لاتنسونا من صالح الدعاء ECO2_DuClick_store اضافة قيمه و سعر.xlsm ECO2_DuClick_store.xlsm1 point
-
هذا الماكرو Private Sub Worksheet_Change(ByVal Target As Range) Dim My_rg As Range Dim Cret As Range Dim Rg_to As Range Const i = 2 Set My_rg = Range("B2:F13") Set Cret = Range("L3:L4") Set Rg_to = Range("J6:M6") Application.EnableEvents = False If Target.Address(0, 0) = "L4" _ And Target.Count = 1 Then My_rg.AdvancedFilter i, Cret, Rg_to End If Application.EnableEvents = True End Sub تم الشرح الماكرو بالتفصيل للتمكن من متابغتة مع امكانية احتصاره الى Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Target.Address(0, 0) = "L4" _ And Target.Count = 1 Then Range("B2:F13").AdvancedFilter 2, _ Range("L3:L4"), Range("J6:M6") End If Application.EnableEvents = True End Sub Bachiri.xlsm1 point
-
وعليكم السلام-تفضل بهذه المعادلة تصل لطلبك =DATEDIF(K8,L8,"y")+DATEDIF(K9,L9,"y")&"years;"&DATEDIF(K8,L8,"ym")+DATEDIF(K9,L9,"ym")&"months;"&DATEDIF(K8,L8,"md")+DATEDIF(K9,L9,"md")&"days" معادلة1 DATEDIF.xlsx1 point
-
ممتاز استاذ مجدى عمل ممتاز جعله الله فى ميزان حسناتك ورحم الله والديك1 point
-
1 point
-
بعد اذن استاذ سليم ولإثراء الموضوع هذا كود أخر Sub FilterRows() Worksheets("Sheet1").Range("A1").AutoFilter Field:=15, Criteria1:="WATE" End Sub ولحذف او اخفاء الفلترة -يمكنك استخدام هذا الكود Sub TurnOFFAutoFilter() Worksheets("Sheet1").AutoFilterMode = False End Sub المصنف1 .xlsm1 point
-
لم افهم شيئاً مما تريد و أين الشيت Result1 point
-
1 point