الموسطي قام بنشر فبراير 5, 2025 قام بنشر فبراير 5, 2025 لدي ملف إكسل به وفيه أرصدة عملاء تتغير كل وقت بحسب سدادات العملاء ومسحوباتهم فأريد أن يتم آليا ترتيب تنازلي إما دالة أو كود عملاء.xlsx
hegazee قام بنشر فبراير 5, 2025 قام بنشر فبراير 5, 2025 تفضل أخي الكريم مع التحكم بنوع الفرز و البيانات التي تريد فرزها فرز عملاء.xlsm 1
الموسطي قام بنشر فبراير 6, 2025 الكاتب قام بنشر فبراير 6, 2025 تسلم يا أخي الحبيب وشكرا على مشاركتك، بس الكود ما اشتغل معي تأتيني رسالة من الإكسل أن هناك خطأ في الكود وصورة الرسالة مرفقة لكن أنا أشتي زر لا يتعبني وتأتي لي منه رسائل وخيارات في كل مرة بل أريد عند النقر عليه مباشرة يقوم بعملية الفرز وتكون الخيارات داخل الكود نفسه في إعداداته مش كل مرة أحتاج أحدد النطاق والعمود ونوع الفرز يا ريت تتجاوب معي يا غالي 1
عبدالله بشير عبدالله قام بنشر فبراير 6, 2025 قام بنشر فبراير 6, 2025 السلام عليكم اذا تقصد الفرز من الاعلى رصيد الى الاقل رصيد استخدم الكود التالي Sub ترتيب_تنازلي() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("ورقة1") With ws .Range("A4:E6").Sort Key1:=.Range("E4:E6"), Order1:=xlDescending, Header:=xlNo End With End Sub ويمكنك نعديل نطاق البيانات من الكود الملف عملاء.xlsb 1
محمد هشام. قام بنشر فبراير 6, 2025 قام بنشر فبراير 6, 2025 (معدل) جرب هدا Option Explicit Sub SortData() Dim WS As Worksheet: Set WS = Sheets("ورقة1") Dim lastRow As Long, tmp As Long, col As Variant Application.ScreenUpdating = False tmp = 0 On Error Resume Next tmp = WS.Columns("B").Find("الإجمالي", LookIn:=xlValues, LookAt:=xlWhole).Row On Error GoTo 0 If tmp > 0 Then lastRow = tmp - 1 WS.Range("B4:E" & lastRow).Sort Key1:=WS.Range("E4:E" & lastRow), Order1:=xlAscending, Header:=xlNo End If For Each col In Array("C", "D", "E") With WS.Cells(tmp, col) .Formula = "=SUM(" & col & "4:" & col & lastRow & ")": .Value = .Value End With Next col Application.ScreenUpdating = True End Sub فرز عملاء.xlsm تم تعديل فبراير 6, 2025 بواسطه محمد هشام. 1
الموسطي قام بنشر فبراير 9, 2025 الكاتب قام بنشر فبراير 9, 2025 أشكر الخبراء في الإكسل: الأستاذ محمد هشام وعبد الله بشير على تفاعلهم ومشاركتهم وهي ما أريد فالمشاركة رائعة لكن لم أستطع تطبيق الكود على ملفي الخاص فأرجو منكما تطبيق الكود على ملفي علما بأن الحقل المراد فرزه هو l6-l80 مديونية 2025م.xls
الموسطي قام بنشر فبراير 9, 2025 الكاتب قام بنشر فبراير 9, 2025 أخي الخبير محمد هشام حاولت أطبق الكود على ملفي فكانت النتيجة تجي كل مرة بفرز وليس الفرز صحيحا فلو تتكرم وتعطينا من وقتك وتصحح لي الكود الذي نقلته مديونية 2025م.xls
عبدالله بشير عبدالله قام بنشر فبراير 9, 2025 قام بنشر فبراير 9, 2025 (معدل) 3 ساعات مضت, الموسطي said: أشكر الخبراء في الإكسل: الأستاذ محمد هشام وعبد الله بشير على تفاعلهم ومشاركتهم وهي ما أريد فالمشاركة رائعة لكن لم أستطع تطبيق الكود على ملفي الخاص فأرجو منكما تطبيق الكود على ملفي علما بأن الحقل المراد فرزه هو l6-l80 جرب الملف تم العمل على ورقة1 مديونية 2025م.xls تم تعديل فبراير 9, 2025 بواسطه عبدالله بشير عبدالله
الموسطي قام بنشر فبراير 10, 2025 الكاتب قام بنشر فبراير 10, 2025 الملاحظ أن الكود لا يعمل حيث أن العمود المراد فرزه هو l6-l75 ولكن لا يتم الفرز حيث هناك أرقام كبيرة تحت وأرقام مصفرة بالوسط فأرجو التعديل على الكود
الموسطي قام بنشر فبراير 10, 2025 الكاتب قام بنشر فبراير 10, 2025 حاولت أنسخ نفس الكود وأعدل عليه النطاق وعمود الفرز لكن لا يعمل وتظهر لي رسالة من برمجة الكود المصنف4.xlsx
عبدالله بشير عبدالله قام بنشر فبراير 10, 2025 قام بنشر فبراير 10, 2025 (معدل) اخونا الفاضل الكود الظاهر في الصورة ليس هو الكود الموجود في اخر ملف ارفقته اليك المشكلة انك كل مرة ترفق ملف مخنلف عن الاخر وهذا يلزم التعديل على الكود هذا طلبك في مشاركتك ما قيل الاخيرة في 9/2/2025 at 09:57, الموسطي said: أشكر الخبراء في الإكسل: الأستاذ محمد هشام وعبد الله بشير على تفاعلهم ومشاركتهم وهي ما أريد فالمشاركة رائعة لكن لم أستطع تطبيق الكود على ملفي الخاص فأرجو منكما تطبيق الكود على ملفي علما بأن الحقل المراد فرزه هو l6-l80 كان طلبك فرز البيانات l6-l80 تم ارفاق ملف بالكود يقوم بالفرز حسب النطاق والعمود ثم تغير طلبك في ملفك الاخير تطاق فرز البيانات l8-l73 لان الصف 74 اصيح مجاميع للاعمدة واصبح الصف 6 رؤوس عناوين وبه خلايا مدمجة فمن الطبيعى ظهور الخطأ اليك كود يتعامل مع اخر ملف ارفقته انت ويعمل جيدا I8:I73 Sub SortData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("ورقة1") With ws.Sort .SortFields.Clear .SortFields.Add Key:=ws.Range("I8:I73"), Order:=xlDescending .SetRange ws.Range("A8:AH73") .Header = xlNo .Apply End With End Sub الملف المصنف4.xlsb تم تعديل فبراير 10, 2025 بواسطه عبدالله بشير عبدالله
الموسطي قام بنشر فبراير 11, 2025 الكاتب قام بنشر فبراير 11, 2025 تسلم أستاذنا الغالي هل لي بسؤال أخير: كيف أستطيع نقل كود من ملف إلى آخر ويختلف معه في الامتداد وعمود الفرز؟ 1
تمت الإجابة عبدالله بشير عبدالله قام بنشر فبراير 11, 2025 تمت الإجابة قام بنشر فبراير 11, 2025 (معدل) السلام عليكم 8 ساعات مضت, الموسطي said: هل لي بسؤال أخير: كيف أستطيع نقل كود من ملف إلى آخر ويختلف معه في الامتداد وعمود الفرز؟ ساشرح لك بمثال لنفرض ان الملف 1 به الكود الثالي Sub SortData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("ورقة1") With ws.Sort .SortFields.Clear .SortFields.Add Key:=ws.Range("I8:I73"), Order:=xlDescending .SetRange ws.Range("A8:AH73") .Header = xlNo .Apply End With End Sub وتريد تقل الكود الى الملف 2 حيث تريد عمود الفرز مثلا العمود M واول صف به بيانات هو الصف 10 واخر صف به بيانات هو الصف 120 واول عمود به بيانات B واخر عمود به بيانات هو العمود BA الخطوات :- تعديل الكود ليتناسب مع التغيرات في الملف 2 السطر في الكود .SortFields.Add Key:=ws.Range("I8:I73"), Order:=xlDescending السطر السابق خاص بالعمود المطلوب فرزه I8 تعنى بداية فرز البيانات الصف 8 للعمود I تهاية الفرز لتفس العمود الصف 73 الان تريد ان تعدل في السطر حسب الملف2 الملف 2 المطلوب عمود الفرز M واول صف به بيانات هو الصف 10 فتكتب بدل M10 -I8 واخر صف 120 فنستبدل M120 - I73 فيكون السطر النهائي .SortFields.Add Key:=ws.Range("M10:M120"), Order:=xlDescending وكذلك يتم التغيير في السطر .SetRange ws.Range("A8:AH73") هذا النطاق يحتوي على جميع الخلايا من العمود A إلى AH ومن الصف 8 إلى 73. ,والملف 2 الخلايا من العمود Bإلى BAومن الصف 10إلى 120. فيصبح SetRange ws.Range("B10:BA120") فيصبح الكود النهائي Sub SortData() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("ورقة1") With ws.Sort .SortFields.Clear .SortFields.Add Key:=ws.Range("M10:M120"), Order:=xlDescending .SetRange ws.Range("B10:BA120") .Header = xlNo .Apply End With End Sub بالتوفيق تم تعديل فبراير 11, 2025 بواسطه عبدالله بشير عبدالله 3
الموسطي قام بنشر فبراير 13, 2025 الكاتب قام بنشر فبراير 13, 2025 تسلم بس هل لا بد من تغيير اسم الكود من الملف 1و2
عبدالله بشير عبدالله قام بنشر فبراير 13, 2025 قام بنشر فبراير 13, 2025 يتغير اسم الكود في حالة وجود كود اخر بتفس الاسم وعدا ذلك يبقى بنفس الاسم
الموسطي قام بنشر فبراير 17, 2025 الكاتب قام بنشر فبراير 17, 2025 تسلم يا أستاذنا الغالي طيب لو حاولت أغير الكود من الترتيب التنازلي إلى التصاعدي أيش بتغير في صيغة الكود أعلاه؟
عبدالله بشير عبدالله قام بنشر فبراير 17, 2025 قام بنشر فبراير 17, 2025 السلام عليكم استبدل السطر .SortFields.Add Key:=ws.Range("I8:I73"), Order:=xlDescending بهذا السطر .SortFields.Add Key:=ws.Range("I8:I73"), Order:=xlAscending لاحظ الكلمة الاخيرة تغيرت طبعا هذا الترتيب للنطاق I8:I73 بالتوفيق 1
الردود الموصى بها