محمد خليل السيد قام بنشر نوفمبر 30, 2013 الكاتب قام بنشر نوفمبر 30, 2013 (معدل) استاذ/احمد زمان كل الشكر والتقدير على مجهوداتك وصبرك على هذا الحل الرائع واعذرنى عن التاخير فى الرد وذلك بسبب ان الملف لم يستطع جهازى فى العمل او فى المنزل ان يعمل معه الكود حيث يقوم بتهنيج الجهاز ولا يستكمل حتى اضطررت ان اجربه عند صديق لى (وفهمت لماذا قلت لى انك لم تستكمل المعادلة للنهاية) وبالفعل الملف اكثر من رائع وان كنت اطمع بطلب صغير فكرت فيه ولا اعرف ان كان مجزى ام لا وهو :ان اقوم بعمل Delete من العمود D حتى العمود H وبذلك يتبقى لى ثلاثة اعمدة فقط وهى عبارة عن (A الكمية ،B المنتج ،C العميل) قبل تطبيق الكود ،هل سيفيد ذلك ام لا عند تطبيق الكود من حيث السرعة ؟؟ تقبل تحياتى تم تعديل نوفمبر 30, 2013 بواسطه mkh61083
محمد خليل السيد قام بنشر نوفمبر 30, 2013 الكاتب قام بنشر نوفمبر 30, 2013 (معدل) استاذ/عطاء الله اهتمامك ورؤيتك فى الحل بالمعادلات اكثر من رائع ، وقد اعجبنى شخصيا استخدام الدالة ROW فى الحل وقد فكرت ان استخدم الحل بالمعادلات لكن يعيبها ان التقرير سيكون اسبوعيا لكن فكرت ان اثبت شيت مكتوب به المعادلات واترك مساحة للبيانات التى سأقوم بنسخها من تقرير العملاء الى هذا الشيت واريد ان آخذ رأيك فى هذا الحل ؟؟و عندى بعض الاستفسارات : ما فائدة العمود O حيث من الممكن كتابة المعادلة فى العمود C ؟ (وبكده نقلل من تحميل المعادلات) اذا اخذنا العميل الرابع "عينات E1660" كعينة مثلا سنجد ان مسحوباته "1" فى حين انه فى الجدول يساوى صفرا (بصراحة انا فضلت ابحث كتير فى المعادلات علشان اعرف الغلط فين ما اقدرتش اوصل لحاجة ) ماذا لو قومنا بعمل Delete من العمود D حتى العمود H وبذلك يتبقى لى ثلاثة اعمدة فقط وهى عبارة عن (A الكمية ،B المنتج ،C العميل) تحياتى تم تعديل نوفمبر 30, 2013 بواسطه mkh61083
أفضل إجابة احمدزمان قام بنشر ديسمبر 1, 2013 أفضل إجابة قام بنشر ديسمبر 1, 2013 السلام عليكم و رحمة الله وبركاته اخي محمد خليل الكلام الي قلته في آخر مشاركة اوحى الي بفكرة بما انه لايوجد بيانات متكررة لإسم العميل و المنتج معا في الورقة الأصلية اذا نحنة ممكن نسوي عملية تنظيف للورقة الأصلية فقط نضيف اسم المنتج امام اسم كل عميل نحذف بقية الصفوف كلها نحذف الأعمدة الزائدة ' Application.Calculation = xlManual Set FS = Sheets(ActiveSheet.Name) ER = FS.UsedRange.Rows.Count Range("I1") = "ÇáäæÚ" Range("J1") = " ÇÓã ÇáÚãíá" Range("K2").EntireColumn.Insert Range("K2:K" & ER).FormulaR1C1 = "=IF(RC9="""",R[-1]C11,RC9)" FS.Calculate For R = 2 To ER If Cells(R, 10) <> "" Then Cells(R, 9) = Cells(R, 11) Next R ' Range("K2").EntireColumn.Delete Range("K2:K" & ER).FormulaR1C1 = "=AND(LEN(RC10)>1,LEN(RC9)>1,RC10<>R1C10)" FS.Calculate For R = 2 To ER If Cells(R, 11) <> "" And Cells(R, 11) = False Then Cells(R, 11).EntireRow.Delete R = R - 1 End If Next R Range("K2").EntireColumn.Delete Range("B1:H2").EntireColumn.Delete ' With ActiveSheet.UsedRange .Font.Size = 11 .Font.Name = "Arial" .ColumnWidth = 99 .Columns.AutoFit .Rows.AutoFit .AutoFilter End With ThisWorkbook.Save Application.Calculation = xlAutomatic كما في المرفق Copy of Report3.rar 1
عطاء الله قام بنشر ديسمبر 1, 2013 قام بنشر ديسمبر 1, 2013 لسلام عليكم محمد خليل أنا عكس ما قال له لك صديقي أحمد زمان ( في ملفي وليس ملفه ) حذف الأعمدة يسبب لك دمج في الخلايا لماذ لأن عندما تنقل نسخة من برنامج الشركة فإن نطاق الخلايا لا يتغير يصبح نفسه السابق أي أن لأعمد التي في الوسط فارغ لا تمس حتى يبق النطاق برنامج الشركة نفسه سؤال الأول : العمودO لا فائدة منه يمكنك لإستغناء عنه ( في البداية كنت أريد إستعمال مصفوفة ثم بدل الطريقة و تركته ) السؤال الثاني أنا لم أحسب المسحوبات أن حسبت المرتجعة وأخيرا أنا عملت ملف كما طلبت ملاحظة : عندما يشترك العملاء في منتج واحد فإنك لا تسحب المعادلة للأسفل بل تراجها من بداية العميل تم الإشتراك مع العملاء حتى الإنتهاء إلى غاية المنتج الأخر والعميل الذي يقابله بهذه الطريقة تكون العملية صحيحة 100/100 وهو قابل 5000 واحد وأنظر الملف المرفق عند الإشتراك العملاء في منتج واحد في خانة المنتج لكي تفهماه وأعذرني إن كنت لم اوفق في الشرح تقبل تحياتي ata25.rar 1
محمد خليل السيد قام بنشر ديسمبر 4, 2013 الكاتب قام بنشر ديسمبر 4, 2013 استاذ / احمد زمان استاذ / عطاء الله اسف جدا على غيابى وعدم الرد لظروف خاصة وشكرا جدا على اهتمامكم وسأقوم بتحميل الملفين ان شاء الله وسيكون لنا عودة باذن الله ان لم يصيبنا اى مكروه تقبلوا تحياتى
محمد خليل السيد قام بنشر ديسمبر 4, 2013 الكاتب قام بنشر ديسمبر 4, 2013 السلام عليكم و رحمة الله وبركاته اخي محمد خليل الكلام الي قلته في آخر مشاركة اوحى الي بفكرة بما انه لايوجد بيانات متكررة لإسم العميل و المنتج معا في الورقة الأصلية اذا نحنة ممكن نسوي عملية تنظيف للورقة الأصلية فقط نضيف اسم المنتج امام اسم كل عميل نحذف بقية الصفوف كلها نحذف الأعمدة الزائدة ' Application.Calculation = xlManual Set FS = Sheets(ActiveSheet.Name) ER = FS.UsedRange.Rows.Count Range("I1") = "ÇáäæÚ" Range("J1") = " ÇÓã ÇáÚãíá" Range("K2").EntireColumn.Insert Range("K2:K" & ER).FormulaR1C1 = "=IF(RC9="""",R[-1]C11,RC9)" FS.Calculate For R = 2 To ER If Cells(R, 10) <> "" Then Cells(R, 9) = Cells(R, 11) Next R ' Range("K2").EntireColumn.Delete Range("K2:K" & ER).FormulaR1C1 = "=AND(LEN(RC10)>1,LEN(RC9)>1,RC10<>R1C10)" FS.Calculate For R = 2 To ER If Cells(R, 11) <> "" And Cells(R, 11) = False Then Cells(R, 11).EntireRow.Delete R = R - 1 End If Next R Range("K2").EntireColumn.Delete Range("B1:H2").EntireColumn.Delete ' With ActiveSheet.UsedRange .Font.Size = 11 .Font.Name = "Arial" .ColumnWidth = 99 .Columns.AutoFit .Rows.AutoFit .AutoFilter End With ThisWorkbook.Save Application.Calculation = xlAutomatic كما في المرفق بارك الله فيك وفى علمك هذه نتيجة جيدة جدا ويمكن استخدام الدوال معها بكل سهولة
محمد خليل السيد قام بنشر ديسمبر 4, 2013 الكاتب قام بنشر ديسمبر 4, 2013 لسلام عليكم محمد خليل حذف الأعمدة يسبب لك دمج في الخلايا لماذ لأن عندما تنقل نسخة من برنامج الشركة فإن نطاق الخلايا لا يتغير يصبح نفسه السابق أي أن لأعمد التي في الوسط فارغ لا تمس حتى يبق النطاق برنامج الشركة نفسه وعليكم السلام ورحمة الله وبركاته لم افهم بالضبط ما الضرر فى تصفية البيانات الى هذا الشكل خصوصا ان البيانات التى تم حذفها وازالتها لم يكن لها اى استخدام ملاحظة : عندما يشترك العملاء في منتج واحد فإنك لا تسحب المعادلة للأسفل بل تراجها من بداية العميل تم الإشتراك مع العملاء حتى الإنتهاء إلى غاية المنتج الأخر والعميل الذي يقابله بهذه الطريقة تكون العملية صحيحة 100/100 وهو قابل 5000 واحد جزاك الله خيرا وزادك من العلم الكثير حل حضرتك زى ما قولت قبل كده اكثر من رائع لكن عندى استفسار بخصوص الاقتباس السابق ، انا فاهمها بس حاسس انها متعبة لان انا بتعامل مع اكثلر من 600 منتج بالشركة لأكثر من 5000 عميل فى اكثر من 50000 صف فهل حضرتك بتثبت المعادلة فى هذه الحالة يدوى ام فى طريقة معينة بتعرفك ان العملاء مشتركة فى منتج واحد ؟
عطاء الله قام بنشر ديسمبر 4, 2013 قام بنشر ديسمبر 4, 2013 وعليكم السلام أخي وصديقي محمد خليل الله يبعد عنك كل مكروه إن شاءلله عندما طال غيابك قلنا وجد الحل أخي أما عن إستفسارك في الحقيقة هي متعبة في 5000 ولكن تعطي نتيجة دقيقة إذكان الأمر هكذا إعمل بطريقة الكود أحسن لتتفاد كل المشاكل وأنا إن شاء الله سوف أبحث لك عن حل لهذ المشكلة يوم عطلة لأني مشغول كثيرا تقبل تحياتي
محمد خليل السيد قام بنشر ديسمبر 5, 2013 الكاتب قام بنشر ديسمبر 5, 2013 وعليكم السلام أخي وصديقي محمد خليل الله يبعد عنك كل مكروه إن شاءلله عندما طال غيابك قلنا وجد الحل أخي أما عن إستفسارك في الحقيقة هي متعبة في 5000 ولكن تعطي نتيجة دقيقة إذكان الأمر هكذا إعمل بطريقة الكود أحسن لتتفاد كل المشاكل وأنا إن شاء الله سوف أبحث لك عن حل لهذ المشكلة يوم عطلة لأني مشغول كثيرا تقبل تحياتي اللهم آمين لقد قمت باستخدام الكود فى التصفية ثم استخدمت معادلات الـ SUMIFS اللى حضرتك استخدمتها . تحياتى لك وللأستاذ احمد زمان لمساهمتكما فى الحل وشكرا جزيلا على مجهودكما وجزاكما الله كل خير وزادكما من العلم كثيرا
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.