اذهب الي المحتوي
أوفيسنا

جمع قيمة خلايا في ملف ومقارنتها بقيمة خلية ف يملف اخر


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

Workbook1 is RN " receipt Note "
Workbook2 is CSN " Costumer Services Number "
RN.Sheet1 column "B" --> invoice numbers in the receipt. 
Rn.sheet1 Cell "D1" --> the receipt amount. 
CSN.Sheet1 Column "A" --> all unpaid invoices numbers of the costumer.
CSN.Sheet1 Column "C" --> all unpaid invoices amounts of the costumer.

what i need to be done in the code as the following:
code must be in "RN"
1- open CSN.xlsx depending on a cell value Ex: "CSN" in A1
2-find the invoice numbers that are in RN.Sheet1 "B:B" in CSN.Sheet1 "A:A"
3- if any invoice number is not exited in CSN.Sheet1 "A:A" --> cancel and giev MSG "check the Invoice Numbers"
4-if all the invoice numbers was found in CSN.Sheet1 "A:A" or available --> Sum same invoices amounts that have been founded and compare it with the receipt amount in RN.Sheet1 "D1".
5- if the amount is the same "equals" then delete the entire row of the Founded invoices numbers in CSN.Sheet1 

please help me as soon as possible.
thanks and regards,  

رابط هذا التعليق
شارك

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

تقبل تحياتي

رابط هذا التعليق
شارك

الملف في المرفق وشكرا مسبقا

 

Workbook1 is RN " receipt Note "
Workbook2 is 100001" Costumer Services Number "
RN.Sheet1 column "B" --> invoice numbers in the receipt. 
Rn.sheet1 Cell "D3" --> the receipt amount. 
100001.Sheet1 Column "A" --> all unpaid invoices numbers of the costumer.
100001.Sheet1 Column "C" --> all unpaid invoices amounts of the costumer.

what i need to be done in the code as the following:
code must be in "RN"
1- open 100001.xlsx depending on a cell value Ex: "100001" in A1
2-find the invoice numbers that are in RN.Sheet1 "B:B" in 100001.Sheet1 "A:A"
3- if any invoice number is not exited in 100001.Sheet1 "A:A" --> cancel and give MSG "check the Invoice Numbers"
4-if all the invoice numbers was found in 100001.Sheet1 "A:A" or available --> Sum same invoices amounts that have been founded and compare it with the receipt amount in RN.Sheet1 "D1".
5- if the amount is the same "equals" then delete the entire row of the Founded invoices numbers in 100001.Sheet1 

please help me as soon as possible.

thanks and regards,

 

 

File 1.zip

رابط هذا التعليق
شارك

السلام عليكم اخي الكريم....

 

شكرا جزيلا لمساعدتك ولكن طلبي هو كالتالي بالتفصيل 

RN هو الملف يلي يعمل سند قبض و باقي الملفات هم ملفات العملاء وبداخلا ارقا وتواريخ وقيمة الفاتير المصدر لهم.

اريد ان اضع اسم العميل فيظر لي الرقم التسلسلي (محلولة)

في الحقل B سوف اضع ارقام الفواتير يلي تم دفعها في الشيك + قيمة وتاريخ الشيك.

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

 

بانتظار ردك اخي الكريم وشكرا مسبقا

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

رابط هذا التعليق
شارك

لزيارد توضيح طلبي اخواني الاعزاء الرجائ منكم فتح الملف المرفق RN وانا كاتب فيه كمنتات توضيحية عن طيقة عمل الكود الذي اريد منك مساعدتي فيه ....

وانشالله في ميزان حسناتكم يا اخواني

 

7 ساعات مضت, Dr.Basel-D said:

السلام عليكم اخي الكريم....

 

شكرا جزيلا لمساعدتك ولكن طلبي هو كالتالي بالتفصيل 

RN هو الملف يلي يعمل سند قبض و باقي الملفات هم ملفات العملاء وبداخلا ارقا وتواريخ وقيمة الفاتير المصدر لهم.

اريد ان اضع اسم العميل فيظر لي الرقم التسلسلي (محلولة)

في الحقل B سوف اضع ارقام الفواتير يلي تم دفعها في الشيك + قيمة وتاريخ الشيك.

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

 

بانتظار ردك اخي الكريم وشكرا مسبقا

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

 

File 3.zip

رابط هذا التعليق
شارك

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

 

لو ممكن تعدلي الكود من فضلك.

رابط هذا التعليق
شارك

أخي الكريم د. باسل

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

اطلعت على الملف ووجدت كود بالفعل وينفذ بعض المطلوب .. حيث يقوم بحذف الصفوف التي بها نفس أرقام الفواتير في العمود B في المصنف الخاص بالعميل ...ثم يتم حفظ المصنف الخاص بالعميل

وأفضل أن ترفق شكل النتائج المتوقعة بناءً على الملف المرفق

تقبل تحياتي

 

  • Like 1
رابط هذا التعليق
شارك

اخي الكريم ياسر,

انا فقط اريد اضافة على الكود تقوم بالتأكد من مجموع قيم الفواتير التى وجدت في ملف العميل( التى انا وضعتها في العمود B) اذ تساوي قيمة سند القبض وبعدها يتفعل الكود تبعي ( حذف الصفوف )

تم تعديل بواسطه Dr.Basel-D
رابط هذا التعليق
شارك

أخي الكريم

ذكرت أن مجموع الفواتير في ملف العميل في العمود B .. وأنا أرى بعد إطلاعي أن مجموع الفواتير في العمود C في ملف العميل ..!!

هل قيمة سند القبض المقصود بها الخلية C5 في المصنف الحالي ؟ اعذرني لجهلي بطبيعة ملفك ..أنا أحب التحدث بلغة الإكسيل التي أفمها جيداً

اذكر مسميات أوراق العمل والمصنف والخلايا وشكل النتائج المتوقعة

المصنف الحالي أقصد به المصنف المسمى RN ، ومصنف العميل هو إما 100001 أو 100002

بعد التأكد من تساوي المجموع هنا وهنا في المصنفين : ما المطلوب في حالة التساوي وما المطلوب في حالة عدم التساوي؟

في حالة التساوي ذكرت أنك تريد حذف الصفوف في مصنف العميل ..أي صفوف سيحذفها (هل كل الصفوف مرة واحدة) لأنني أرى حلقة تكرارية موجودة بالكود ..!!

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

رابط هذا التعليق
شارك

شكرا لتفهمك واسف على تقصيري في شرح الطلب......

 

العملية بالتفصيل مع المسميات:

RN ملف سند القبض

100001 ملف الفواتير المتبقية الغير مدفوعة للعميل Dr. Basel

100002 ملف الفواتير المتبقية الغير مدفوعة للعميل Dr. Ahmed

 

1- سوف اضع اسم العميل في الخلية (A3) - ملف RN شيت Sheet1

2-الرقم التسلسلي للعميل المتربط باسم العميل (A4)- ملف RN شيت Sheet1

3-سوف ادخل ارقام الفواتير ( ملاحطة: الفواتير اراد العميل دفعها بالشيك) يدويا في الخلايا (B3:B)- ملف RN شيت Sheet1

4-تاريخ الشيك ادخال يدوي (C3) | رقم الشيك ادخال يدوي (C4) | قيمة الشيك ادخال يدوي (C5) - ملف RN شيت Sheet1

5-رقم التسلسلي التلقائي لسند القبض (D4) - ملف RN شيت Sheet1

6-عند ضغط الزر يعمل الكود كالتالي: يبحث في ملف العميل 100001 او 100002( ملاحظة: حسب اسم العميل ورقمه التسلسلي)  عن الفواتير التى تم اضافتها في RNمن B3:B

7-اذ وجدت هذه الفواتير يتم التأكد من مجموع قيمها ( الموجود في ملف العميل في شيت 1 في الصف C من C2:C.

8-في حال تطابق مجموع قيم هذه الفواتير في ملف العميل مع قيمة الشيك في ملف RN,sheet1,C5 يتم حذف صفوف الفواتير التى وجدت من ملف العميل ثم الحفظ والاغلاق والعودة للملف RN

 

تم تعديل بواسطه Dr.Basel-D
  • Like 1
رابط هذا التعليق
شارك

بارك الله فيك ..هكذا يكون التوضيح الذي لا لبس فيه الآن فهمت طبيعة الملف بشكل كبير

بقي سؤال واحد : ماذا لو لم يتطابق المجموع في ملف العميل مع الخلية C5 في المصنف الرئيسي ..ما المفترض حدوثه ؟

هل يتم الخروج من الإجراء الفرعي ..

وسؤال آخر لما قمت في الكود بعمل حلقت تكرارية ؟ طالما أن المجموع واحد سيقوم الكود بحذف الصفوف من مصنف العميل دفعة واحدة ..؟؟ هذه النقطة يلتبس عليا الأمر بها

رابط هذا التعليق
شارك

منذ ساعه, ياسر خليل أبو البراء said:

بارك الله فيك ..هكذا يكون التوضيح الذي لا لبس فيه الآن فهمت طبيعة الملف بشكل كبير

بقي سؤال واحد : ماذا لو لم يتطابق المجموع في ملف العميل مع الخلية C5 في المصنف الرئيسي ..ما المفترض حدوثه ؟

هل يتم الخروج من الإجراء الفرعي ..

وسؤال آخر لما قمت في الكود بعمل حلقت تكرارية ؟ طالما أن المجموع واحد سيقوم الكود بحذف الصفوف من مصنف العميل دفعة واحدة ..؟؟ هذه النقطة يلتبس عليا الأمر بها

في السؤال الاول : يظهر رسالة ان القيم غير متطابقة يرجى حذف بكشل يدوي او التاكد من الملبغ ( ايقاف العملية من دون حذف الصفوف)

بالنسبة للسؤال الثاني: مجرد تطابق ارقام الفواتير في الملفين ( العميل و RN) ثم تساوي مجموع قيم الفواتير ( المتطابقة بين ملف العميل و RN) مع قيمة الشيك الموجودة في RN,Sheet1,C5 يتم حذف صفوف الفواتير( الفواتير المتطابقة بين ملف العميل و RN) في ملف العميل ثم التخزين والخروج

رابط هذا التعليق
شارك

الصراحة ما زال هناك لبس في فهم الأمر ..

يتم مقارنة ارقام الفواتير بين المصنفين ..أيهما سيكون الأساس في عملية البحث والمقارنة؟

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

وماذا لو كان هناك رقم فاتورة في مصنف العميل غير موجود في المصنف الرئيسي ؟ هل يتم حذف بقية الصفوف دون هذا الصف الي لم يجد رقم يطابقه

أعتقد أن الموضوع بحاجة لمزيد من التوضيح بمرفق آخر فيه شكل النتائج المتوقعة .. ويكون فيه اختلاف في المصنفين ؟

رابط هذا التعليق
شارك

12 دقائق مضت, ياسر خليل أبو البراء said:

الصراحة ما زال هناك لبس في فهم الأمر ..

يتم مقارنة ارقام الفواتير بين المصنفين ..أيهما سيكون الأساس في عملية البحث والمقارنة؟

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

وماذا لو كان هناك رقم فاتورة في مصنف العميل غير موجود في المصنف الرئيسي ؟ هل يتم حذف بقية الصفوف دون هذا الصف الي لم يجد رقم يطابقه

أعتقد أن الموضوع بحاجة لمزيد من التوضيح بمرفق آخر فيه شكل النتائج المتوقعة .. ويكون فيه اختلاف في المصنفين ؟

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

النقطة الاولى: ملف الاساس هو RN حيث يتم البحث عن ارقام الفواتير الموجودة في RN,Sheet1,B3:B(على اساسها يتم البحث) ضمن داخل ملف العميل.

النقطة الثانية : لا يتم مسح اي فاتورة من ملف العميل ان لم يوجد مطابق لها في الملف RN,Sheet1,B3:B

 

يرجى لاطلاع على المثال في الملفات في المرفق حيث كتبت كل عملية سوف تتم في كل من RN and 100001

 

ولك فائق الشكر والتقدير وادعو ربي ان يجعلها من ميزان حسانتك.

 

example.zip

رابط هذا التعليق
شارك

أخي الكريم جرب الكود التالي ..

Sub Test()
    Const lngStartRow As Long = 2
    Dim strFile As String
    Dim strFileName As String
    Dim lngMyRow As Long
    Dim lngLastRow As Long
    Dim lngMatchRow As Long
    Dim rngDelete As Range

    strFile = Sheet1.Range("A4").Value & ".xlsx"
    strFileName = ThisWorkbook.Path & "\" & strFile

    Application.ScreenUpdating = False
        If Len(Dir(strFileName)) > 0 Then
            Workbooks.OpenText Filename:=strFileName
            lngLastRow = ActiveWorkbook.Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
    
            For lngMyRow = lngStartRow To lngLastRow
                lngMatchRow = 0
    
                On Error Resume Next
                    lngMatchRow = Evaluate("MATCH([" & strFile & "]Sheet1!A" & lngMyRow & ",[" & ThisWorkbook.Name & "]Sheet1!B:B,0)")
                    If lngMatchRow > 0 Then
                        If rngDelete Is Nothing Then
                            Set rngDelete = ActiveWorkbook.Sheets("Sheet1").Cells(lngMyRow, "A")
                        Else
                            Set rngDelete = Union(rngDelete, ActiveWorkbook.Sheets("Sheet1").Cells(lngMyRow, "A"))
                        End If
                    End If
                On Error GoTo 0
            Next lngMyRow
    
            If Not rngDelete Is Nothing Then
                If Evaluate("Sum([" & strFile & "]Sheet1!" & rngDelete.Offset(, 2).Address & ")") = ThisWorkbook.Sheets("Sheet1").Range("C5").Value Then
                    rngDelete.EntireRow.Delete
                    MsgBox "تم حذف الصفوف من مصنف العميل", 64
                    ActiveWorkbook.Close True
                Else
                    MsgBox "الفواتير متطابقة ولكن مجموع الفواتير غير متطابق", 64
                    ActiveWorkbook.Close False
                End If
            Else
                MsgBox "لا يوجد أرقام فواتير متطابقة", vbExclamation
                ActiveWorkbook.Close False
                Exit Sub
            End If
        Else
            MsgBox strFileName & " الملف غير موجود!", vbExclamation, "File Not Found"
        End If
    Application.ScreenUpdating = True
End Sub

أرجو أن يكون المطلوب ويفي بالغرض إن شاء الله

  • Like 1
رابط هذا التعليق
شارك

وجزيت خيراً أخي الكريم د. باسل بمثل ما دعوت لي

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

فالعمل بمجرد التخمين يجعل الموضوع يطول بدون داعي ويتوه صاحب الموضوع ، ويتوه من يقدم المساعدة ، ويتوه المتابعين للموضوع ، ويفقد الموضوع الفائدة منه  :wink2:

بارك الله فيك ...

 

وأخيراً الحمد لله الذي بنعمته تتم الصالحات

تقبل وافر تقديري واحترامي

  • Like 1
رابط هذا التعليق
شارك

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