محسن33 قام بنشر سبتمبر 23 قام بنشر سبتمبر 23 السلام عليكم لدي عمودين في حدود 200000 صف اريد مقارنة العمودين واستخراج القيم المختلفة بينهم بالرغم من تكرارها في العمود الاخر مرفق لا داعى لضغط الملف طالما مساحته صغيره مقارنة.xlsx
عبدالله بشير عبدالله قام بنشر سبتمبر 23 قام بنشر سبتمبر 23 (معدل) حل رائع معلمنا حسونة حسين تم تعديل سبتمبر 23 بواسطه عبدالله بشير عبدالله 2
عمر الجزاوى قام بنشر سبتمبر 23 قام بنشر سبتمبر 23 استاذ حسونة حل رائع بعد اذنك ممكن تضيف لينا شرط ثالث ان الكود يظهر القيم المشتركة بين العمودين
عمر الجزاوى قام بنشر سبتمبر 23 قام بنشر سبتمبر 23 استاذ حسونة الف شكرا على الاهتمام انا كنت ببحث عن حل قريب ووجدت خلول بالدوال ولكن حلك بالكود رائع وجميل ومميز الف الف شكر 1
محسن33 قام بنشر سبتمبر 24 الكاتب قام بنشر سبتمبر 24 (معدل) السلام عليكم شكرا على الحل للاخ العزيز حسونة حسين ولكن جربت ادخل بيانات حتى الصف20000 وعند الضغط على الcommandbutton ظهر error تم تعديل سبتمبر 24 بواسطه محسن33
محمد هشام. قام بنشر سبتمبر 24 قام بنشر سبتمبر 24 (معدل) اظن ان الكود المقترح من الاستاد @حسونة حسين يشتغل بشكل جيد على العموم جرب هدا Option Explicit Sub test() Dim arr As Variant, i As Long, Irow As Long Dim tmp1 As Object, tmp2 As Object, c As Variant Dim n As Variant, a As Variant, b As Variant Dim WS As Worksheet: Set WS = Sheets("Sheet1") Application.ScreenUpdating = False With WS Irow = .Columns("A:E").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row If Irow > 1 Then .Range("C2:E" & Irow).ClearContents End If arr = .Range("A2:B" & Irow).Value Set tmp1 = CreateObject("Scripting.Dictionary") Set tmp2 = CreateObject("Scripting.Dictionary") For i = 1 To UBound(arr, 1) If arr(i, 1) <> "" Then tmp1(arr(i, 1)) = True If arr(i, 2) <> "" Then tmp2(arr(i, 2)) = True Next i For Each n In tmp1 If tmp2.exists(n) Then c = cnt(c, n) tmp2.Remove n Else a = cnt(a, n) End If Next n For Each n In tmp2 b = cnt(b, n) Next n If Not IsEmpty(a) Then [C2].Resize(UBound(a), 1).Value = WorksheetFunction.Transpose(a) If Not IsEmpty(b) Then [D2].Resize(UBound(b), 1).Value = WorksheetFunction.Transpose(b) If Not IsEmpty(c) Then [E2].Resize(UBound(c), 1).Value = WorksheetFunction.Transpose(c) Application.ScreenUpdating = True End With End Sub Function cnt(arr As Variant, Value As Variant) As Variant If IsEmpty(arr) Then ReDim arr(1 To 1) arr(1) = Value Else ReDim Preserve arr(1 To UBound(arr) + 1) arr(UBound(arr)) = Value End If cnt = arr End Function مقارنة 3.xlsb تم تعديل سبتمبر 24 بواسطه محمد هشام. 3
حسونة حسين قام بنشر سبتمبر 25 قام بنشر سبتمبر 25 وعليكم السلام ورحمة الله وبركاته في 24/9/2024 at 03:28, محسن33 said: ولكن جربت ادخل بيانات حتى الصف20000 وعند الضغط على الcommandbutton ظهر error ما هو الخطأ الذي يظهر لانه لا يظهر اخطأء بعد وضع بيانات الي الصف ٢٠ ألف 1
محسن33 قام بنشر أكتوبر 31 الكاتب قام بنشر أكتوبر 31 (معدل) الله يجزيكم الخير هل يمكن الارقام الموجودة في الاعمدة C و D تظليل بلون اصفر في العمود A و العمود B بلون برتقالي تم تعديل أكتوبر 31 بواسطه محسن33
محمد هشام. قام بنشر نوفمبر 1 قام بنشر نوفمبر 1 Option Explicit Sub test() Dim arr As Variant, i As Long, Irow As Long Dim dictA As Object, dictB As Object, dictC As Object, dictD As Object Dim n As Variant, a As Variant, b As Variant, c As Variant Dim WS As Worksheet: Set WS = Sheets("Sheet1") With WS Irow = .Columns("A:E").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row If WorksheetFunction.CountA(.Range("A2:A" & Irow)) = 0 And _ WorksheetFunction.CountA(.Range("B2:B" & Irow)) = 0 Then MsgBox "لا توجد بيانات للمقارنة", vbExclamation Exit Sub End If 'Code ............. .................. Set dictC = CreateObject("Scripting.Dictionary") Set dictD = CreateObject("Scripting.Dictionary") For i = 2 To Irow If WS.Cells(i, 3).Value <> "" Then dictC(WS.Cells(i, 3).Value) = True If WS.Cells(i, 4).Value <> "" Then dictD(WS.Cells(i, 4).Value) = True Next i For i = 2 To Irow If WS.Cells(i, 1).Value <> "" Then If dictC.exists(WS.Cells(i, 1).Value) Or dictD.exists(WS.Cells(i, 1).Value) Then WS.Cells(i, 1).Interior.Color = RGB(255, 255, 0) End If End If If WS.Cells(i, 2).Value <> "" Then If dictC.exists(WS.Cells(i, 2).Value) Or dictD.exists(WS.Cells(i, 2).Value) Then WS.Cells(i, 2).Interior.Color = RGB(255, 165, 0) End If End If Next i Application.ScreenUpdating = True End Sub مقارنة 3.xlsb 2
mahmoud nasr alhasany قام بنشر نوفمبر 1 قام بنشر نوفمبر 1 (معدل) احسنت أ / حسونة حسين احسنت أ / محمد هشام على المجهود الرائع الذى بزلتموه تم تعديل نوفمبر 1 بواسطه mahmoud nasr alhasany
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.