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

مطلوب ترحيل من فترة الى فترة


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

السلام عليكم و رحمة الله و بركاته

الاساتذة الكرام

المطلوب فى المرفق هو الترحيل من ورقة الى ورقة بشرط بين تاريخين

رجاء كود و ليس معادلة لكثرة البيانات

و جزاكم الله خيرا

03.rar

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

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

lمرحبا اخي صلاح

ربما هذا الكود يفي بالغرض

Sub CopyTofilter()

Dim SH1 As Worksheet, SH2 As Worksheet, R As Integer, T As Integer, Date1 As Double, Date2 As Double
R = 1
Set SH1 = Sheets("filter"): Set SH2 = Sheets("all data")
Date1 = SH1.Range("L2"): Date2 = SH1.Range("M2")

SH1.Range("A2:K" & SH1.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row) = ""
Application.ScreenUpdating = False
        For T = 2 To SH2.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
        Select Case SH2.Cells(T, 2).Value2: Case Date1 To Date2
        R = R + 1
        SH2.Range("A" & T).Resize(, 11).Copy
        SH1.Range("A" & R).PasteSpecial xlPasteValues
End Select
Next
Application.ScreenUpdating = True

End Sub

 

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

فعلا جربته و لم يعمل الا لصف 35000

 

هل هناك تعديل ليعمل لاخر صف فيه بيانات فى ورقة all data

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

أخي الكريم صلاح

وضعت لك رابط فيه كود مشابه لما سأقدمه الآن وقد كان الحل بين يديك (نفس الفكرة تقريباً مع بعض التعديلات ليتناسب مع ملفك)

جرب الكود التالي عله يفي بالغرض ويكون أسرع في التعامل مع البيانات

Sub Data_Between_Two_Dates()
    Dim Ws As Worksheet, Sh As Worksheet
    Dim Arr, Temp
    Dim I As Long, P As Long, T As Long
    Dim startDate As Date, endDate As Date

    Set Ws = Sheets("all data"): Set Sh = Sheets("filter")
    Arr = Ws.Range("A2:K" & Ws.Cells(Rows.Count, 1).End(xlUp).Row).Value
    startDate = Sh.Range("L2").Value2: endDate = Sh.Range("M2").Value2
    ReDim Temp(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
    
    For I = LBound(Arr, 1) To UBound(Arr, 1)
        If Arr(I, 2) >= startDate And Arr(I, 2) <= endDate Then
            For T = 1 To 11
                Temp(P + 1, T) = Arr(I, T)
            Next T
            
            P = P + 1
        End If
    Next I

    Sh.Range("A2").Resize(P, UBound(Temp, 2)).Value = Temp
End Sub

 

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

أخي الكريم صلاح

مش عارف تقول ايه وقلت "جزاك الله خيراً"

كدا إنت قلت أهو .. لو اطلعت على الموضوع في الرابط في أول مرة كان هيفيدك في الحل .. بس أعمل ايه مفيش كلام بيتسمع :rol:

ولا أقولك بلاش لو عشان دي بتفتح أبواب الشيطان . نقول " قدر الله وما شاء فعل ، ولعله خير ..

تقبل تحياتي

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

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