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

كود ترحيل عند تحقق شرط


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

أخي الكريم عبد الله

يرجى تغيير اسم الظهور للغة العربية

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

إليك الكود التالي عله يكون المطلوب

Sub TransferData()
    Dim WS As Worksheet, SH As Worksheet
    Dim Cel As Range, LR As Long, CounterID As Long
    Set WS = Sheets("Sheet1"): Set SH = Sheets("Sheet2")
    
    Application.ScreenUpdating = False
        For Each Cel In WS.Range("C2:C" & WS.Cells(Rows.Count, "C").End(xlUp).Row)
            If Cel.Value = "موافق علية " And Cel.Offset(, 1).Value = "برنامج تدريبي" Then
                CounterID = Application.WorksheetFunction.CountIf(SH.Range("B4:B" & SH.Cells(Rows.Count, "B").End(xlUp).Row), Cel.Offset(, -1))
                If CounterID >= 1 Then MsgBox "هذا الاسم أو رقم الهوية موجود من قبل" & vbCrLf & Cel.Offset(, -2) & vbTab & vbTab & Cel.Offset(, -1), 64: GoTo Skipper
                Cel.Offset(, -2).Resize(, 2).Copy
                LR = SH.Cells(Rows.Count, "A").End(xlUp).Row + 1
                SH.Range("A" & LR).PasteSpecial xlPasteValues
            ElseIf Cel.Value = "موافق علية " And Cel.Offset(, 1).Value = "برنامج توظيف" Then
                CounterID = Application.WorksheetFunction.CountIf(SH.Range("J4:J" & SH.Cells(Rows.Count, "J").End(xlUp).Row), Cel.Offset(, -1))
                If CounterID >= 1 Then MsgBox "هذا الاسم أو رقم الهوية موجود من قبل" & vbCrLf & Cel.Offset(, -2) & vbTab & vbTab & Cel.Offset(, -1), 64: GoTo Skipper
                Cel.Offset(, -2).Resize(, 2).Copy
                LR = SH.Cells(Rows.Count, "I").End(xlUp).Row + 1
                SH.Range("I" & LR).PasteSpecial xlPasteValues
            End If
Skipper:
            CounterID = 0
        Next Cel
        MsgBox "تمت عملية الترحيل بعون الله", 64
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

Transfer Data To Another Sheet Skipping Duplicates YasserKhalil.rar

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

الله يعطيك العافية اخي ابوالبراء علي هذا المجهود ... ولكن ارغب منكم اضافة شي اخر التي وهي عندما تكون الاسماء الموجود في ورقة عمل 2 مكرره لا حاجة لاظهار الاسم عند عملية الترحيل ويكتفي بظهور عبارة لاتوجد بيانات جديدة  وفي حال هناك اسم جديد حسب الشروط يتم الاشعار بانه تم الترحيل بنجاح .. اي بمعني اخر لو افترضنا بان لدي قائمة باسماء كثيرة وعند الضغط علي الكود سيستغرق مني الموافقة علي اشعار بمعلومة ان هؤلاء الاشخاص  موجودين من قبل ... اتمني وصول الفكرة لديكم ...  

 

مع جزيل الشكر والتقدير علي تعاونك ...

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

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