omhamzh قام بنشر مايو 28, 2020 قام بنشر مايو 28, 2020 السلام عليكم اتمنى مساعدتى بهذه المشاركة ملف مكون من 3 صفحات منه وله وضبط الاسماء بمنه هى التى ب له احتاج موديول اتمكن به من استدعاء البيانات الى صفحة الضبط بتاريح من وتاريخ حتى هل اجد لديكم حل مع الشكر والعرفان بالجميل منه وله وتقرير بتاريخ من الى.xlsm 1
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 هذا الكود يقوم بما يلزم تغيير اسماء الصفحات الى اللغة الأجنبية لحسن نسخ الكود ولصقه Option Explicit Sub Extarct_Data() Rem Created By Salim Hasbaya on 29/5/2020 Dim M As Worksheet, L As Worksheet, R As Worksheet Dim Rg_M As Range, Rg_L As Range Dim I%, Lr_M%, Lr_L%, RO% Dim St_Date As Date, End_Date As Date Set M = Sheets("Minho"): Set L = Sheets("Laho") Set R = Sheets("Repport") Lr_M = M.Cells(Rows.Count, 1).End(3).Row Lr_L = L.Cells(Rows.Count, 1).End(3).Row R.Range("B2").Resize(25, 2).ClearContents If Not IsDate(R.Range("D2")) Or Not IsDate(R.Range("D2")) Then _ MsgBox "Type Please Correct Dates In The Cells D2 and E2 ": Exit Sub St_Date = Application.Min(R.Range("D2:E2")) End_Date = Application.Max(R.Range("D2:E2")) '++++++++++++++++++++++++++++++++++++++++ With M .Range("A2:AC" & Lr_M).Interior.ColorIndex = xlNone RO = 2 For I = 2 To Lr_M If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 R.Cells(RO, 2) = Application.Sum(.Cells(I, 4).Resize(, 26)) RO = RO + 1 End If Next I End With '++++++++++++++++++++++++++++++++ With L .Range("A2:AC" & Lr_L).Interior.ColorIndex = xlNone RO = 2 For I = 2 To Lr_L If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 R.Cells(RO, 3) = Application.Sum(.Cells(I, 4).Resize(, 26)) RO = RO + 1 End If Next I End With End Sub الملف مرفق From_To.xlsm 2
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 استاذ سليم المبجل مشكور جداااااااااااا تم توضيح المطلوب بالمرفق مع الشكر الوفير From_To.xlsm
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 كان من الواجب التوضيح في بادىء الأمر لعدم تضييع الوقت بأمور فائدة منها الكود الجديد Option Explicit Sub Extarct_Data_By_Columns() Rem Created By Salim Hasbaya on 29/5/2020 Dim M As Worksheet, L As Worksheet, R As Worksheet Dim Rg_M As Range, Rg_L As Range Dim I%, Lr_M%, Lr_L%, RO%, it Dim St_Date As Date, End_Date As Date Dim arr, My_sum# Set M = Sheets("Minho"): Set L = Sheets("Laho") Set R = Sheets("Repport") Lr_M = M.Cells(Rows.Count, 1).End(3).Row Lr_L = L.Cells(Rows.Count, 1).End(3).Row R.Range("B2").Resize(25, 2).ClearContents If Not IsDate(R.Range("D2")) Or Not IsDate(R.Range("D2")) Then _ MsgBox "Type Please Correct Dates In The Cells D2 and E2 ": Exit Sub St_Date = Application.Min(R.Range("D2:E2")) End_Date = Application.Max(R.Range("D2:E2")) ReDim arr(1 To 25) For I = 1 To 25 arr(I) = I + 3 Next '++++++++++++++++++++++++++++++++++++++++ With M .Range("A2:AC" & Lr_M).Interior.ColorIndex = xlNone For I = 2 To Lr_M If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 End If Next I End With ''++++++++++++++++++++++++++++++++ With L .Range("A2:AC" & Lr_L).Interior.ColorIndex = xlNone For I = 2 To Lr_L If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 End If Next I End With RO = 2 With M For Each it In arr For I = 2 To Lr_M If .Cells(I, it).Interior.ColorIndex = 6 Then My_sum = My_sum + _ IIf(IsNumeric(.Cells(I, it)), .Cells(I, it), 0) End If Next I R.Cells(RO, 2) = IIf(My_sum > 0, My_sum, vbNullString) My_sum = 0: RO = RO + 1 Next it End With '++++++++++++++++++++++++++++++++++++ RO = 2: My_sum = 0 With L For Each it In arr For I = 2 To Lr_M If .Cells(I, it).Interior.ColorIndex = 6 Then My_sum = My_sum + _ IIf(IsNumeric(.Cells(I, it)), .Cells(I, it), 0) End If Next R.Cells(RO, 3) = IIf(My_sum > 0, My_sum, vbNullString) My_sum = 0: RO = RO + 1 Next End With '++++++++++++++++++++++++++++++++++++ End Sub المرفق من جديد (الماكرو الاول ما زال يعمل اذا لزم الأمر باستعماله) From_To Row_Col.xlsm 2 1
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 اتقدم بخالص الشكر الجزيل لحضرتك فى مشكلة صغيرة التقرير لايستدعى البيانات لاعمدة متفرقة التقرير يعمل إذا كانت البيانات مرصوصة احتاج أن يستدعى البيانات إذا كانت البيانات فى اى عمود ليس شرط الترتيب خالص تحياتي أى أن البيان فى التقرير يكون فيه كل اسماء الأعمدة وإذا كان بالعمود رقم يستدعى مع خالص الشكر
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 تم التعديل ملاحظة (أرقام الأعمدة يمكن ان لا تتطابق في صفخات Minho & Laha )لذلك يجب ادراج عامود اضافي لهذه الأرقام في صفحة Repport ) لا وقت لدي لعمل ذلك (تركت أرقام الأعمدة للصفخة Minho) Option Explicit Sub Extact_Data_By_Columns() Rem Created By Salim Hasbaya on 29/5/2020 Application.ScreenUpdating = False Dim M As Worksheet, L As Worksheet, R As Worksheet Dim Rg_M As Range, Rg_L As Range Dim I%, Lr_M%, Lr_L%, RO%, it Dim St_Date As Date, End_Date As Date Dim arr, My_sum#, My_count% Set M = Sheets("Minho"): Set L = Sheets("Laho") Set R = Sheets("Repport") Lr_M = M.Cells(Rows.Count, 1).End(3).Row Lr_L = L.Cells(Rows.Count, 1).End(3).Row R.Range("A2").Resize(26, 3).ClearContents If Not IsDate(R.Range("D2")) Or Not IsDate(R.Range("D2")) Then _ MsgBox "Type Please Correct Dates In The Cells D2 and E2 ": GoTo Leave_Me_Olone St_Date = Application.Min(R.Range("D2:E2")) End_Date = Application.Max(R.Range("D2:E2")) ReDim arr(1 To 26) For I = 1 To 26 arr(I) = I Next '++++++++++++++++++++++++++++++++++++++++ With M .Range("A2:AC" & Lr_M).Interior.ColorIndex = xlNone For I = 2 To Lr_M If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 End If Next I End With ''++++++++++++++++++++++++++++++++ With L .Range("A2:AC" & Lr_L).Interior.ColorIndex = xlNone For I = 2 To Lr_L If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 End If Next I End With RO = 2 '++++++++++++++++++++++++++++++++++++++++ With M For Each it In arr My_count = Application.CountA(.Cells(2, it + 3).Resize(Lr_M - 1)) If My_count = 0 Then GoTo NexT_it For I = 2 To Lr_M If .Cells(I, it + 3).Interior.ColorIndex = 6 Then My_sum = My_sum + _ IIf(IsNumeric(.Cells(I, it + 3)), .Cells(I, it + 3), 0) If .Cells(I, it + 3) <> vbNullString Then .Cells(I, it + 3).Interior.ColorIndex = 35 End If End If Next I R.Cells(RO, 1) = it: R.Cells(RO, 2) = IIf(My_sum <> 0, My_sum, vbNullString) My_sum = 0: RO = RO + 1 NexT_it: Next it End With '++++++++++++++++++++++++++++++++++++ RO = 2: My_sum = 0 With L For Each it In arr My_count = Application.CountA(.Cells(2, it + 3).Resize(Lr_L - 1)) If My_count = 0 Then GoTo NexT_itm For I = 2 To Lr_L If .Cells(I, it + 3).Interior.ColorIndex = 6 Then My_sum = My_sum + _ IIf(IsNumeric(.Cells(I, it + 3)), .Cells(I, it + 3), 0) If .Cells(I, it + 3) <> vbNullString Then .Cells(I, it + 3).Interior.ColorIndex = 35 End If End If Next I R.Cells(RO, 3) = IIf(My_sum <> 0, My_sum, vbNullString) My_sum = 0: RO = RO + 1 NexT_itm: Next it End With '++++++++++++++++++++++++++++++++++++ Leave_Me_Olone: Application.ScreenUpdating = True End Sub الملف( للمرة الثّالثة) From_To Row_Column_1.xlsm 3
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 اشكرك جدااااا ممكن حضرتك توضح لى ابن اضع اسماء الإعادة فى التقرير اعمل عمود جديد قبل a شكراااا لسعة صدرك يا استاذ سليم حياك الله الكود يعمل 100% فى منه أما له مش عارفة ايه المشكلة مع خالص تحياتي لك اخي فى له يستدعى البيانات بس اسم العمود بيكون غلط فى الريبورت
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 ممكن تلافي مشكلة الأعمدة بأدراج الأرقام غلى شكل X/y حيث تدل X على الصفحة "Minho" و y تدل على الصفخة "Laho" و في حال كان الرقم منفرداً يكون في الصفحة "Minho" تعديل الكود Option Explicit Sub Extact_Data_By_Columns() Rem Created By Salim Hasbaya on 29/5/2020 Application.ScreenUpdating = False Dim M As Worksheet, L As Worksheet, R As Worksheet Dim Rg_M As Range, Rg_L As Range Dim I%, Lr_M%, Lr_L%, RO%, it Dim St_Date As Date, End_Date As Date Dim arr, My_sum#, My_count% Set M = Sheets("Minho"): Set L = Sheets("Laho") Set R = Sheets("Repport") Lr_M = M.Cells(Rows.Count, 1).End(3).Row Lr_L = L.Cells(Rows.Count, 1).End(3).Row R.Range("A2").Resize(26, 3).ClearContents If Not IsDate(R.Range("D2")) Or Not IsDate(R.Range("D2")) Then _ MsgBox "Type Please Correct Dates In The Cells D2 and E2 ": GoTo Leave_Me_Olone St_Date = Application.Min(R.Range("D2:E2")) End_Date = Application.Max(R.Range("D2:E2")) ReDim arr(1 To 26) For I = 1 To 26 arr(I) = I Next '++++++++++++++++++++++++++++++++++++++++ With M .Range("A2:AC" & Lr_M).Interior.ColorIndex = xlNone For I = 2 To Lr_M If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 End If Next I End With ''++++++++++++++++++++++++++++++++ With L .Range("A2:AC" & Lr_L).Interior.ColorIndex = xlNone For I = 2 To Lr_L If .Cells(I, 1) <= End_Date _ And .Cells(I, 1) >= St_Date Then .Cells(I, 1).Resize(, 29).Interior.ColorIndex = 6 End If Next I End With RO = 2 '++++++++++++++++++++++++++++++++++++++++ With M For Each it In arr My_count = Application.CountA(.Cells(2, it + 3).Resize(Lr_M - 1)) If My_count = 0 Then GoTo NexT_it For I = 2 To Lr_M If .Cells(I, it + 3).Interior.ColorIndex = 6 Then My_sum = My_sum + _ IIf(IsNumeric(.Cells(I, it + 3)), .Cells(I, it + 3), 0) If .Cells(I, it + 3) <> vbNullString Then .Cells(I, it + 3).Interior.ColorIndex = 35 End If End If Next I R.Cells(RO, 1) = it: R.Cells(RO, 2) = _ IIf(My_sum <> 0, My_sum, vbNullString) My_sum = 0: RO = RO + 1 NexT_it: Next it End With '++++++++++++++++++++++++++++++++++++ RO = 2: My_sum = 0 With L For Each it In arr My_count = Application.CountA(.Cells(2, it + 3).Resize(Lr_L - 1)) If My_count = 0 Then GoTo NexT_itm For I = 2 To Lr_L If .Cells(I, it + 3).Interior.ColorIndex = 6 Then My_sum = My_sum + _ IIf(IsNumeric(.Cells(I, it + 3)), .Cells(I, it + 3), 0) If .Cells(I, it + 3) <> vbNullString Then .Cells(I, it + 3).Interior.ColorIndex = 35 End If End If Next I R.Cells(RO, 1) = _ IIf(R.Cells(RO, 1) = vbNullString, it, it & " \ " & R.Cells(RO, 1)) R.Cells(RO, 3) = _ IIf(My_sum <> 0, My_sum, vbNullString) My_sum = 0: RO = RO + 1 NexT_itm: Next it End With '++++++++++++++++++++++++++++++++++++ Leave_Me_Olone: Application.ScreenUpdating = True End Sub 2
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 اسفة استاذ سليم اوضحت لحضرتك بالمرفق البيان اسم الاعمدة ثابتة فى منه وله لا تتغير المطلوب استدعاء المبالغ مجمعة امام كل عمود سواء منه او له الكود يستدعى البيانات وبيكتب فى خانى البيان 1/2 العمود منه وله هذه النقطة احتاج تعديلها تثبيت اسماء الاعمدة وهى من 1 الى 25 فى عمود اسمه البيان فى التقرير وما يستدعى فقط المبالغ من الصفحتين امام اسم العمود شكرا جزيل منه وله وتقرير بتاريخ من الى.xlsm
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 تم التعديل (بالمعادلات صعبة قوي) From_To Rows_Columns_Adv.xlsm 2
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 انا مش عارفة اشكر حضرتك اد ايه لسعة صدرك تم ارفاق نموذج موضح بالمعادلات لما يقوم به التقرير لكل التواربخ والمطلوب عمل الاستدعاء بنفس الطريقة لكل تاريخ سترك الله وحفظك انا احتاج هذا التقرير لعمل ضبط يومى لليوم شكرا لحضرتك منه وله وتقرير بتاريخ من الى.xlsm
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 للمرة الالف ( عدم تسمية الأوراق باللغة العربية) صجيج ان لغتنتا هي لغة القرآن الكريم ولغة الضاد ومن أجمل لغات العالم ونحن نفتخر فيها لكن للأسف لا تصلخ 100% للمعادلات والأكواد في اكسل (نسبة الخطأ تتعدى ال 90%) جربي كتابة اسم اي ورقة باللغة العربية وانظري مذا يجري تم حل الموضوع بالمعادلات (المعادلات محمية / ضد الكتابة فوقها / لعدم العيث بها عن طريق الخطا زلكنها ليست محمية ضد الحذف) المعادلة في الخلية C3 مع (Ctl+Shift+Enter) والسحب نزولاُ حتى الخلية C25 و لذلك الأمر بالنسبة للخلية D3 مع تغيير اسم الصفحة داخل المعادلة =SUM((Minho!$A$2:$A$1000>=$E$2)*(Minho!$A$2:$A$1000<=$F$2)*(INDIRECT("Minho!"&ADDRESS(2,(MATCH($A3,Minho!$A$1:$AA$1)),1)&":"&ADDRESS(1000,(MATCH($A3,Minho!$A$1:$AA$1)),1)))) With_formula.xlsm 2
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 اشكر حضرتك جدااااااااااااااااااا وتم الموضوع تمام هذا هو المطلوب حضرتك عبقرى والله ماشاء الله عليك شكر ا جزيل الشكر اسال الله العظيم رب العرش العظيم ان يجعله بميزان حسناتك ممكن استثنى السطر الذى يكتب فيه المجموع فى صفحة minho وlaho من المعادلة الجمع يعنى ما يتجمعش معانا بالمجموع مع الشكر
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 لا أرى اي كلمة محموع في minho و لا في laho 2
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 سوف اكتبها واجمع الشهر راسى سأكتب التاريخ 30/5/2020 المجموع واعمل معادلة جمع واجمع الاعمدة راسيا فى هذا الصف اخرالشهر اكرر شكرى لحضرتك منه وله وتقرير بتاريخ من الى.xlsm
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 لا تكتبي مجموع بل Sum او اي شيء احر باللغة الاجنبية Summation مثلاً على كل حال كتابة اي شيء لا يكون تاريخاً يتم تجاهله 2
omhamzh قام بنشر مايو 29, 2020 الكاتب قام بنشر مايو 29, 2020 صح تمام اشكرك استاذ سليم حضرتك درة المنتدى فعلا خدوم جداااا وشاطر جداا اشكرك واتمنى تساعدنى فى مشاركتى اسباب توقف الكود عن العمل بعد نقل كل ما بالفورم الى صفحة مع تحياتى اختك فى الله omhamzh.xlsm 1
سليم حاصبيا قام بنشر مايو 29, 2020 قام بنشر مايو 29, 2020 أولاً لم أر أي اعجاب لأي رد على موضوعاتك فهل النقر بزر الماوس على اعجاب شيء يأخذ وقتاً ثانيا أنا لا اتعامل مع اليوزرفورم (خبرتي متواضعة بهذا الشأن) ثالثاً يرجى ادراج المشاركة الأخيرة في موضوع مستقل لعل احدهم(من له الخبرة الواسعة في اليوزر) يريد ان يشارك في الأجابة 3
سليم حاصبيا قام بنشر مايو 30, 2020 قام بنشر مايو 30, 2020 ضعي مكان 1 2 3 4.... الأسماء الجديدة للأعمدة (بالضبط دون مسافات زائدة او ناقصة أو تغيير بالخط Capital & Small) 1
سليم حاصبيا قام بنشر مايو 30, 2020 قام بنشر مايو 30, 2020 ارفعي ملف فيه القليل من البيانات (و إن كانت عشوائية) صفين لا تكفي لمعاينة عمل معادلة (10 صفوف اقل شيء) المعادلات في الملف الذي رفعته لك سابقاً محمية لعدم العيث بها عن طريق الخطأ - لذلك لا تستطعين التعديل عليها بينما في اي خلية اخرى يمنكنك عمل اي شيء تم النعديل على الأسماء المعادلات تعمل بشكل ممتاز في الملف الجدبد المرفق من قبلي (حسب الصورة) مرفق ملف جديد للتوضيح With_formula_New.xlsm
omhamzh قام بنشر مايو 30, 2020 الكاتب قام بنشر مايو 30, 2020 والله العظيم والله العظيم انا مش قصدى اضايق حضرتك نفس المشكلة بعد مسح البيانات فى الصفحتين وعمل تعديل لأول اربع أعمدة بأى اسماء ونفس الاسماء كما هى فى الريبورت المعادلات أظهرت خطأ وايضا محمية ومش عارفة اعمل ايه شكرا جزيلا لك اخي الكريم
أفضل إجابة سليم حاصبيا قام بنشر مايو 30, 2020 أفضل إجابة قام بنشر مايو 30, 2020 تم التعديل على الملف بواسطة معادلة في العامود الأول بمجرد تغيير اي اسم في الشيت Minho فقط يتم التغيير في كل النطاقات و تتسري المعادلات الباقية كما تريدين الصورة المرفقة توضح ذلك أكرر التغيير في Minho فقط الملف مرفق للتجربة With_formula_New1.xlsm
omhamzh قام بنشر مايو 30, 2020 الكاتب قام بنشر مايو 30, 2020 والله انا هعيط من الاحراج انا عملت كل حاجة تمام والمعادلات بتعاندنى وانا عارفة أن المنتدى هيغضب من طلباتى والاستاذ سليم كمان بس حطوا نفسكم مكانى وممكن المشاركات دى تفيد أعضاء آخرين والنبى استحملونى المعادلات فى ريبورت منه بتستدعى مبالغ غلط والمرافق ياكد كلامى With_formula_New1.xlsm
سليم حاصبيا قام بنشر مايو 30, 2020 قام بنشر مايو 30, 2020 با أحتي قلت لك ضعي القليل من البيانات في الشيتات (التواريخ وتعبئة قليل من الصفوف )لمعرفة اين الخطأ و وضع اليد على الجرح انا عندي الملف يعمل بشكل جيد جداً وقد رفعته لك عدة مرات وفي كل مرة يتم التعديل عليه بدون ملف لا يحتوي على بيانات (10 صفوف على الأقل مع تواريح مختلفة) أعتذر عن المساعدة
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.