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

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

قام بنشر

أخي الكريم رضا علي

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

إليك على الرابط التالي الشرح بالتفصيل لأسطر الكود ليمكنك التعديل عليه بما يتناسب مع ملفك ..

والشكر موصول لصاحب الكود الأصلي أستاذنا ومعلمنا رجب جاويش .. فقط أضفت بعض التحسينات البسيطة للغاية بحيث يمكن تنفيذ الكود من أي ورقة عمل ...

الرابط من هنا

تقبل تحياتي

قام بنشر


Sub Tarhil_Ragab()
    'تعريف المتغيرات
    Dim Sh As Worksheet
    Dim strSh As String
    Dim I As Long
    Dim AA As Long

    'سطر لإيقاف تحديث الشاشة
    Application.ScreenUpdating = False
    
        'مسح محتويات النطاق في ورقة العمل ناجح
        Sheets("ناجح").Range("A12:X1000").ClearContents
    
        'مسح محتويات النطاق في ورقة العمل دور ثان
        Sheets("دور ثان").Range("A12:X1000").ClearContents
    
        'مسح محتويات النطاق في ورقة العمل راسب
        Sheets("راسب").Range("A12:X1000").ClearContents
    
        'بدء التعامل مع ورقة العمل الأولى التي تعتبر الورقة الرئيسية
        With Sheet1
        
            '[Y] حلقة تكرارية بدايةً من الصف الـ 12 وحتى آخر صف به بيانات بالاعتماد على العمود
            For I = 12 To .Cells(10000, "Y").End(xlUp).Row
    
                '[Y] تعيين قيمة المتغير ليساوي قيمة الخلية في الصف المحدد في العمود
                'ففي أول حلقة تكرارية سيكون الصف هو رقم 12 [I] المقصود بالصف المحدد الصف الذي يحمل قيمة المتغير
                'وفي الحلقة التالية سيكون الصف رقم 13 وهكذا مع كل حلقة تكرارية يتغير الصف
                strSh = .Cells(I, "Y").Value
    
                'تعيين المتغير ليساوي آخر صف في الورقة التي سيتم الترحيل إليها
                'أو يمكنك القول معرفة رقم صف أول صف فارغ
                AA = Sheets(strSh).Cells(10000, 2).End(xlUp).Row + 1
    
                'إذا كان المتغير أقل من 12 الذي من المفترض أنه صف البداية لعمليات الترحيل فإنه يتم تعيين المتغير ليساوي 12
                If AA < 12 Then AA = 12
    
                'في حالة حدوث خطأ يتم تجنبه بهذا السطر
                On Error Resume Next
    
                'نسخ النطاق في الصف المحدد من العمود الثاني إلى العمود الرابع والعشرون
                .Range(.Cells(I, "B"), .Cells(I, "X")).Copy
    
                'لصق النطاق المنسوخ إلى ورقة العمل المناسبة واللصق يكون لصق قيم فقط
                Sheets(strSh).Range("B" & AA).PasteSpecial xlPasteValues
    
                'إلغاء خاصية النسخ واللصق
                Application.CutCopyMode = False
    
                'هذا السطر يقوم بترقيم الصف الذي تم ترحيله في الورقة الهدف
                'حيث يعتمد على إنقاص 11 من رقم الصف الحالي
                'فإذا كان الصف الحالي هو رقم 12 ألا وهو رقم البداية فإن الرقم
                'المسلسل سيكون 12 - 11 أي سيكون الرقم المسلسل 1
                Sheets(strSh).Cells(AA, "A").Value = Sheets(strSh).Cells(AA, "A").Row - 11
    
                'الانتقال للصف التالي في الحلقة التكرارية
            Next I
    
            'حلقة تكرارية لكل أوراق العمل لتحديد الخلية الأولى في ورقةالعمل
            For Each Sh In ThisWorkbook.Worksheets
                Application.Goto Sh.Range("A1")
            Next Sh
    
            'تنشيط ورقة العمل الأولى
            .Activate
    
        'انتهاء التعامل مع ورقة العمل الأولى
        End With
        
    'سطر لإعادة تفعيل اهتزاز الشاشة
    Application.ScreenUpdating = True

    'إظهار رسالة تفيد بانتهاء عمل الكود
    MsgBox "تم الفصل بنجاح", 64
End Sub

حتى يكثر الدعاء الطيب للاستاذ الكبير ياسر حليل

قام بنشر

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

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

 

قام بنشر
الان, ياسر خليل أبو البراء said:

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

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

 

انا مش فاهم الكلام دة ...................انا مسجل فى مدونتك لكن اوفيسنا هيفضل الجامعه والاشخاص الدكاترة

 

قام بنشر

أخي الكريم رضا

لما أخذت الكلام بمحمل شخصي .. لا أقصد التقليل من منتدى أوفيسنا فجميعنا تعلمنا منه الكثير .. وليس معنى أنني قمت بإنشاء مدونة أنني أنافس المنتدى ، إنما هي مجرد تجميعة لموضوعاتي المختلفة .. وأنا أقل الناس علماً في هذا المنتدى العريق

أخي العزيز ناصر

لم أقصد بكلامي تقديم الاعتذار فأنت فوق العين والرأس ..إنما فقط أردت التنويه أنني أقوم بالأمر في موضوعات مختلفة متعمداً ذلك ليعرف الأعضاء بأمر المدونة لا أكثر ولا أقل

 

  • 2 weeks later...

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