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

يوسف عطا

05 عضو ذهبي
  • Posts

    1,754
  • تاريخ الانضمام

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

كل منشورات العضو يوسف عطا

  1. ربما يفيد أن تأخذ الملف الذى به الأكواد التى تريدها وتعدل شيتاته بما يتناسب مع ملفك
  2. معلومة هامة يا gia144 معنى ذلك أن تقويم أم القرى لا يتغير بتغير رؤية هلال بداية الشهر القمرى من عدم الرؤية ؟؟ كذلك هل معنى ذلك أنه قد يبدأ صوم رمضان ويكون السعوديين صائمين مع أن تاريخ اليوم 30 شعبان ؟؟ طبقاً لتقويم أم القرى ؟؟ أو هل معنى ذلك ايضاً أن تكون وقفة عرفات يوم 8 ذو الحجة ؟؟ مثلاً ؟؟ طبقاً لتقويم أم القرى ؟؟ لا أعتقد أن هذا يحدث ولو كان إعتقادى خطأ ولو كان هذا الكلام صحيحاً إذن فما أسهل أن يتم عمل تقويم أم القرى لعشرات السنين القادمة بل لمئات السنين والطريقة ببساطة تكون ربط السنة الميلادية ( الشمسية ) بتقويم أم القرى فتكون كل 5 سنوات من تقويم أم القرى تقل كل منها بـ 11 يوم عن تقويم السنة الميلادية وتكون السنة السادسة تقل بـ 12 يوم حيث كما ذكرت السنة القمرية تقل عن السنة الشمسية 11.2 يوم أى تأتى 5 سنوات قمرية 355 يوم ويكون شهر ذو الحجة في كل منها 30 يوم وتأتى السنة السادسة 354 يوم فيكون فيها شهر ذو الحجة 29 يوم وتكون باقى الشهور فى جميع السنوات بالتبادل الشهور الفردية 30 يوم والشهور الزوجية 29 يوم
  3. تم تجميع المعادلات المتشابهة فى كود واحد لجمع خليتين فى خلية ثالثة سواء كانت الخلايا متجاورة أو غير متجاورة مع إعتبار أن غ + غ = غ غ + رقم = الرقم رقم + رقم = مجموعهما الكود هو كالتالى وهو يعمل بكفاءة Private Sub Worksheet_Selectionchange(ByVal Target As Range) On Error Resume Next Dim RR&, R& With Application .ScreenUpdating = False .EnableEvents = False RR = Cells(Rows.Count, 1).End(xlUp).Row For R = 11 To RR For TT = 1 To 32 AC = Choose(TT, 9, 14, 11, 20, 25, 22, 31, 36, 33, 49, 48, 45, 63, 62, 59, 70, 75, 72, 88, 87, 84, 95, 100, 109, 114, 111, 120, 125, 122) AT = Choose(TT, 10, 15, 16, 21, 26, 27, 32, 37, 38, 50, 51, 52, 64, 65, 66, 71, 76, 77, 89, 90, 91, 97, 102, 110, 115, 116, 121, 126, 127) AD = Choose(TT, 11, 16, 17, 22, 27, 28, 33, 38, 39, 51, 52, 53, 65, 66, 67, 72, 77, 78, 90, 91, 92, 98, 103, 111, 116, 117, 122, 127, 128) If Cells(R, AC) = "غ" And Cells(R, AT) = "غ" Then Cells(R, AD) = "غ" Else Cells(R, AD) = Val(Cells(R, AC)) + Val(Cells(R, AT)) If Cells(R, AC) = "" And Cells(R, AT) = "" Then Cells(R, AD) = "" End If Next Next .ScreenUpdating = True .EnableEvents = True End With End Sub المطلوب الأول أريد دمج الكود السابق مع الكود التالى On Error Resume Next Dim RR&, R& With Application .ScreenUpdating = False .EnableEvents = False RR = Cells(Rows.Count, 1).End(xlUp).Row For R = 11 To RR For TT = 1 To 12 D1 = Choose(TT, 12, 18) D2 = Choose(TT, 23, 29) D3 = Choose(TT, 34, 40) D4 = Choose(TT, 46, 54) D5 = Choose(TT, 60, 68) D6 = Choose(TT, 73, 79) D7 = Choose(TT, 85, 93) D8 = Choose(TT, 96, 99) D9 = Choose(TT, 101, 104) DA = Choose(TT, 105, 107) If Cells(R, D1) = "غ" And Cells(R, D2) = "غ" And Cells(R, D3) = "غ" _ And Cells(R, D4) = "غ" And Cells(R, D5) = "غ" And Cells(R, D6) = "غ" _ And Cells(R, D7) = "غ" And Cells(R, D8) = "غ" And Cells(R, D9) = "غ" Then Cells(R, DA) = 0 Else Cells(R, DA) = Val(Cells(R, D1)) + Val(Cells(R, D2)) + Val(Cells(R, D3)) + _ Val(Cells(R, D4)) + Val(Cells(R, D5)) + Val(Cells(R, D6)) + _ Val(Cells(R, D7)) + Val(Cells(R, D8)) + Val(Cells(R, D9)) If Cells(R, D1) = "" And Cells(R, D2) = "" And Cells(R, D3) = "" _ And Cells(R, D4) = "" And Cells(R, D5) = "" And Cells(R, D6) = "" _ And Cells(R, D7) = "" And Cells(R, D8) = "" And Cells(R, D9) = "" _ Then Cells(R, DA) = "" End If Next Next .ScreenUpdating = True .EnableEvents = True End With End Sub توجد مجموعة أخرى من المعادلات سبق عرضهما فى المشاركات لجمع 3 خلايا فى المشاركة رقم 8 وكودها فى المشاركة 9 وبنفس الشروط السابقة بخصوص غ ونريد أن نجعل الثلاث أكواد كود واحد
  4. إبداع ليس له مثيل إلا عند اساتذة أوفيسنا الكلمات لا توفيك حق قدرك مهما بالغت فى المدح فأعمالك تشهد عنك يا استاذنا الجليل خبور خير ربنا يجعل أعمالك فى موازين حسناتك ولكن إسمحلى أستاذى الغالى أن أطلب طلب صغير على هذا الملف ليتناسب مع أعمال أخرى وقد شجعنى على هذا الطلب أن المستخدم يستطيع تغيير مسميات خانات التقرير بتغيير مسميات رؤوس الأعمدة وطلبى هو السماح بزيادة خانات التقرير لنتمكن من إضافة أعمدة أخرى مثلاً أن تظهر رسالة عند الضغط على كلمة تقرير تسألنا عن عدد الأعمدة التى نريدها مع قابليتها للزيادة حتى 510 عامود ( إجمالى أعمدة الإيكسيل فى الصفحتين) أو كما ترون سيادتكم بحد أدنى 50 عامود أو أن يكون فورم التقرير أوتوماتيكى تلقائياً تظهر فيه اسماء الأعمدة المضافة فى صفحات البيانات تلقائياً وأتمنى ألا أكون قد أثقلت عليك بهذا الطلب ولكن الفكرة أنه القول الشائع بأن الحاجة أم الإختراع ليس صحيح دائماً فقد نرى الإختراع (ملفك المتميز) فتظهر فى عقلنا فكرة لإستخدامه بطريقة أخرى دمت بود أخونا الغالى
  5. مش دايماً فى أغلب السنوات يكون مضبوط ويأتى 1 رمضان مشتركاً ولكنه يفرق يوم واحد فقط فى بعض السنوات ولكنه يعود فيتوحد فى أول ذو الحجة وفى جميع الحالات ونتيجة إختلاف بعض الدول فى تحديد بداية الشهر القمرى نتيجة أنه يعتمد على تقاطع خط الطول مع دائرة العرض فى المكان فيوجد فى الكومبيوتر خاصية ضبط يوم التاريخ الهجرى بتقديمه أو تأخيره يوماً ليتماشى مع الدولة التى تريد ضبط تقويمك عليها ولا توجد هذه الخاصية فى تقويم أم القرى بالكمبيوتر ولكن يقوم مستخدم الكمبيوتر بضبط التاريخ الهجرى فى بداية كل شهر ليتماشى مع تقويم أم القرى حتى آخر الشهر والله أعلم
  6. الأخ الغالى ابو نصار تم عمل الكود التالى للجمع بدلاً من المعادلة فى المشاركة السابقة على نفس منوال الكود الذى أرفقته سيادتكم من قبل هل كتابته سليمة أم ترى يشوبها شئ من الناحية الفنية ؟؟ Private Sub Worksheet_Selectionchange(ByVal Target As Range) On Error Resume Next Dim RR&, R& With Application .ScreenUpdating = False .EnableEvents = False RR = Cells(Rows.Count, 1).End(xlUp).Row For R = 11 To RR For TT = 1 To 12 D1 = Choose(TT, 12) D2 = Choose(TT, 23) D3 = Choose(TT, 34) D4 = Choose(TT, 46) D5 = Choose(TT, 60) D6 = Choose(TT, 73) D7 = Choose(TT, 85) D8 = Choose(TT, 96) D9 = Choose(TT, 101) DA = Choose(TT, 105) If Cells(R, D1) = "غ" And Cells(R, D2) = "غ" And Cells(R, D3) = "غ" _ And Cells(R, D4) = "غ" And Cells(R, D5) = "غ" And Cells(R, D6) = "غ" _ And Cells(R, D7) = "غ" And Cells(R, D8) = "غ" And Cells(R, D9) = "غ" Then Cells(R, DA) = 0 Else Cells(R, DA) = Val(Cells(R, D1)) + Val(Cells(R, D2)) + Val(Cells(R, D3)) + _ Val(Cells(R, D4)) + Val(Cells(R, D5)) + Val(Cells(R, D6)) + _ Val(Cells(R, D7)) + Val(Cells(R, D8)) + Val(Cells(R, D9)) If Cells(R, D1) = "" And Cells(R, D2) = "" And Cells(R, D3) = "" _ And Cells(R, D4) = "" And Cells(R, D5) = "" And Cells(R, D6) = "" _ And Cells(R, D7) = "" And Cells(R, D8) = "" And Cells(R, D9) = "" _ Then Cells(R, DA) = "" End If Next Next .ScreenUpdating = True .EnableEvents = True End With End Sub سؤال آخر هل ترى سيادتكم أنه من الأفضل أن يتم وضع الكود فى حدث الصفحة ؟؟ أم يتم ربطه بزر فى موديول وبالضغط على الزر يتم تحديث البيانات وجمعها ؟؟ حيث لا تزال الشاشة تومض بعض الشئ لكثرة الأكواد فى حدث نفس الصفحة أم هل هناك حل آخر عن طريق دمج كل الأكواد فى كود واحد ؟؟ بمعنى آخر لو نريد وضع الأكواد الثلاثة السابقة مع كود رابع بنفس الفكرة جمع خلايا غير متجاورة فى نفس الصفحة هل يتم وضع هذه الأكواد كما هى تحت بعضها ؟؟ أم لابد من دمجها لتكون كود واحد دمتم بخير
  7. الف شكر على الشرح الوافى وصلت الفكرة وهنا أطمع فى إضافة طلب آخر تحويل المعادلة التالية إلى كود =IF(AND(L11="غ";W11="غ";AH11="غ";AT11="غ";BH11="غ";BU11="غ";CG11="غ";CR11="غ";CW11="غ");0;SUM(L11;W11;AH11;AT11;BH11;BU11;CG11;CR11;CW11)) والإختلاف هنا أن الخلايا التى سنتعامل معها ليست متجاورة مثلما كانت المعادلتان السابقتان كما يوجد إختلاف آخر فى النتيجة فتكرار الـ غ فى كل الخلايا المجموعة تكون نتيجته صفر أى غ + غ 9 مرات لا تعطى نتيجة غ مثلما سبق ولكن تعطى صفر بالحساب لأن هذا العمود سيتم إستخدام مخرجاته فى ترتيب الطالبات ولابد أن تكون به أرقام حتى لا يظهر إرور فى دالة الترتيب بينما أن وجود غ فى بعض الخلايا ووجود أرقام فى خلايا أخرى يجعل النتيجة هى مجموع الأرقام عادى مثلما سبق وهنا إسمحلى أن أطلب منك أن أضع الكود أولاً وتقوم سيادتكم بتصحيحه بعد ذلك لعلى أتعلم منكم يا استاذى الكريم أمهلنى ربع ساعة لوضع الكود عزيزى الغالى الف شكر
  8. إنه حقاً علم ينتفع به نسأل الله أن يكون فى موازين حسناتك دمت بكل خير أستاذنا الكبير
  9. بالطبع أعرف أن الفكرة فى طريقة رفع الملف وقد ذكرت لك عزيزى الغالى أنه يمكنك أخذ صور برنت سكرين للملف سواء مرة واحدة أو على أجزاء وتقوم برفعها للموقع الذى تريد فيراها الأخرين دون أن يستطيعوا التعديل فيها ولكن كما ذكرت لحضرتك أنا أريد الإطلاع على الملف لأنى افكر فى الإستثمار فى مجال الفوركس ولو رفعت الملف لى أكون لك من الشاكرين ولو لا تريد رفعه لى فأيضاً لك كل الشكر ومرحباً بك دائماً
  10. بالفعل أستاذى عباد هذا ما قمت به عند التعديل مع فارق واحد فقط فى السطر السابع إستخدمت السطر التالى طبقاً للكود الذى أرفقته سيادتكم سابقاً RR = Cells(Rows.Count, 9).End(xlUp).Row ولكن فى كودكم الآخر إستخدمتم هذا السطر RR = Cells(Rows.Count, "BD").End(xlUp).Row فهل أطمع أن تخبرنى بالفرق بين السطرين ولماذا إستخدمت حضرتك السطر الأول فى الكود الأول والسطر الثانى فى الكود الثانى ؟؟ الف شكر يا أخى الغالى
  11. الف شكر عباد بك الله يبارك فيك طيب لو تكرمت ما التغيير الذى اقوم به للتعامل مع المعادلة التالية وهى تختلف عن المعادلة السابقة فى عدد الخانات التى سيتم جمعها حيث أنها 3 خانات وليس إثنتين حيث يتم جمع خلايا الأعمدة رقم 56 و 57 و 58 فى العمود رقم 59 و الأعمدة رقم 81 و 82 و 83 فى العمود رقم 84 =IF(AND(BD11="غ";BE11="غ";BF11="غ");"غ";SUM(BD11:BF11)) والفكرة هى هى نفسها غ + غ + غ = غ أى أرقام + غ = مجموع الأرقام أى أرقام فى ال3 خانات = مجموعهم جارى محاولة التطبيق بكود مشابه على نفس المنوال وسوف أعرضه هنا وأنتظر تصحيحه من سيادتكم لو كان به خطأ مشكورين جميعاً
  12. التقويم الهجرى نظرياً يتم حسابه عن طريق عدة اسس منها 1. السنة الهجرية تقل 11.2 يوم عن السنة الميلادية 2. السنة الهجرية لا يتتالى فيها شهران كل منهما 30 يوم ابداً 3. يجوز ان يأتى شهران متتاليان كل منهما 29 يوم ولكن لا اعرف كيف يتم تحديدهما ربما ذلك يرتبط بالسنة الميلادية الكبيسة وربما يعتمد على مرور عدد معين من السنوات الهجرية اما تقويم ام القرى فيعتمد على رؤية الهلال ويتم تحديد أول يوم فى السنة طبقاً لتقويم أم القرى بشرطين هما رؤية ولادة الهلال قبل غروب الشمس في مكة والشرط الآخر غروب القمر بعد غروب الشمس في مكة وذلك يوم 29 ذو الحجة فإن لم يتحقق الشرطان فى هذا اليوم إعتبر أن اليوم التالى هو 30 ذو الحجة شرط أن يكون ذو القعدة كان 29 يوم ولو تحققا إعتبر أن اليوم التالى هو 1 محرم وبالطبع يكون ذلك معروفاً مسبقاً عن طريق موعد بداية شهر رمضان و عيد الفطر وعيد الأضحى والفارق بينهما 70 يوم ورؤية هلال بداية شهر ذو الحجة وبحساب عدد الايام فى الشهور الخمسة الأخيرة من السنة الهجرية
  13. هل لو غيرنا فى الكود الأصلى كما يلى نحصل على نفس النتيجة أم يصبح الكود خطأ من الناحية الفنية ؟؟ Private Sub Worksheet_Selectionchange(ByVal Target As Range) For s = 11 To 2000 '00 If Cells(s, 9).Value = "غ" And Cells(s , 10).Value = "غ" Then Cells(s , 11).Value = "غ" Else Cells(s , 11).Value = Val(Cells(s, 9).Value) + Val(Cells(s , 10).Value) If Cells(s , 9).Value = "" And Cells(s, 10).Value = "" Then Cells(s, 11).Value = "" End If Next End Sub
  14. بعد جهد جهيد توصلت لطريقة الدمج ليكون الكود مفعلاً فى عدة أعمدة كما يلى أرجو أن يكون صحيحاً من الناحية الفنية ولكن مشكلة تحديث الصفحة بستمرار لا زالت تحتاج حل لأن كل كليك أو إنتقال لخلية تجعل علامة تحديث الصفحة تومض آلاف المرات فأضطر للإنتظار أكثر من دقيقة حتى أتمكن من وضع رقم آخر فى خلية أخرى أرجو المساعدة فى حل المشكلة المذكورة الكود كما استخدمه كالتالى علماً بأنه سيتم تمديده ليتفعل على أعمدة أخرى وقد غيرت فى إسم المتغير s ليكون بإسم العمود الذى سأطبق فيه الكود حتى لا أتشتت أثناء تمديد الكود لأعمدة أخرى Private Sub Worksheet_Selectionchange(ByVal Target As Range) For K = 1 To 2000 '00 If Cells(K + 10, 9).Value = "غ" And Cells(K + 10, 10).Value = "غ" Then Cells(A + 10, 11).Value = "غ" Else Cells(K + 10, 11).Value = Val(Cells(K + 10, 9).Value) + Val(Cells(K + 10, 10).Value) If Cells(K + 10, 9).Value = "" And Cells(K + 10, 10).Value = "" Then Cells(K + 10, 11).Value = "" End If Next For P = 1 To 2000 '00 If Cells(P + 10, 14).Value = "غ" And Cells(P + 10, 15).Value = "غ" Then Cells(P + 10, 16).Value = "غ" Else Cells(P + 10, 16).Value = Val(Cells(P + 10, 14).Value) + Val(Cells(P + 10, 15).Value) If Cells(P + 10, 14).Value = "" And Cells(P + 10, 15).Value = "" Then Cells(P + 10, 16).Value = "" End If Next For V = 1 To 2000 '00 If Cells(V + 10, 20).Value = "غ" And Cells(V + 10, 21).Value = "غ" Then Cells(V + 10, 22).Value = "غ" Else Cells(V + 10, 22).Value = Val(Cells(V + 10, 20).Value) + Val(Cells(V + 10, 21).Value) If Cells(V + 10, 20).Value = "" And Cells(V + 10, 21).Value = "" Then Cells(V + 10, 22).Value = "" End If Next For AA = 1 To 2000 '00 If Cells(AA + 10, 25).Value = "غ" And Cells(AA + 10, 26).Value = "غ" Then Cells(AA + 10, 27).Value = "غ" Else Cells(AA + 10, 27).Value = Val(Cells(AA + 10, 25).Value) + Val(Cells(AA + 10, 26).Value) If Cells(AA + 10, 25).Value = "" And Cells(AA + 10, 26).Value = "" Then Cells(AA + 10, 27).Value = "" End If Next For AG = 1 To 2000 '00 If Cells(AG + 10, 31).Value = "غ" And Cells(AG + 10, 32).Value = "غ" Then Cells(AG + 10, 33).Value = "غ" Else Cells(AG + 10, 33).Value = Val(Cells(AG + 10, 31).Value) + Val(Cells(AG + 10, 32).Value) If Cells(AG + 10, 31).Value = "" And Cells(AG + 10, 32).Value = "" Then Cells(AG + 10, 33).Value = "" End If Next For AL = 1 To 2000 '00 If Cells(AL + 10, 36).Value = "غ" And Cells(AL + 10, 37).Value = "غ" Then Cells(AL + 10, 38).Value = "غ" Else Cells(AL + 10, 38).Value = Val(Cells(AL + 10, 36).Value) + Val(Cells(AL + 10, 37).Value) If Cells(AL + 10, 36).Value = "" And Cells(AL + 10, 37).Value = "" Then Cells(AL + 10, 38).Value = "" End If Next For BT = 1 To 2000 '00 If Cells(BT + 10, 70).Value = "غ" And Cells(BT + 10, 71).Value = "غ" Then Cells(BT + 10, 72).Value = "غ" Else Cells(BT + 10, 72).Value = Val(Cells(BT + 10, 70).Value) + Val(Cells(BT + 10, 71).Value) If Cells(BT + 10, 70).Value = "" And Cells(BT + 10, 71).Value = "" Then Cells(BT + 10, 72).Value = "" End If Next End Sub
  15. الله ينور عليك يا ابو حنين فعلاً كدة الكود قام بما تقوم به المعادلة فى 2000 صف ولكن عندى إستفسارين 1. الملف يتم تحديثه كل جزء من ثانية أثناء الكتابة فتظل علامة التحديث أو التحميل الخاصة بالإيكسيل موجودة دائماً وكذلك تتأخر عملية إدخال الدرجات كيف أتغلب على هذه النقطة 2. هل لتكرار نفس الكود فى أعمدة أخرى أقوم بكتابة كود جديد مع تغيير أرقام الأعمدة ؟؟ أم تغيير المتغير s ؟ أم تغيير كلاهما ؟؟ أم إضافة أرقام الأعمدة الأخرى فى نفس الكود ؟؟؟ حيث حاولت ولم أفلح علماً بأنى أريد تطبيق نفس الكود على الأعمدة رقم 11 و 16 و 22 و 27 و 33 و 38 و 72 و 77 و 111 و 116 و 122 و 127 ليجمع كل عمودان قبلهما أو يتعامل مع حرف غ كما طبقنا سلفاً غ + غ = غ غ + رقم = الرقم رقم + غ = الرقم رقم + رقم = مجموعهما
  16. طيب يا أخى الغالى لنعيد صياغة المطلوب بطريقة أخرى ولو صح نبدأ نشتغل لأن المطلوب غير واضح ولا حتى فى المرفق والرجاء يكون المرفق 2003 لأن ليس كل الأخوة يعملون على 2007 اخى العزيز ما هى شروط ان تساوى صفر ؟؟ يعنى باختصار فى كل الصفوف من 1 الى 1659 وفى كل الأعمدة من أول عمود إلى العمود 205 إذا كان بنفس الصف رقم 1 وبنفس العمود كلمة OK يضع فى العمود D فى نفس الصف رقم 1 طيب ما هى شروط وضع صفر ؟؟ هلى لو لم يتوفر هذان الشرطان يتم وضع الصفر ؟؟ طيب ماذا لو تكرر الرقم 1 و الكلمة OK أكثر من مرة فى نفس السطر أو نفس العمود ؟؟ هل نضع رقم 1 فى الخلية D أيضاً ؟؟
  17. الرجاء المساعدة فى تحويل المعادلة الآتية المتكررة فى العمود K من الخلية K11 إلى الخلية K 2000 =IF(AND(I11="غ";J11="غ");"غ";SUM(I11:J11)) إلى كود يطبق فى نفس الخلايا المذكورة علماً بأن المعادلة تتكرر فى 12 عمود آخر هم K P V AA AG AL BT BY DG DL DR DW وقد سميت الموضوع برقم 1 لأنه توجد عدة معادلات آخرى سأحاول تحويلها إلى أكواد محاولاً التعلم من هذا الموضوع ولو لم أفلح فسيكون الموضوع القادم لى بعنوان مطلوب 2 تحويل معادلة إلى كود
  18. قد يكون الحل من وجهة نظرى هو رفع الداتا كصورة من الملف
  19. ممكن نسخة من هذا الملف يا الغالى ؟؟ للإطلاع عليها مشكور مقدماً
  20. المشكلة فى حالة إستخدام التنسيق الشرطى أن نكون نحتاج إستخدام التنسيق الشرطى بشروط أخرى وفى هذه الحالة فربما نكون فى إحتياج إلى أكثر من 3 شروط بما فيها شرط تلوين السطور أم هل يمكن إستخدام التنسيق الشرطى لتلوين كامل السطر إذا كان شرط التنسيق فى خلية واحدة فى السطر مثلاً فى خلايا العمود A نضع 1 أو 2 ويكون شرط التنسيق فى خلايا العمود A فيقوم بتفعيل التنسيق فى كل الصف هل هذا ممكن ؟؟
  21. بارك الله فيك أخى محمود وجعل أعمالك فى موازين حسناتك
×
×
  • اضف...

Important Information