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

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

قام بنشر

السلام عليكم ورحمة البركاته بعد اذنكم ممكن كود ترحيل يرحل الصفوف يعنى يرحل الصف الخامس الى الصف السادس والصف الرابع الى الصف الخامس وهكذا ولكن يوجد شرط عند موجود فى العمود M اذا كان اما الطالب باقى للاعادة فلا يرحله الى الصف الاعلى لانه راسب فى هذه السنة ويحافظ على الاسماء عند الترحيل الذى يليه ويضع اسماء الباقون للاعادة فى ترتبهم الابجدى انظر هنا فى الصف الثالث يوجد اسم جورى هنا يرحل جميع الاسماء الى الصف الرابع ويبقى اسم جورى فى هذا الصف وجزاكم الله خير الجزاء على سعة صدركم

السجلات المدرسية.xlsm

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

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

يمكنك تجربة هذا الكود

Sub TransferData()
    Dim wsCurrent As Worksheet
    Dim wsPrevious As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim j As Long
    Dim targetRow As Long

    ' تحديد الشيت الحالي والشيت السابق
    Set wsCurrent = ThisWorkbook.Sheets("6") ' قم بتغيير اسم الشيت حسب الحاجة
    Set wsPrevious = ThisWorkbook.Sheets("5") ' قم بتغيير اسم الشيت حسب الحاجة

    ' إيجاد آخر صف في الشيت الحالي
    lastRow = wsCurrent.Cells(wsCurrent.Rows.Count, "B").End(xlUp).Row

    ' مسح الصفوف التي تحتوي على كلمة "منقول" في العمود M
    For i = lastRow To 7 Step -1
        If wsCurrent.Cells(i, "M").Value = "منقول" Then
            wsCurrent.Rows(i).Delete
        End If
    Next i

    ' إيجاد آخر صف بعد المسح
    lastRow = wsCurrent.Cells(wsCurrent.Rows.Count, "B").End(xlUp).Row

    ' ترحيل البيانات من الشيت السابق
    targetRow = lastRow + 1
    For i = 7 To wsPrevious.Cells(wsPrevious.Rows.Count, "B").End(xlUp).Row
        If wsPrevious.Cells(i, "M").Value = "منقول" Then
            For j = 1 To 21 ' الأعمدة من A إلى U
                If j >= 6 And j <= 12 Then
                    wsCurrent.Cells(targetRow, j).Formula = wsPrevious.Cells(i, j).Formula
                Else
                    wsCurrent.Cells(targetRow, j).Value = wsPrevious.Cells(i, j).Value
                End If
            Next j
            targetRow = targetRow + 1
        End If
    Next i

    ' ترتيب البيانات حسب الاسم في العمود B
    wsCurrent.Range("A7:U" & targetRow - 1).Sort Key1:=wsCurrent.Range("B7"), Order1:=xlAscending, Header:=xlNo
End Sub

بالتوفيق

  • Like 2
قام بنشر

الله الله الله الله يجزيكم خير استاذ محمد ربنا يبارك فيكم ويجزيكم كل خير هو ده المطلوب ممكن بعد اذنك استاذ محمد ممكن بعد ترحيل الصف يمسح البيانات الصف المنقول مثلا هنقل بيانات الصف الخامس الى الصف السادس بعد ترحيل بيانات الصف الخامس يمسح بيانات الصف الخامس اللى هم منقولين فقط ويبقى على الاسماء اللى باقى لاعادة ، والمجنبون والف شكر على تعبك معانا ويجعله فى ميثزان حسناتك ويبارك فيكم وفى علمكم وفى اولادكم ويرزقكم سعادة الدارين

قام بنشر

أخي الكريم

أولا آمين ولك مثل ما دعوت

ثانيا لا تحتاج إلى هذا الأمر

فالكود يقوم حذف المنقول من الصف الأعلى (مثلا السادس) وينقل إليه المنقولين من الصف الخامس

ولتنفيذ ذلك مع الخامس والرابع يمكنك تعديل أسماء الشيت الحالي والسابق في الكود

سيحذف المنقول من الخامس وينقل إليهم الناجح من الرابع

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

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

بالتوفيق

  • Like 1
قام بنشر

السلام عليكم ورحمة الله وبركاته كالعادة لا يمكن ان نجد الحلول الا عند اصحاب الحلول شكرا على ليكم استاذ محمد فانت انسان يحتذى به فى اكرم الاخلاق وفى حسن المعاملة وردكم الجميل على ، ربنا يجزيكم خير ويجعله فى ميزان حسناتك 

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