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

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

جرب هذا الماكرو

Sub Tarhil_Complete_Data()
Dim Ws1, Ws2 As Worksheet
Dim Lr1, Lr2, S, i As Integer
Dim RG1 As Range

Set Ws1 = Sheets("sheet1"): Set Ws2 = Sheets("sheet2")
Lr1 = Application.Max(Ws1.Range("a:a")) + 1

Set RG1 = Ws1.Range("a1:f" & Lr1)
 For i = 2 To Lr1
       Lr2 = Ws2.Cells(Rows.Count, 1).End(3).Row
        S = Application.CountA(RG1.Cells(i, 1).Resize(1, 6))
      If S = 6 Then _
       Ws2.Cells(Lr2 + 1, 1).Resize(1, 6).Value = RG1.Cells(i, 1).Resize(1, 6).Value
   Next
End Sub

 

تم تعديل بواسطه سليم حاصبيا
رابط هذا التعليق
شارك

ربما هذا الكود اسرع قليلاُ (للبيانات الكثيرة )

حيث يقوم يتحديد الصفوف المطلوبة ثم ينقلها دفعة واحدة الى المكان المقصود

Sub Tarhil_Complete_Data1()
Dim Ws1, Ws2 As Worksheet
Dim Lr1, S, i As Integer
Dim RG1, Temp_Range As Range

Set Ws1 = Sheets("sheet1"): Set Ws2 = Sheets("sheet2")
Lr1 = Application.Max(Ws1.Range("a:a")) + 1

Set RG1 = Ws1.Range("A1:F" & Lr1)
 For i = 2 To Lr1

        S = Application.CountA(RG1.Cells(i, 1).Resize(1, 6))
        If S = 6 Then
                    If Temp_Range Is Nothing Then
                       Set Temp_Range = RG1.Cells(i, 1).Resize(1, 6)
                    Else
                        Set Temp_Range = Union(Temp_Range, _
                        RG1.Cells(i, 1).Resize(1, 6))
                     End If
         End If
 Next
    If Temp_Range Is Nothing Then Exit Sub
Temp_Range.Copy Ws2.Range("a2")
Set Temp_Range = Nothing
End Sub

 

تم تعديل بواسطه سليم حاصبيا
  • Like 1
رابط هذا التعليق
شارك

2 دقائق مضت, محمد لؤي said:

السلام عليكم - جزيت خيرا استاذ سليم

ويحتوي هذا الكود الثاني على ميزة اخرى غير موجودة بالكود الاول وهي :

عدم الترحيل مرة ثانية عند الضغط مرة ثانية على زر الترحيل

 

نستطيع بالكود الاول ان تفعل نفس الشيء وذلك بإفراغ محتويات الورقة 2 ابتداء من الصف الثاني قبل عملية الترحيل

Ws2.range("A2:F1000").ClearContents

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

2 ساعات مضت, ع_ حسام said:

 عذرا أنا أسف الخطأ من الأوفيس  من عندي  وتم معالجته  شكرا لك

سطر المسح   Ws2.range("A2:F1000").ClearContents أين يوضع 

فبل هذه العبارة في سطر مستقل

For i = 2 To Lr1

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

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.

×
×
  • اضف...

Important Information