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

الردود الموصى بها

قام بنشر

qN6nCe.gif

والصلاة والسلام على أشرف المرسلين وخاتم النبيين سيدنا محمد علية الصلاة والسلام

وبعد

السادة أحبائى وأساتذتى وخبراء هذا المنتدى العظيم الذى تعلمت منه الكثير والكثير وحتى الأن أتعلم منه

غبت فترة كبيرة عن المنتدى وذلك لظروف مرض والدى وحجزه بالمستشفى لفترة وتم خروجه أمس

أسألكم الدعاء أن يتم شفائة على خير

مرفق شيت إكسيل به جدول به أكواد عملاء متعاملة شهريا كل شهر على حدا وأمامه نفس الجدول فارغ بعدد شهور السنة

المفروض أن شهر يناير هو بداية تعامل العملاء لأول مرة فى بداية السنة

المطلوب كود برمجى ينقل شهر يناير كما هو فى شهر يناير المقابل له فى الجدول الثانى وباقى الشهر يتم نقل بها فقط بعد تصفية عملاء باقى

الشهور من شهر يناير العملاء الجدد فقط

مثال

شهر يناير تعامل به 700 عميل وهم أول تعامل وشهر فبراير تعامل به 900 عميل

المطلوب نقل أكواد 200 عميل الزيادة فقط فى شهر فبراير المقابل له بالجدول الثانى

وشهر مارس تعامل به 500 عميل منهم مثلا 50 عميل جدد فقط

المطلوب نقل أكواد ال 50 عميل الجدد فقط بعد الفلترة من شهر 1 وشهر 2 معا على أن لا يكونوا مكررين فى الشهرين 1 و 2

وهكذا باقى شهور السنة

مع ملاحظة أن شهر يناير ثابت ينقل كما هوا فى الجدول المقابل لأنهم أول تعامل بالسنة

والشهور التى لا يوجد بها أكواد تنقل أيضا فى الجدول المقابل فارغة أيضا بس الكود يشملهم فى حالة وجود وضع أكواد بهم فى الجدول الأول

أرجوا أن أكون أوضحت المطلوب ومعزرة على الإطالة للتوضيح

 

Customers New Only.rar

قام بنشر

توهتني يا كبير

ألف سلامة على السيد الوالد ربنا يشفيه ويعافيه

بالنسبة لطلبك لم أفهم المطلوب على الإطلاق ...ربما لأن البيانات كثيرة حاول ترفق الملف مرة أخرى ببيانات أقل وتشرح لنا من جديد بأمثلة ويا ريت ترفق شكل النتائج المتوقعة ..عشان نقدر نساعد

تقبل تحياتي

  • Like 1
قام بنشر (معدل)

أخى الحبيب والغالى أ / ياسر والله العظيم واحشنى جدا جدا

وشكرا لسرعة إستجابتك

وشكرا لدعائك الطيب ربنا يتقبل منك

مرفق مثال بالنتائج المتوقعة مع الشرح السابق والتطبيق على باقى الشهور

المقصود نتيجة كل شهر فى الجدول المقابل أن لايتكرر العملاء فى إجمالى الشهور السابقة للشهر المطلوب فية نتيجة العملاء الجدد وهكذا

 

Customers New Only.rar

تم تعديل بواسطه م / ياسر فتحى البنا
قام بنشر

أخي الكريم ياسر في النتائج المرفقة في شهر مارس ؟ وضعت رقم 10 وهو موجود في شهر يناير مسبقاً ..ما مدى صحة المنطق؟

هل هذه النتيجة صحيحة بهذا الشكل؟

وكذلك الرقم 41 في النتئج المرفقة موجود من قبل في شهر فبراير؟؟

أكد أو انفي

قام بنشر (معدل)

أخي الحبيب ياسر فتحي

إليك الكود التالي عله يفي بالغرض

بالنسبة لملفك في المشاركة الأولى قمت بإزالة التنسيقات في الأعمدة والصفوف الزائدة ...لا أرى داعي أبداً لتنسيق كافة الصفوف والأعمدة بهذا الشكل ، هذا يجعل الملف ثقيل وبطيء جداً

المهم اتفضل الكود جرب وشوف

Sub PullUniques()
    Dim A, I As Long, J As Long, N As Long, LR As Long

    With Sheets("Sheet1")
        LR = .Columns("B:M").Find("*", , , , xlByRows, xlPrevious).Row
        A = .Range("B3:M" & LR).Value

        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For J = 1 To UBound(A, 2)
                For I = 1 To UBound(A, 1)
                    If Len(A(I, J)) Then
                        If Not .Exists(A(I, J)) Then
                            .Item(A(I, J)) = Empty: N = N + 1
                            If N <> I Then A(N, J) = A(I, J): A(I, J) = Empty
                        Else
                            A(I, J) = Empty
                        End If
                    End If
                Next I
                N = Empty
            Next J
        End With

        .Range("O3").Resize(UBound(A, 1), UBound(A, 2)).Value = A
    End With
End Sub

تقبل تحياتي

Customers New Only YasserKhalil.rar

تم تعديل بواسطه ياسر خليل أبو البراء
  • Like 2
قام بنشر

حبيبى وأخى الغالى الأستاذ القدير / ياسر خليل

لا أرى كلمات أعبر بها عن مدى شكرى وتقديرى لمجهود حضرتك والعبقرية الهائلة فى صياغة المطلوب بالضبط

أطال الله عمرك وأدام الله عليك الصحة والعافية وجزاك الله خيرا

ألف ألف شكرا للمرة الثانية

سلمت يمينك

جارى التجربة وإفادة حضرتك

قام بنشر

أ / ياسر خليل

للمرة الثانية لا أدرى كيف أشكرك

هذا هو المطلوب بالضبط بعد التجربة

جزاك الله خير وجعله فى ميزان حسناتك

قام بنشر

أخى الحبيب ياسر

هاتقل عليك فى حاجه بسيطه

وضعت معادلة count لعد العملاء فى B2 ولم تعطى نتيجة وجربتها فى شيت أخر وأعطت نتيجة ولا أدرى ما السبب

الرجاء توضيح السبب

مرفق الشيت به المعادلة

Customers New Only.zip

قام بنشر

السلام عليكم أخي الحبيب م /ياسر

أسأل الله أن يشفي والدك الكريم ويعافيه

اللهم اشف أنت الشافي لا شفاء إلا شفاؤك شفاء لا يغادر سقماً.. واعلم من كان له والدين على قيد الحياة - كنز له - فليستثمر كل لحظة بإرضائهما بما يرضي الله تعالى

وانظر إلى اللفتة الكريمة التي يوجه الله تعالى عنايتنا لها((وقضى ربك ألا تعبدوا إلا إياه وبالوالدين إحساناً))...فكل منا نظره إلى الأمام ...قرن بين توحيده وبرهما في آية واحدة ...فهنيئاً لمن كان لديه كنزين لا يقدران بثمن يدعو لهما -يبر بهما أما عن نفسي فقد قضى الله أمراً كان مفعولاً ...فاحرصوا كل الحرص - كل من يقرأ مشاركتي هذه - على لحظات سعادة وعين ترنو حباً وعطفاً و خفض جناح

لهما . أما عن الأكواد فلها أهل يبرعون بها ويطوعونها لخدمة الإنسان الكريم...والصلاة والسلام على سيد المرسلين والحمد لله رب العالمين.

السلام عليكم ورحمة الله وبركاته

ملاحظة:  أعلم يقيناً أنكم لستم بحاجة من يوصيكم ولكن هذا ما جادت به نفسي، محبة لمقام الأبوة الكريم وحنيناً ومحبة لوالدي الكريمين اللذين أرجو لهما مقاماً كريماً وحشراً تحت لواء سيدنا محمّد صلى الله عليه وسلم..." وذكّر فإنّ الذكرى تنفع المؤمنين".

  • Like 2
قام بنشر (معدل)

                            م. ياسر فتحى

                  اسأل الله ان يشفى والدك ويعافية

بخصوص المعادلة  استخدم COUNTA لعد الخلايا غير الفارغة (النصية والرقمية وقيم الفراغ)

=COUNTA(B4:B38)

ويمكنك استخدام الدالة COUNTIF لعد القيم النصية هكذا

=COUNTIF(B4:B38;"><")

او هكذا

=COUNTIF(B4:B38;"*")

اما وعن الخطأ فهو ناتج عن صياغة المعادلة حيث استخدمت حضرتك Count وهى لعد القيم الرقمية واستخدمت معها كمعامل ثانى شرط ">0"  وهذه الدالة لا تعد بشرط وانما COUNTIF هى دالة العد بشرط

خالص تحياتى

تم تعديل بواسطه خالد الرشيدى
  • Like 1
قام بنشر

اخي الحبيب أ / خالد الرشيدي

شكرا لدعائك الطيب

وشكرا للتوضيح شرح ممتاز أسلوبك رائع في
توصيل المعلومةجزاك الله خيرا

 

 

 

 

 

  • Like 1
قام بنشر

أستاذى القدير الغالى / ياسر خليل

السلام عليكم ورحمة الله وبركاته

أنا أسف لكثرة طلباتى

من فضلك أنظر إلى المرفق أريد فيه نقل العملاء الجدد فقط مع المبالغ التى أمامهم

موضح بالشيت النتائج المتوقعة

أدام الله عليك الصحة والعافية

Customers New Only End.rar

قام بنشر

السلام عليكم

أعتذر عن التأخير في الرد فأنا مشغول في هذه الأيام

الأخ الحبيب أبو عيد أدام الله عليك الصحة والعافية ورزقك الجنة

أعتقد أنه تم الأمر وقام الأخ أبو عيد بالمطلوب ..

ويرجى أخي الغالي ياسر أن تفرد موضوع لكل طلب مستقل حيث أنه عادةً لا يلتفت إلى الطلبات في المشاركات الفرعية

تقبلوا تحياتي

  • Like 1
قام بنشر

السلام عليكم

بعد أذنكم يا أخوة

تفضل المرفق

Customers New Only End1.rar

أخى الحبيب أ / أبو عيد

أشكرك على إهتمامك وإستجابتك لطلبى النتيجة بالفعل مضبوطة بالملف المرفق لأن البيانات به ليست كثيرة فهذا مثال لتوضيح النتيجة المطلوبة وأنا بالفعل كنت عدلت الكود كما قمت حضرتك بتعديلة بالضبط ولكن لم يضبط معى بالبيانات الكثيرة كما أريد

أرجوا توضيح السبب

مرفق الملف للتوضيح أكثر

Customers New Only End1.rar

السلام عليكم

أعتذر عن التأخير في الرد فأنا مشغول في هذه الأيام

الأخ الحبيب أبو عيد أدام الله عليك الصحة والعافية ورزقك الجنة

أعتقد أنه تم الأمر وقام الأخ أبو عيد بالمطلوب ..

ويرجى أخي الغالي ياسر أن تفرد موضوع لكل طلب مستقل حيث أنه عادةً لا يلتفت إلى الطلبات في المشاركات الفرعية

تقبلوا تحياتي

أخى الحبيب والغالى أ / ياسر

كان الله فى عون حضرتك و أدام عليك الصحة والعافية

معلش أنا بتقل عليك دايما

وموضوع إنى لم أقم بعمل موضوع مستقل للطلب الأخر هو أن حضرتك الذى تفضلت لى بعمل هذا الكود الرائع وأردت من حضرتك تعديل الكود ليتناسب مع الطلب الأخر

جزاك الله خيرا على كل ما تقدمه من مساعدات لكل أعضاء المنتدى

 

قام بنشر

الكود يعمل معي في ملفك أيضاً .حدد المشكلة بشكل أكثر دقة للوقوف على الخطأ إذا وجد

أستاذ ياسر أسماء العملاء نقلت مضبوطه 100 %

ولكن قيمة المبيعات التى أمام كل إسم من المنقولين لم تنقل بالكامل أمام كل إسم

مظلل الخطأ بالمرفق

Customers New Only End1.rar

قام بنشر

جرب الكود التالي

Sub PullUniques()
    Dim A, I As Long, J As Long, N As Long, LR As Long

    With Sheets("Sheet1")
        LR = .Columns("B:Y").Find("*", , , , xlByRows, xlPrevious).Row
        A = .Range("B5:Y" & LR).Value

        With CreateObject("Scripting.Dictionary")
            .CompareMode = 1
            For J = 1 To UBound(A, 2) Step 2
                For I = 1 To UBound(A, 1)
                    If Len(A(I, J)) Then
                        If Not .Exists(A(I, J)) Then
                            .Item(A(I, J) & A(I, J + 1)) = Empty: N = N + 1
                            If N <> I Then A(N, J) = A(I, J): A(I, J) = Empty
                        Else
                            A(I, J) = Empty
                        End If
                    End If
                Next I
                N = Empty
            Next J
        End With

        .Range("AA5").Resize(UBound(A, 1), UBound(A, 2)).Value = A
    End With
End Sub

 

  • Like 1
قام بنشر (معدل)

أخى الحبيب والغالى أستاذى ومعلمى القدير / ياسر خليل

هذا هوا المطلوب بالضبط

أدام الله عمرك وأسكنك الله الفردوس الأعلى

ألف ألف شكر

وأسف لتعب حضرتك معايا

أسف أستاذ ياسر

لم أنتبه إلى شيئ

العملاء المنقولة المقصود بها العملاء المتجدد شهر شهر كما بالطلب الأول المشاركة رقم 1 والذى تفضلت حضرتك بعمل كود له بالمشاركة رقم 6 بتنفيذ المطلوب

ولكن الأختلاف فقط هو إضافة قيمة المبيعات عند نقلهم

أرجو مراجعة المشاركة الأولى لملاحظة المطلوب وتعديل الكود لو سمحت سيادتكم وأسف مرة ثانية لتعطيل سيادتكم

تم تعديل بواسطه م / ياسر فتحى البنا
قام بنشر

أخي الحبيب ياسر

لم أفهم ..هل تم المطلوب أم أنه ما زال هناك بعض التعديلات المطلوبة ..يرجى التوضيح ..ردك بطلب التعديل على أي أساس ..

من المفترض أن الكود يعمل الآن ويقوم بما طلبت ... أنا في غاية الإرهاق ولا أستطيع التركيز الآن اعذرني

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information