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

سيد الأكرت

03 عضو مميز
  • Posts

    239
  • تاريخ الانضمام

  • تاريخ اخر زياره

مشاركات المكتوبه بواسطه سيد الأكرت

  1. استفسار بسيط من اساتذتنا لو حبيت اعمل احصاء لعدد البنين والبنات بكل فرقة اعلم ان الدالة COUNTIF تقوم بحساب تكرار نص معين في مدى محدد ومن ثم اذا وضعت هذه المعادلة =COUNTIF('السجل الكلي'!$F$9:$F$3008;"ذكر")

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

  2. 11 ساعات مضت, زيزو العجوز said:

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

    اخى الكريم معذرة على تسرعى

    استبدل تلك العبارة

    
    ws.Range("C9:Q" & ws.Range("D" & Rows.Count).End(xlUp).Row ).ClearContents

    بتلك العبارة

    
    ws.Range("C9:Q" & ws.Range("D" & Rows.Count).End(xlUp).Row + 9).ClearContents

    اعلم ان الفرق بسيط و لكنى لا اريد تشتيت تفكيرك فالفرق هو + 9

    و تأكد ان هذا الامر لن يحدث ثانية باذن الله

    هذا وبالله التوفيق

     

    شكرا اخي الكريم الان يعمل الملف بشكل سليم بارك الله فيك

    6 ساعات مضت, سليم حاصبيا said:

    عذراً اخي

    زيزو لم انتبه الى هذه النقطة لذلك قمت بالتعديل على الكود كما يلي:

    
    Option Explicit
    
    Sub Extract_Data2()
    Dim Source_Sh As Worksheet
    Dim Target_Sh As Worksheet
    Dim lr1, lr2 As Long
    Dim R, R1, m As Long
    Dim My_Rg, Found_rg As Range
    
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        
     Set Source_Sh = Sheets("السجل الكلي"): Set Target_Sh = Sheets("السجل المطلوب")
     lr1 = Application.Max(Source_Sh.Range("c:c")) + 8
      Set My_Rg = Source_Sh.Range("e8:e" & lr1)
      Set Found_rg = My_Rg.Find(What:=Target_Sh.Range("q2"), lookat:=xlWhole)
          If Found_rg Is Nothing Then MsgBox "No Data to Transfere": GoTo 1
             R = Found_rg.Row
        Do
             Set Found_rg = My_Rg.FindNext(Found_rg): R1 = Found_rg.Row
                  If m < R1 Then m = R1
                 If R1 = R Then Exit Do
       Loop
      '==============================
     With Target_Sh
     .Range("d9:q10000").ClearContents
     .Cells(9, "d").Resize(m - R + 1).Value = Source_Sh.Cells(R, "d").Resize(m - R + 1).Value
     .Cells(9, "e").Resize(m - R + 1, 13).Value = Source_Sh.Cells(9, "f").Resize(m - R + 1, 13).Value
    End With
    1:
      With Application
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End Sub

     

     

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

  3. 52 دقائق مضت, زيزو العجوز said:

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

    اخى الكريم الاستاذ سيد الملف يعمل عندى بدون اى كشاكل

    لذا ساقوم برفع الملف حتى تجربه بنفسك

    اخى الكريم الاستاذ سليم الكود الذى ارفقته بحلك هو كود رائع بلا شك

    ولكن تم استخدام الدالة "" لان الاعمدة المطلوب ترحيلها مختلفة عن عدد اعمدة المصفوفة الام

    اخى الكريم سيد اليك الملف

     

    سجل.rar

    بارك الله فيك اخى الكريم جرب حضرتك ان تضع في الخلية q2 عدد غير موجود وليكن 9 ثم اضغط جلب البيانات مرة لن تظهر بيانات واذا تم الضغط مرة اخرى عليها تحذف الكلمات الموجود في راس كل عمود واذا تم الضغط للمرة الثالثة تحذف كلمة الفرقة والرقم المحدد تحتها ولكن دون ذلك فالملف رائع بمعنى الكلمة وجزاك الله خيرا

  4. 11 دقائق مضت, سليم حاصبيا said:

    بعد اذن اخي زيزو و زيادة في اثراء الموضوع هذا الكود

    
    Option Explicit
    Sub Extract_Data()
    Dim Source_Sh As Worksheet
    Dim Target_Sh As Worksheet
    Dim lr1, lr2 As Long
    Dim R, R1, x As Long
    Dim My_Rg, Found_rg As Range
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
     Set Source_Sh = Sheets("السجل الكلي"): Set Target_Sh = Sheets("السجل المطلوب")
     Target_Sh.Range("d9:q10000").ClearContents
     lr1 = Application.Max(Source_Sh.Range("c:c")) + 8
      Set My_Rg = Source_Sh.Range("e8:e" & lr1)
      Set Found_rg = My_Rg.Find(What:=Target_Sh.Range("q2"), lookat:=xlWhole)
      
        If Not Found_rg Is Nothing Then: R = Found_rg.Row
     
        Target_Sh.Cells(x + 9, 4).Resize(, 15).Value = Source_Sh.Cells(R, 4).Resize(, 15).Value
       Do
           x = x + 1
           Set Found_rg = My_Rg.FindNext(Found_rg): R1 = Found_rg.Row
           Target_Sh.Cells(x + 9, 4).Resize(, 15).Value = Source_Sh.Cells(R1, 4).Resize(, 15).Value
            If R1 = R Then Exit Do
      Loop
      Target_Sh.Cells(x + 9, 1).EntireRow.Delete
       Target_Sh.Cells(9, 4).Select
      With Application
            .EnableEvents = True
            .ScreenUpdating = True
        End With
    End Sub
    

     

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

  5. 58 دقائق مضت, زيزو العجوز said:

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

    انسخ هذا الكود والصقه بموديول جديد

    واربطه بالزر الموجود بالملف

    
    Sub CallingData()
    Dim data As Worksheet, ws As Worksheet
    Dim Arr As Variant, Temp As Variant
    Dim i As Long, j As Long, p As Long
    Set data = Sheets("السجل الكلي")
    Set ws = Sheets("السجل المطلوب")
    ws.Range("C9:Q" & ws.Range("D" & Rows.Count).End(xlUp).Row).ClearContents
    Arr = data.Range("D9:R" & data.Range("D" & Rows.Count).End(xlUp).Row).Value
    ReDim Temp(1 To UBound(Arr, 1), 1 To UBound(Arr, 2))
    For i = 1 To UBound(Arr, 1)
    If Arr(i, 2) = ws.Range("Q2") Then
    p = p + 1
    For j = 1 To 14
    Temp(p, j) = Arr(i, Choose(j, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15))
    Next
    End If
    Next
    If p > 0 Then ws.Range("D9").Resize(p, UBound(Temp, 2)).Value = Temp
    If p > 0 Then ws.Range("C9") = 1: ws.Range("C9").Resize(p).DataSeries Step:=1
    End Sub

     

    تسلم يا استاذ زيزو تم المطلوب والحمد لله لكن عند الاستدعاء يختفي الكلام الموجود في رؤس الاعمدة مثل م اسم التلميذ الي اخره هل يمكن تجنب اخفائها بدلا من كتابتها كل مرة وشكرا جزيلا لحضرتك

  6. 14 ساعات مضت, مصرى مصرى said:

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

    توزيع.rar

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

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

  8.  

    أخى الفاضل الأستاذ/ سيد كيف يمكننى القيام بعملية الحفظ هذه 

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

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

    واعتذر مقدما على الإطالة من أجل شرح الفكرة

    1-     سنحذف الكود القديم وهو ما قمت به في الملف المرفق

    2-     فكرة التوزيع مرتبطة بعدد اللجان وعدد الفترات أي بالخليتين n2  ، n3

    3-     إذا كان لدينا مثلا 10 فترات للامتحان سيكون الترتيب على هذا النحو بشكل ثابت : ترتيب الخلايا أفقيا من d8  إلى n8   من 1 إلى 10 بالترتيب وإذا كان عدد الفترات 5 فيكون الترتيب من 1 : 5 بالترتيب وتكون الخلايا الباقية فارغة وقد نجحت في وضع معادلة تحقق ذلك في الملف المرفق فعند تغيير عدد الفترات يتحقق الترتيب في الخلايا المطلوبة بحسب عدد الفترات تصبح الخلايا الباقية فارغة

    4-     يتم ترتيب الخلايا رأسيا في العمود d من 1 : 10 حسب عدد اللجان المطلوبة في الخلية n2  

    أي انه إذا كان عدد اللجان 5 سيكون الترتيب من 1 : 5 رأسيا من d12: d8  ، واذا كان عدد اللجان 10 سيكون الترتيب من 1 : 10 رأسيا من d17: d8 وهكذا حسب عدد اللجان

    5-     هنا سنجد أن العمود  e يبد أ بلجنة رقم 2 ويصبح المطلوب هو تكملة الترتيب ليصل إلي نهاية عدد اللجان ثم يبدأ من جديد بمعنى انه سيبدأ باللجنة 2 : 10 رأسيا وتبقي لجنة واحدة هي الخلية e17  فتكون رقم 1 وفي العمود التالي الذي يبدأ بلجنة 3 وينتهي بلجنة 2 وهكذا لبقية الأعمدة وقد قمت بوضع المعادلة لكنها فشلت في البدء من جديد عند انتهاء أخر لجنة

    6-     بهذا قمنا بتوزيع اللجان على ملاحظ واحد ونريد توزيع اللجان علي المجموعة الثانية ليصبح لكل لجنة ملاحظان وهنا سيكون العمود الأول d  مرتبا أيضا من 1: 10 وبالطبع أنا اختار الرقم كمثال باعتبار أن اللجان المطلوبة 10 ويكون الترتيب من d27:d18 من 10:1

    7-     التوزيع في باقي الأعمدة سيختلف سنبدأ الأعمدة التالية بأرقام اللجان الفردية التي تلي اللجنة 1 أي بدأ من الخلية d18  وعندما يكون عدد اللجان 10 ستبدأ الخلية e18 باللجنة 3 والخلية f18  باللجنة 5 والخلية g18 باللجنة 7 والخلية h18 باللجنة 9 وبهذا فقد انتهت بدايات اللجان الفردية وتبقي 4 أعمدة تبدأ الخلية i18 باللجنة الزوجية 2 وj18 باللجنة 4 وk18 باللجنة 6 وl18 بالجنة 8 و m18 باللجنة 10 وهنا سنقف علي نقطة مهمة إذا كان عدد اللجان فردي فالتوزيع سيحقق الشروط أما إذا كان زوجي فالمطلوب تبديل آخر عمودين زوجيين بمعنى انه لو كانت اللجان 10 فان العمود قبل الأخير الموزع يبدأ ب10 والعمود الأخير يبدأ ب8 وبهذا سوف تتحق الشروط

    8-     بالطبع سنفعل كما فعلنا في المجموعة الأولي نرتب رأسيا ونبدأ من جديد بمعنى كمثال العمود e  ترتب الخلايا من e27:e18  من 3 : 10 ثم 1 ثم 2 في الخلايا المتبقية بعد نهاية عدد اللجان وهكذا

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

    10- بالطبع يلزم هذا الترتيب أن يكون عدد الملاحظين ضعف عدد اللجان وإذا زاد فلدينا حلان الأول أن نوزع على العدد الموجود والزيادة سيكون احتياطيا ونبدل مع الأرقام التي يحققها الكود فيما بينهم والثاني وهو ما أتمناه أن نضع ح كرمز للاحتياطي يدويا وفي أثناء ذلك يلزم الكود أن يتجاوز الخلية المكتوب فيها ح ليكمل الترتيب فيما بعدها وخاصة انه في نطاق محدد من 1 : عدد اللجان المطلوبة

    11- أخيرا شكرا لكم وأتمنى أن أجد العون والمساعدة   

    توزيع 2.rar

    توزيع 2.rar

  10. سلام الله عليكم ورحمته وبركاته الملف المرفق هو عبارة عن ساقية لتوزيع الملاحظين على لجان الامتحانات بشكل يسير وسهل وتمثل مجموعة الفترات عدد الفترات التي سيؤدي فيها التلميذ الامتحان وقد يكون هناك فترة واحدة في اليوم او اثنين او ثلاثة حسب جدول الامتحان اي ان الفترة تمثل مادة دراسية ويتم التوزيع الصحيح وفقا لمجموعة من الشروط هي :

    1- اذا قام الكود مثلا كما في الملف المرفق في ف1 بجعل الملاحظ عادل في لجنة 9 فاننا نطلب من الكود امرين الاول ألا يدخل عادل نفس اللجنة فيما بعد فلا يتكرر دخول نفس اللجنة مرتين لنفس الملاحظ والطلب الثاني هو ان الملاحظ عادل كان معه في نفس اللجنة 9 الملاحظ محمود وهذا هو الشرط الثاني لا يجب ان يجتمع عادل مع محمود مرة ثانية في اي لجنة أخرى اذن المطلوب الثاني هو عدم تكرار دخول ملاحظ مع ملاحظ اخر اكتر من مرة واحدة

    2- المفروض ان يوزع الكود 2 ملاحظين على كل لجنة وهذا يعنى ان نجد لجنة 1 مرتين ولجنة 2 مرتين وهكذا الى اخر اللجان المحدد عددها في الخلية n2

    ولكن اذا نظرنا للكود نجد مثلا في ف1 اللجنة 1 مكررة 3 مرات عند فوزى واكرامى وصلاح وهذا يعنى ان الكود يسقط ملاحظ من لجنة اخرى فلكل لجنة 2 ملاحظين ومن الممكن ان يتكرر رقم اللجنة اكثر من مرة في حين اننا نريده مرتين فقط

    3- تم وضع الاحتياطي بشكل يدوي من خلال حرف ح وهو ما يعنى اننا اذا كان لدينا مثلا 23 ملاحظ وعندنا 10 لجان فاننا بحاجة الى 20 منهم ويتبقي 3 ملاحظين احتياطي نضعهم يدويا والكود سليم في هذه النقطة حيث يسمح بذلك ولا يحذفمن تم تحديد انهم احتياطي عند التوزيع بالضغط على زر توزيع اللجان 

    4- اتمنى ان يكون المطلوب واضحا وانتظر خبرات اساتذتنا الكبار والسلام عليكم ورحمة الله وبركاته

    كود التوزيع.rar

  11. 11 ساعات مضت, ياسر خليل أبو البراء said:

    اخي الكريم سيد

    أفضل دائماً إفراد طلب واحد لكل موضوع .. هذا من ناحية 

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

    تقبل تحياتي

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

    • Like 1
  12. في ٢٨‏/١‏/٢٠١٧ at 15:16, مصرى مصرى said:

     

    أولا : أعتذر عن تأخرى في الرد  بسبب عطل في النت

    ثانيا اشكر الأستاذ الفاضل محمود الشريف لكلماته وتحفيزه ومجهوده ومتابعته فبارك الله فيه وأكثر من أمثاله

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

    رابعا : كود الأستاذ ياسر وملف الأستاذ الشهابي قاما بالمطلوب في هذه الجزئية مع ملاحظة بسيطة وهي ضرورة جعل الاحتياطي يصل إلى عدد أكبر نسبيا وهو ما نوه اليه استاذنا الشهابي فنريد ان يصل للعدد 8 الموجود تحسبا لاي موقف وعدد موجود ولي ملاحظة ثانية في ملف الاستاذ الشهابي وهي انه عند تغيير الفترة مثلا لفترة ليس بها ملاحظين مثل ف12 مثلا لا تمسح القيم الموجودة في عمود الصف ورقم الجلوس ونظل مكتوبة رغم انه لا يوجد ملاحظين ولا توزيع لهذه الفترة من الاساس فأتمنى ان تعدل

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

     

  13. 6 دقائق مضت, مصرى مصرى said:

    الأستاذ سيد بارك الله فيك في فكرة الملف اتمنى ان تكمل الملف لنستفيد منه

    شكرا لك أخي / مصرى أنا صممت الملف ولكن ليس عندى خبرة بالأكواد وفى انتظار أساتذتنا وخبرائنا ليكتمل العمل ويستفيد منه الجميع

  14. الأستاذ الفاضل الشهابي / سلام الله عليك ورحمته وبركاته

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

    الساقية المعدلة2.rar

  15. 8 ساعات مضت, الشهابي said:

    الأخ العزيز / سيد تيجر 

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

    كان بودي مساعدتكم في هذا الموضوع بس للأسف هذا فوق مستوانا 

    العمل هو للأستاذ كبير عبد الله قشير حفظه الله 

    وهو له فترة منقطع عن الدخول في الموقع 

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

    فأعتذر كثيرا لكم وأتمنى لكم التوفيق 

    العفو

    شكرا لك استاذي علي مجهودك واتمني ان أجد من يقدم العون والمساعدة لأن الملف مهم جدا في عملنا وسوف يوفر الكثير من الوقت والمجهود

×
×
  • اضف...

Important Information