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

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

قام بنشر

السلام عليكم منتدى اوفيسنا كل عام وانتم بخير لدي ملف مكون الفين صف بها اسم الاب واسماء الاطفال وتواريخم بجانبهم اريد فرز تاريخ معين لاعمار الاطفال لكل الاعمدة لكي يظهر اسم الاب بجانب الاطفال الظاهرة مع تاريخها 

الملف به بعض البيانات لبعض العوائل واذا كان الحل تغيير تنسيق الجدول لا مشكلة لكن هناك بيانات لاعمدة اخرى لم اضعها او ان استطيع حلها عن طريق بيفت تيبل .

test.xlsx

  • Like 1
  • أفضل إجابة
قام بنشر

You can change the date in the code

Sub Test()
    Const sReport As String = "Report"
    Dim ws As Worksheet, myDate As Date, lr As Long, r As Long, c As Long, k As Long
    Application.ScreenUpdating = False
        Set ws = ThisWorkbook.Worksheets(1)
        lr = ws.Cells(Rows.Count, "C").End(xlUp).Row
        myDate = CLng(DateSerial(2017, 1, 1))
        ReDim a(1 To (lr - 2) * 7, 1 To 6)
        For r = 3 To lr
            For c = 9 To 27 Step 3
                If ws.Cells(r, c + 1).Value2 >= myDate Then
                    k = k + 1
                    a(k, 1) = ws.Cells(r, 3).Value
                    a(k, 2) = ws.Cells(r, 6).Value
                    a(k, 3) = ws.Cells(r, 7).Value
                    a(k, 4) = ws.Cells(r, c).Value
                    a(k, 5) = ws.Cells(r, c + 1).Value
                    a(k, 6) = ws.Cells(r, c + 2).Value
                End If
            Next c
        Next r
        If k > 0 Then
            On Error Resume Next
                Application.DisplayAlerts = False
                    Worksheets(sReport).Delete
                Application.DisplayAlerts = True
            On Error GoTo 0
            Sheets.Add(After:=Sheets(Sheets.Count)).Name = sReport
            With Worksheets(sReport)
                .DisplayRightToLeft = True
                .Range("A1").Resize(, 6).Value = Array("Father Name", "Mother Name", "Place", "Child", "Birth Date", "ID")
                .Range("A2").Resize(UBound(a, 1), UBound(a, 2)).Value = a
                .Columns.AutoFit
            End With
        End If
    Application.ScreenUpdating = True
    MsgBox "Done...", 64, "LionHeart"
End Sub

 

  • Like 3
قام بنشر

جزاك الله خير الجزاء ولكن لا اعرف كيفية اضافة الكود بشكل صحيح 

 

  • 3 months later...
قام بنشر

كل الشكر والتقدير والاحترام استاذ محمد تم الأمر بنجاح🌹🌹🌹🌹

أستاذي الفاضل مراجعة لما تفضلت علي واجهت مشكلة بأنه طلب مني أطفال ما بين تاريخين مثلا أطفال 2015 وحتى 2019 بخلاف ما تكرمت علي في الحل حيث أن الكود يعطيني نتيجة من تاريخ معين وحتى تاريخ اليوم 

فهل يمكن تعديل الكود جزاك الله خير الجزاء وزادك الله علما استاذي أنت وباقي الأخوة 

قام بنشر

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

عدل هذا السطر 

If ws.Cells(r, c + 1).Value2 >= myDate Then

ليصبح هكذا

If ws.Cells(r, c + 1).Value2 >= myDate and If ws.Cells(r, c + 1).Value2 <= CLng(DateSerial(2019, 1, 1)) Then

 

  • Like 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