reem2009a قام بنشر أكتوبر 28 قام بنشر أكتوبر 28 (معدل) مرحبا جميعا عندي برنامجين رواتب لشهرين في الاكسل اريد المقارنه بين الاسماء الجديده المضافه او الاسماء المحذوفه ومقارنه بين الرواتب اذا زادت اونقصت بين الشهرين لكل منتسب وهاي البرنامجين مرفقه لشهر تشرين وايلول ايلول.xlsx تشرين الاول.xlsx تم تعديل أكتوبر 28 بواسطه reem2009a تعديل للمطلوب
عبدالله بشير عبدالله قام بنشر أكتوبر 28 قام بنشر أكتوبر 28 السلام عليكم تم انشاء ملف جديد باسم نتائج المقارنة تم وضع كود به اضغط على الزر فقط بشرط الملفين تشرين وايلول يكونان مقفلين وان بكونا على سطح المكتب بمعنى الملفات الثلاتة على سطح المكتب وبنفس الاسماء الحالية يمكنك تعديل الاسماء من الكود ان اردت Sub CompareSalaries() Dim desktopPath As String Dim wb1 As Workbook, wb2 As Workbook, ws1 As Worksheet, ws2 As Worksheet Dim resultWb As Workbook, resultWs As Worksheet Dim lastRow1 As Long, lastRow2 As Long, i As Long, j As Long Dim empName As Variant Dim salary1 As Double, salary2 As Double Dim dictSalaries1 As Object, dictSalaries2 As Object desktopPath = Environ("UserProfile") & "\Desktop\" Application.ScreenUpdating = False Application.Calculation = xlCalculationManual On Error GoTo ErrorHandler Set wb1 = Workbooks.Open(desktopPath & "__ايلول_.xlsx") Set wb2 = Workbooks.Open(desktopPath & "__تشرين الاول_.xlsx") Set resultWb = Workbooks("نتائج المقارنة.xlsB") Set ws1 = wb1.Sheets("ورقة1") Set ws2 = wb2.Sheets("ورقة1") Set resultWs = resultWb.Sheets("ورقة1") resultWs.Range("A2:D" & resultWs.Rows.Count).ClearContents resultWs.Range("A1:D1").Value = Array("الاسم", "الحالة", "راتب أيلول", "راتب تشرين الأول") Set dictSalaries1 = CreateObject("Scripting.Dictionary") Set dictSalaries2 = CreateObject("Scripting.Dictionary") lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow1 empName = ws1.Cells(i, 1).Value salary1 = ws1.Cells(i, 2).Value dictSalaries1(empName) = salary1 Next i lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow2 empName = ws2.Cells(i, 1).Value salary2 = ws2.Cells(i, 2).Value dictSalaries2(empName) = salary2 Next i j = 2 For Each empName In dictSalaries1.Keys If dictSalaries2.exists(empName) Then salary1 = dictSalaries1(empName) salary2 = dictSalaries2(empName) If salary1 <> salary2 Then resultWs.Cells(j, 1).Value = empName resultWs.Cells(j, 2).Value = "تغير في الراتب" resultWs.Cells(j, 3).Value = salary1 resultWs.Cells(j, 4).Value = salary2 j = j + 1 End If Else resultWs.Cells(j, 1).Value = empName resultWs.Cells(j, 2).Value = "محذوف" resultWs.Cells(j, 3).Value = dictSalaries1(empName) resultWs.Cells(j, 4).Value = "" j = j + 1 End If Next empName For Each empName In dictSalaries2.Keys If Not dictSalaries1.exists(empName) Then resultWs.Cells(j, 1).Value = empName resultWs.Cells(j, 2).Value = "جديد" resultWs.Cells(j, 3).Value = "" resultWs.Cells(j, 4).Value = dictSalaries2(empName) j = j + 1 End If Next empName wb1.Close False wb2.Close False resultWs.Columns("A:D").AutoFit With resultWs.Range("A1:D" & j - 1).Borders .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With MsgBox "تمت المقارنة وتم عرض النتائج في ورقة 'ورقة1' في مصنف 'نتائج المقارنة.xlsx'.", vbInformation Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Exit Sub ErrorHandler: MsgBox "حدث خطأ: " & Err.Description, vbCritical If Not wb1 Is Nothing Then wb1.Close False If Not wb2 Is Nothing Then wb2.Close False Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub الملف نتائج المقارنة.xlsb 3
reem2009a قام بنشر أكتوبر 29 الكاتب قام بنشر أكتوبر 29 (معدل) مرحبا تظهر رساله (تحقق من كتابه الاسم وهي الاسماء نفسها الي رسلتها) وبالنسبه للاسماء اجمع اسماء الشهرين في حقل الاسم في الاكسل الجديد (المقارنه) لان يوجد حقلين للرواتب وحقل للاسم علما وضعت الاكسل الثلاثه على سطح المكتب قمت بتغير الاسم بالاكسل بهذي الطريقه. —-ايلول— و—-تشرين —- ظهرت رساله حدث خطا: subscript out of range تم تعديل أكتوبر 29 بواسطه reem2009a
عبدالله بشير عبدالله قام بنشر أكتوبر 29 قام بنشر أكتوبر 29 2 ساعات مضت, reem2009a said: قمت بتغير الاسم بالاكسل بهذي الطريقه. —-ايلول— و—-تشرين —- اذا تغير اسم الملف فلن تكون هناك نتائج الملف يعمل بامتياز تم تعديل ملف ايلول ياسم A وتشرين B حمل الملفات الثلاتة التالية وضعها على سطح المكتب وافتح ملف نتائج المقارنة واضغط على الزر A.xlsx B.xlsx نتائج المقارنة.xlsb 1
reem2009a قام بنشر أكتوبر 30 الكاتب قام بنشر أكتوبر 30 مرحبا النتائج صحيحه في اكسيل المقارنه للشهرين ولكن عند وضعهم في الحاسبه نفس الرساله تظهر Subscipt out of rang يعني في الشهر القادم ماهو الخطا الموجود عندي لجعل الكود يعمل عندي علما من الاعدادات مفعله اعدادات الماكرو الافيس عندي 2010 انا وضعت الملفات الثلاثه على سطح المكتب
reem2009a قام بنشر أكتوبر 30 الكاتب قام بنشر أكتوبر 30 (معدل) انا وضعت الملفات الثلاثه على سطح المكتب والاسماء Aو B برنامج المقارنه المرسل مضبوط ولكن عند اعاده تجربته على حاسبتي لايعمل الخلل يمي البرنامج AوB على سطح المكتب وغير مفتوحات افتح اكسل المقارنه واضغط على امر المقارنه وتظهر رساله out of range تم تعديل أكتوبر 30 بواسطه reem2009a
محمد هشام. قام بنشر أكتوبر 30 قام بنشر أكتوبر 30 (معدل) بعد إدن الأستاد @عبدالله بشير عبدالله تعديل بسيط على الكود الخاص به أخي @reem2009a جرب بهذه الطريقة لا تحتاج لتحديد مسار سطح المكتب. عند تنفيذ الكود سيفتح لك مربع حوار لإختار ملف رقم1 وملف رقم2 مما سيغنيك عن تحديد أسماء المصنفات داخل الكود ربما يناسبك filePath1 = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", , "Select First File") If filePath1 = "False" Then Exit Sub filePath2 = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", , "Select Second File") If filePath2 = "False" Then Exit Sub On Error GoTo ErrorHandler Set wb1 = Workbooks.Open(filePath1) Set wb2 = Workbooks.Open(filePath2) Set resultWs = ThisWorkbook.Sheets("Sheet1") resultWs.Cells.ClearContents resultWs.Range("A1:D1").Value = Array("اسم الموظف", "الحالة", _ Left(wb1.Name, InStrRev(wb1.Name, ".") - 1), Left(wb2.Name, InStrRev(wb2.Name, ".") - 1)) 'Code........... End Sub نتائج المقارنة.xlsb تم تعديل أكتوبر 30 بواسطه محمد هشام. 1
reem2009a قام بنشر أكتوبر 30 الكاتب قام بنشر أكتوبر 30 (معدل) ممكن اضافه حقلين حقل للدرجه وحقل للمرحله لكل موظف؟ الان ظهرت عندي الحقول والنتائج مطابقه فقط بحاجه الى اضافه العمودين للدرجه والمرحله بالكسل A و الاكسل B لتظهر مع نتائج المقارنه الدرجه والمرحله تم تعديل أكتوبر 30 بواسطه reem2009a
عبدالله بشير عبدالله قام بنشر أكتوبر 30 قام بنشر أكتوبر 30 (معدل) السلام عليكم فكرة الاستاذ محمد هشام افضل لانها تغنيك عن التعديل فى الكود فى الاشهر الاخرى فهى مرتة جدا وفى اي مكان وجود الملف وباى اسم فجزاه الله خيرا خير الجزاء بالرغم من ان ملف استاذنا يغنى عن الاظافة ويمكنك استخدامه الا ان طلبك الجديد اظافة عمودبن هو ما جعلنى اقوم بالرد تم تطبيق فكرة الاستاذ محمد هشام على الملف مع توضيح من زاد مرتبهم او نقص مرتبهم حسب طلبك عند الضغط على الزر قم باختيار الملف الاول ثم باخنيار الملف الثانى 4 ساعات مضت, reem2009a said: فقط بحاجه الى اضافه العمودين للدرجه والمرحله ارجو التوضيح اكثر وهل العمودين للملفين او ملف واحد وبقضل ارفاق ملف للتوضبح وااترتيب المطلوب نتائج المقارنة.xlsb تم تعديل أكتوبر 30 بواسطه عبدالله بشير عبدالله 1
reem2009a قام بنشر أكتوبر 30 الكاتب قام بنشر أكتوبر 30 لاكسل ايلول بعد الاسم نضيف عمودين عمود للمرحله الوظيفيه وعمود للمرحله واكسل تشرين الثاني. عمودين ايضا للدرجه والمرحله وبالمقارنه عندما يظهر مع الاسم درجه ومرحله الموظف عذروني لان تعبتكم ضفت حقلين الدرجه والمرحله للتوضيح اقصد كل موظف تظهر معه درجته والمرحله باكسل نتائج تظهر كل موظف درجته والمرحله ��تشرين الاول�.xlsx
عبدالله بشير عبدالله قام بنشر أكتوبر 30 قام بنشر أكتوبر 30 (معدل) بالرغم من انك لم توضحى ملف المقارنة الاخير كبف ترتيب بياناته هل تظهر درجته السابقة والحالية ومرحلته السابقة والحالية المهم جهزت ملف حسب تصورى للامر واذا كان هناك بعض الاعمدة فى ملف المقارنة ليست ضرورية فيمكنك اخفائها يالنسبة للملفين ايلول ونشرين ترتيب البيانات حسب الصورة نتائج المقارنة.xlsb تم تعديل أكتوبر 30 بواسطه عبدالله بشير عبدالله 1
reem2009a قام بنشر أكتوبر 31 الكاتب قام بنشر أكتوبر 31 (معدل) شكرا جزيلا @عبدالله بشير عبدالله شكرا جزيلا @محمد هشام. هذا كان المطلوب اعجز عن شكركم فقط سوال واحد انظر الى قيد زينب شاكر لماذا ياتي رقم الراتب ولاتاتي المرحله والدرجه لاحظ بحقل الدرجه يوجد رقم الراتب وليس رقم المرحله 🙏 ساقوم بالتعديل يدوي على الدرجة والمرحله وشكرا حزيلا لان هذه حلت تعب ووقت وجهد كبير شكرا جزيلا @عبدالله بشير عبدالله& @محمد هشام. تم تعديل أكتوبر 31 بواسطه reem2009a
أفضل إجابة عبدالله بشير عبدالله قام بنشر أكتوبر 31 أفضل إجابة قام بنشر أكتوبر 31 (معدل) جربى الملف المرفق وفيه حالة نفس المرتب المعايير التى بنى عليها الكود هي :- المقارنة بين المرتبات: يقوم الكود بمقارنة المرتب الرسمي لكل موظف بين الملفين، ويضيف النتيجة إلى العمود H في ملف المقارنة: زيادة في المرتب: إذا كان المرتب في الملف الثاني أكبر من المرتب في الملف الأول. نقص في المرتب: إذا كان المرتب في الملف الثاني أقل من المرتب في الملف الأول. نفس المرتب: إذا كان المرتب في الملفين متساويًا. محذوف: إذا كان اسم الموظف موجود في الملف الأول ولكن غير موجود في الملف الثاني. جديد: إذا كان اسم الموظف موجود في الملف الثاني ولكن غير موجود في الملف الأول. نتائج المقارنة.xlsb وهذا الملف خاص بمن زادت او نقصت او حذفو او جددفقط بدون نفس المرتب نتائج المقارنة1.xlsb تم تعديل أكتوبر 31 بواسطه عبدالله بشير عبدالله 1 1
reem2009a قام بنشر نوفمبر 3 الكاتب قام بنشر نوفمبر 3 شكرا جزيلا @عبدالله بشير عبدالله كل الشكر والتقدير وفقك الله 1
reem2009a قام بنشر نوفمبر 17 الكاتب قام بنشر نوفمبر 17 (معدل) @عبدالله بشير عبدالله مرحبا اخي العزيز ممكن اضافه عمود لكل شهر يتضمن عنوان الموظف يعني تصبح اسم الموظف - العنوان الوظيفي - الدرجه - المرحله -الراتب الاسمي والجدول الثاني نفس الحقول وشكرا جزيلا على المساعده وشكرا على المعادله الرائعه التي اعجز عن شكرك عليها تم تعديل نوفمبر 17 بواسطه reem2009a
عبدالله بشير عبدالله قام بنشر نوفمبر 17 قام بنشر نوفمبر 17 مرحبا اختنا الفاضلة لا تنس اضافة عمود العنوان الوظيقى للملفين بعد اسم الموظف قبل استخدام الكود ملف لجميع الحالات زبادة -نقص- نقس -حذف نتائج المقارنة.xlsb ملف لحالات الزيادة والنقص والحذف نتائج المقارنة.xlsb نتائج المقارنة1.xlsb
reem2009a قام بنشر نوفمبر 17 الكاتب قام بنشر نوفمبر 17 (معدل) مرحبا @عبدالله بشير عبدالله الشهر الاول تظهر معه العنوان الوظيفي الشهر الثاني لم تظهر معه العنوان الوظيفي تم تعديل نوفمبر 17 بواسطه reem2009a
عبدالله بشير عبدالله قام بنشر نوفمبر 17 قام بنشر نوفمبر 17 9 ساعات مضت, reem2009a said: والجدول الثاني نفس الحقول جملتك هذه فهمت منها من كلمة نفس الحقول اي اتركها كما هي نتائج المقارنة.xlsb نتائج المقارنة1.xlsb 2
reem2009a قام بنشر نوفمبر 17 الكاتب قام بنشر نوفمبر 17 (معدل) شكرا جزيلا كل الشكر والامتنان لك اخي وفقك الله في كل مجالات حياتك تم تعديل نوفمبر 17 بواسطه reem2009a
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.