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

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

قام بنشر

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

قمت بعمل ملف أكسيل يقوم بمعظم أعمال شئون الطلاب المدرسية

ينقصنى فيه بعض أكواد الترحيل

كود ترحيل تكوين الفصول جاهز ويعمل بكفاءة

الأكواد الناقصة هى كالتالى

*- سجل قيد الطلاب المستجدين

*- سجل قيد الطلاب الباقين

*- سجل 41 مستجدين

ملاحظات

سجل 41 مستجدين يكتب فيه الطلاب المستجدين فقط

طبعا العمود الأساسى الذى سيكون عليه التحويل هو حالة القيد سواذ الطالب مستجد أو باق

المشكلة أن الأعمدة غير مرتبة بحسب الترحيل وغير متتالية

توجد بعض الدوال الجاهزة فى السجلات المراد التحويل إليها

مثل استخراج اسم والد الطالب واستخراج السن فى أول أكتوبر

مرفق الملف كامل وبه بعض البيانات للتجربة

فى انتظار ردودكم

شئون الطلاب 2018.rar

قام بنشر

انا جاتلى فكرة بس عاوز المساعدة

انا ممكن اعمل الترحيل عن طريق تسجيل الماكرو

بس مش عاوزة تظبط معايا خالص

فى انتظار المساعدة

وعلى فكرة انا عاوز اتعلم مش بس انقل كود وخلاص

  • 2 weeks later...
قام بنشر

حدد المطلوب بالضبط ليتمكن الأخوة من الرد في الموضوع بدلاً من الرفع بدون فائدة .. وضح بالصور واجعل المطلوب شيء واحد فقط مع وضع بعض النتائج المتوقعة ..

حدد أوراق العمل المطلوب العمل عليها والنطاقات والخلايا إلخ ...التفاصيل مهمة

  • Like 1
قام بنشر

اللى انا فهمته من حضرتك انى اطلب فى كل مرة حاجة واحدة وتكون واضحة

ماشى

الملف كامل مرفوع فى المرفقات

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

انا عاوز ماكرو يقوم بترحيل البيانات المطلوبة فى سجل قيد التلاميذ المستجدين

طبعا بشرط أن يكون الطالب مستجد

ياريت يكون طلبى واضح

قام بنشر

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

Sub TransferNonAdjacentUsingArrays()
    Dim ws          As Worksheet
    Dim sh          As Worksheet
    Dim kName       As String
    Dim arr         As Variant
    Dim temp        As Variant
    Dim i           As Long
    Dim j           As Long
    Dim p           As Long

    Set ws = Sheets("بيانات الطلاب")
    Set sh = Sheets("سجل قيد الطلاب المستجدين")
    kName = "مستجد"

    Application.ScreenUpdating = False
        arr = ws.Range("B17:T" & ws.Range("B" & Rows.Count).End(xlUp).Row).Value
        temp = sh.Range("B11:P" & UBound(arr, 1)).Formula
        
        For i = 1 To UBound(arr, 1)
            If arr(i, 5) = kName Then
                p = p + 1
                temp(p, 2) = arr(i, 2)
                temp(p, 4) = arr(i, 7)
                temp(p, 5) = arr(i, 8)
                temp(p, 6) = arr(i, 9)
                temp(p, 10) = arr(i, 13)
                temp(p, 11) = arr(i, 4)
                temp(p, 12) = arr(i, 5)
                temp(p, 14) = arr(i, 11)
                temp(p, 15) = arr(i, 12)
            End If
        Next i
    
        If p > 0 Then sh.Range("B11").Resize(p, UBound(temp, 2)).Value = temp
    Application.ScreenUpdating = True
End Sub

 

  • Like 1
قام بنشر

الكود ممتاز

بارك الله فيك

يتبقى كود لعمل

سجل 41 مستجدين

فى نفس الملف

ملحوظة صغيرة

طبعا بشرط أن يكون الطالب مستجد أو مستجدة

قام بنشر

أستاذ ياسر

تم اكتشاف مشكلة

ورغم محاولتى إلا أنها لم تفلح

أريد ترحيل الطالبة المستجدة

حيث أنى اكتشفت أنه إذا كانت حالة الطالبة مستجدة لا يتم ترحيلها

فقط يتم ترحيل الطالب المستجد فقط

أرجو حل هذه المشكلة

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