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

ياسر خليل أبو البراء

المشرفين السابقين
  • Posts

    13,165
  • تاريخ الانضمام

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

  • Days Won

    412

كل منشورات العضو ياسر خليل أبو البراء

  1. جزيت خيراً أخي العزيز سليم على قوة الملاحظة لم أنتبه لمسح النطاق بعد الترحيل .. إليك التعديل التالي ليناسب المشكلة في حالة تكرار الكود Sub Test() Dim Lr As Long, startRow As Long startRow = 5 With ActiveSheet Lr = .Cells(Rows.Count, "D").End(xlUp).Row If Lr < startRow Then MsgBox "Put Some Data", vbExclamation: Exit Sub .Range("H" & startRow).Resize(Lr - (startRow - 1)).Value = .Range("D" & startRow).Resize(Lr - (startRow - 1)).Value .Range("I" & startRow).Resize(Lr - (startRow - 1)).Value = .Range("F" & startRow).Resize(Lr - (startRow - 1)).Value .Range("D" & startRow & ":F" & Lr).ClearContents .Range("J" & startRow).Resize(Lr - (startRow - 1)).Formula = "=RC[-2]-RC[-1]" End With End Sub
  2. بارك الله فيك أخي العزيز سليم وهذه محاولة مني بعد اقتباس الفكرة من الكود الذي قدمته Sub Test() Dim Lr As Long, startRow As Long startRow = 5 With ActiveSheet Lr = .Cells(Rows.Count, "D").End(xlUp).Row .Range("H" & startRow).Resize(Lr - (startRow - 1)).Value = .Range("D" & startRow).Resize(Lr - (startRow - 1)).Value .Range("I" & startRow).Resize(Lr - (startRow - 1)).Value = .Range("F" & startRow).Resize(Lr - (startRow - 1)).Value .Range("J" & startRow).Resize(Lr - (startRow - 1)).Formula = "=RC[-2]-RC[-1]" End With End Sub يمكن التعديل رقم 5 حيث يمثل صف البداية للبيانات المراد التعامل معها تقبلوا تحياتي
  3. أخي العزيز أسامة ولا يهمك .. كلنا نخطيء ولكن علينا أن نتعلم من الخطأ حاول أن تنظم أفكارك بشكل جيد ثم ارفق ملف وبه بعض النتائج المتوقعة ليسهل تصور الفكرة وصدقني أن معرفة المشكلة بشكل واضح يمثل 90 % من الحل .. وهذا ما لا يدركه الكثيرون التخبط في فهم المشكلة يجعل الموضوع يطول بدون داعي وتجد كل من يريد تقديم المساعدة يتخبط ويخمن ويعمل على أساس تخمينه والذي ربما لا يكون هو المطلوب ، فيضيع الوقت والجهد هباءً وبدون فائدة آمل أن نتعلم كيف نتعامل مع المشكلات بأسلوب علمي وبمنطق واضح تقبل وافر تقديري واحترامي
  4. بارك الله فيك أخي العزيز أبو عبد الباري حل رائع وبسيط باستخدام المعادلات ثم تحويل المعادلات لكود .. أقدم طريقة أخرى بعد ما فهمت المطلوب .. قد تكون الطريقة أعقد قليلاً لكنها تفي بالغرض حيث يتم استخدام الخاصية Find .. لتنفيذ المهمة قم بوضع الكود التالي في حدث ورقة العمل ... Private Sub CommandButton1_Click() MyRio (2) 'Column B End Sub Private Sub CommandButton2_Click() MyRio (3) 'Column C End Sub Private Sub CommandButton3_Click() MyRio (4) 'Column D End Sub Private Sub CommandButton4_Click() Dim Found As Range Set Found = Columns(1).Find(Range("H2").Value) Range("I2").ClearContents If Not Found Is Nothing Then Range("I2").Value = Found.Offset(, 4).Value End If End Sub Sub MyRio(Col As Long) Dim Found As Range Set Found = Columns(Col).Find(Range("G2").Value) Range("H2").ClearContents If Not Found Is Nothing Then Range("H2").Value = Found.Offset(, -(Col - 1)).Value End If End Sub قمت بإنشاء إجراء واحد للثلاثة أزرار والتي تخص الاختبارات ، ثم في زر الأمر كل ما عليك هو أن تكتب رقم العمود المراد التعامل معه بالنسبة للزر الرابع الخاص بالنسبة المئوية وهو نفس الفكرة ولكن بما أن مراجع الخلايا مختلفة فلم يكن على نفس منوال الثلاثة أزرار الأولى أرجو أن يفي بالغرض إن شاء الله تقبلوا تحياتي
  5. بارك الله فيك أخي الغالي أبو حنين ممكن أعرف ليه التعقيد في سطر الـ Union ؟؟!! بدلاً من استخدام السطر بالشكل التالي Union(Range(Cells(i, 4), Cells(i, 4)), Range(Cells(i, 6), Cells(i, 6))).Copy يمكن استخدامه بالشكل التالي Union(Range("D" & I), Range("F" & I)).Copy بسطها يا كبير .. ويا ريت بعد إذنك لو مكانش يضايقك .. دا إذا مكانش يضايقك طبعاً أن تقوم بوضع الكود في المشاركة ..إذ أنني لا أحب تحميل المرفق إلا بعد الإطلاع على الكود المقدم .. تقبل وافر تقديري وحبي واحترامي
  6. أخي الحبيب أبو حنين بارك فيك المعين ، وسدد خطاك على مر السنين ، ورزقك الحكمة والقول المتين ، وجمعنا الله في جنته في أعلى عليين ، أنا وأنت وكل من رد بقول "اللهم آمين"
  7. صراحة ما زال الطلب مبهم بالنسبة لي وقد يكون بسيط جداً لذا التوضيح مهم .. هلا وضحت الأمر بالصور ، وكيف تريد التعامل مع المدى أو الجدول الذي يحتوي على المعطيات ولما لا تكفيك المعادلة المرفقة في الملف ؟! وهل هي تؤدي الغرض أم لا؟ وكيف يكون أحد المعطيات ناقص وتتوقع الحصول على نتيجة صحيحة؟
  8. أخي الكريم أحمد اطلعت على الملف ولم أفهم المطلوب بشكل تام ..هلا وضحت الأمر .. ما هي القيم التي تريد عمل قائمة منسدلة لها في الخلية H2 ..؟؟ وما هو شكل النتائج المتوقعة بعد الاختيار لعنصر معين من القائمة وأين توضع النتائج يستحب ضرب مثال من الملف المرفق لتتضح الصورة تقبل تحياتي
  9. وعليكم السلام ورحمة الله وبركاته أخي الكريم هاني فاروق أهلاً بك في المنتدى ونورت بين إخوانك الرجاء الإطلاع على موضوع التوجيهات في الموضوعات المثبتة في صدر المنتدى لمعرفة التعامل بشكل أفضل مع المنتدى .. تغيير اسم الظهور للغة العربية ، ووضع عناوين مناسبة ومعبرة عن الموضوع .. (العنوان مخالف ، وسيتم تغييره قريباً إن شاء الله) أرى في الملف المرفق أنك قمت بعمل معادلة بالفعل وهي كالتالي =($B$2*$B$4)/(($B$2+$B$4)*$B$12) وضح المطلوب بشيء من التفصيل وبلغة الإكسيل (مش بلغة الكهربا عشان محدش يتأذي فيها ) .. وإن شاء الله تجد العون من إخوانك بالمنتدى حاول ترفق بعض النتائج المتوقعة ليسهل حل المشكلة تقبل تحياتي
  10. أخي الكريم أسامة أخبرتك أن إرفاق شكل النتائج المتوقعة ضروري للغاية حيث يسهل العمل على المشكلة قمت باستخدام المعادلة التالية لجمع القيم الموجبة في العمود N بالشكل التالي =SUMIF($N$13:$N$25,"<0",$N$13:$N$25) والمعادلة التالية لجمع القيم الموجبة =SUMIF($N$13:$N$25,">0",$N$13:$N$25) حسب الملف المرفق فإن الفائض = مجموع الموجب والسالب = 4012 (شاحنة كفائض) الآن كيف يتم توزيع الفائض وفي أي عمود وعلى أي أساس ؟؟ وهل يتم التعامل بشكل منفصل مع كل نوع من الشاحنات أم لا؟
  11. أخي الكريم الملف يعمل بشكل جيد هل هناك رسالة خطأ معينة تظهر لك أم أن الملف لا يفتح أم أنه يفتح ولا يحدث شيء ..؟ إذا كان الاحتمال الأخير فقم بتفعيل إعدادات الماكرو لديك .. بارك الله فيك أخي الحبيب أبو حنين ولا حرمنا الله منك أبد الدهر تقبل وافر تقديري واحترامي
  12. وعليكم السلام أخي الكريم ابن الملك في الحقيقة أن حلقات افتح الباب كانت مجرد بداية لفتح الباب لهذا العالم ، وللأسف قلة من الأعضاء من تابعوا السلسلة .. والحلقات بعد الانتهاء منها قمت بتقديم العديد والعديد من الموضوعات التي فيها شروحات .. ولكن التطبيق العملي أهم من الكلام النظري .. وإذا أردت الاستسفسار عن موضوع معين أبلغنا وإن شاء المولى نفرد له حلقة جديدة في الموضوع .. أمر آخر أن الشرح المكتوب ثقيل بعض الشيء على المتعلم ، وأرى الكثير يتجه لليوتيوب وشرح الفيديوهات لما فيها من أثر أكبر من عملية التعلم وأمر آخر أنا أقوم بوضع موضوعات جديدة كل فترة في المدونة الخاصة بي كما يوجد بعض الفيديوهات على قناتي على اليوتيوب وأخيراً بارك الله فيك وجزيت خيراً على إحياء الموضوع الذي ربما لم يسمع به الكثير من الأعضاء تقبل تحياتي
  13. ارفق الملف أفضل أخي الكريم .. للإطلاع عليه وفحصه ببرامج حماية أخرى قد يكون إنذار كاذب أو قد يكون فيروس ملتصق بالملف أي أن الملف مصاب ولا علاقة للكود بالملف .. مجرد احتمالات
  14. يبدو أن الموضوع غير مهم .... عموماً لمن يهمه الأمر وفاتته المحاضرة .. المحاضرة مفتوحة لمدة 6 أيام (المحاضرة مسجلة وليست بث حي) على الرابط التالي من هنا
  15. أخي الكريم محمد الحمد لله أن تم المطلوب على خير ... أولاً وقبل كل شيء لابد من تعلم الأساسيات للتعامل مع الأكواد .. إليك الرابط التالي فيه شرح وافي للبدايات إن شاء الله يفيدك من هنا بالنسبة للتواصل أنا موجود كلما أتيحت الفرصة ها هنا في المنتدى ولو فيه أي شيء كلنا هنا أخوة وهتلاقينا بجوارك معظم الوقت بالنسبة للكود سيعمل مع إضافة أي ورقة عمل لديك .. أما إذا أردت استثناء ورقة عمل معينة فسيلزم التعديل في السطر التالي If Sh.Name <> Ws.Name Then على سبيل المثال إذا أضفت ورقة عمل جديدة وأسميتها Report وأردت ألا يطبق عليها عمل الكود فيكون السطر بالشكل التالي If Sh.Name <> Ws.Name And Sh.Name <> "Report" Then أي تضاف كلمة And لإضافة شرط جديد ثم تضع مقارنة بأن اسم ورقة العمل لا تساوي الكلمة Report >> أرجو أن تكون قد اتضحت الصورة تقبل تحياتي
  16. يوجد بعض الفيديوهات مجاني (حوالي ثلاثة فيديوهات) .. ويوجد بعض الملفات التي يمكن تحميلها .. ولكن الكورس المتقدم يكلف الكثير .. أنصح بهذا الموقع ومتابعة ما يصدر منه ... تقبل تحياتي
  17. لا أرى أن أحد مهتم بالأمر عموماً بقيت نصف ساعة فقط ..سارع بالتسجيل قبل أن يغلق التسجيل .. وتابع الإيميل لحظة بلحظة لتعرف وقت دخول الكورس والأفضل الدخول قبلها بدقائق .. تقبلوا تحياتي
  18. وعليكم السلام أخي الكريم محمد إليك الكود التالي عله يفي بالغرض إن شاء الله 'Author : YasserKhalil 'Release : 25 - 08 - 2016 Sub Test() Dim Ws As Worksheet Dim Sh As Worksheet Dim I As Long Dim J As Long Dim Lr As Long Dim Last As Long Set Ws = Sheets("Sheet1") J = 3 Application.ScreenUpdating = False With Ws.Range("A3:H1000"): .ClearContents: .Borders.Value = 0: End With If IsEmpty(Ws.Range("C1")) Then MsgBox "Employee Number Not Existing", vbExclamation: Exit Sub For Each Sh In ThisWorkbook.Worksheets If Sh.Name <> Ws.Name Then With Sh Lr = .Cells(Rows.Count, 1).End(xlUp).Row For I = 2 To Lr If Not IsEmpty(.Cells(I, 1)) Then If CDbl(.Cells(I, 1)) = CDbl(Ws.Cells(1, "C")) Then Ws.Cells(J, 1) = Ws.Cells(J, 1).Row - 2 Ws.Cells(J, 2).Resize(1, 3).Value = Sh.Cells(I, 3).Resize(1, 3).Value Ws.Cells(J, 5).Value = Sh.Cells(I, 12).Value Ws.Cells(J, 6).Value = Sh.Cells(I, 10).Value Ws.Cells(J, 7).Formula = "=TIME(8,,)" Ws.Cells(J, 8).Formula = "=IF(AND(F" & J & "="""",G" & J & "=""""),"""",IF(F" & J & ">G" & J & ",(F" & J & "-G" & J & "),0))" J = J + 1 End If End If Next I End With End If Next Sh If J < 4 Then MsgBox "No Employee With That Number", 64: Exit Sub Last = IIf(Ws.Cells(Rows.Count, 1).End(xlUp).Row < 3, 2, Ws.Cells(Rows.Count, 1).End(xlUp).Row) With Ws.Range("A2:H" & Last): .Borders.Value = 1: End With Application.ScreenUpdating = True MsgBox "Done...", 64 End Sub تقبل تحياتي Overtime Report Loop Through All Sheets YasserKhalil.rar
  19. جرب الكود التالي في حدث ورقة العمل Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$7" And Not IsEmpty(Target) Then Rows("9:108").Hidden = True Rows(9).Resize([D7]).Hidden = False End If End Sub
  20. بسم الله ما شاء الله عليك أبو تامر يا غالي بارك الله فيك وجزاك الله كل خير .. أنت مدرسة بل جامعة بل أكبر من ذلك ننتظر منك موضوعات تعليمية لننهل من بحر علمك في هذا المجال .. جعل الله أعمالك في ميزان حسناتك يوم القيامة
  21. أخي الكريم محمد قم بإرفاق الملف ليقوم الأخوة الكرام بالمنتدى بالعمل عليه .. والأفضل إرفاق بعض النتائج المتوقعة ليسهل الوصول لحل ونصيحة لا تكثر من الملفات المرفقة المختلفة .. ركز على ملف مرفق واحد ويكون معبر عن الملف الأصلي تقبل تحياتي
  22. التشتت لن يفيدك .. !! حاول التركيز في طلب واحد فقط حتى إذا تم على خير طرحت موضوع جديد بطلب جديد (هكذا يكون العمل في المنتدى) الوقت لا يسعني الآن للإطلاع على المرفق الأخير ، ولكن بدون الإطلاع ومن خلال كلامك أشعر أن الموضوع بات مختلفاً عن الطلب الأصلي مما يدفعني أن أوجهك إلى طرح موضوع جديد بطلبك الجديد .. ركز في طلب واحد فقط وحاول أن تتابعني في الموضوع ..طلبت منك الاحتمالات التي تقوم بها بشكل يدوي وكيفية تصحيحها لأصل معك إلى نقطة نهاية في الموضوع ، ولكن يبدو أننا لم نوفق في الموضوع والوصول لحل يرضيك أرجو تدخل الأخوة الكرام في الموضوع نظراً لضيق الوقت لدي تقبلوا وافر تقديري واحترامي إليك آخر مرفق حسب الرقم الوظيفي للموظف يتم جلب البيانات من الورقة الأساسية .. لاحظ أنني أتعامل بملف مرفق واحد وأعدل عليه لأحاول أن أصل معك إلى طريق مشترك .. Finger Report Using Filter Method YasserKhalil V3.rar
  23. السلام عليكم ورحمة الله وبركاته إخواني الكرام وأحبابي في الله تلقيت دعوة بالتسجيل في موقع للحصول على كورس مجاني لمدة ساعة واحدة لتعلم أساسيات الـ VBA الكورس سيكون اليوم 25 أغسطس 2016 الساعة التاسعة مساءً بتوقيت الاسكندرية .. بعد التسجيل يمكنك معرفة التوقيت المناسب لمنطقتك رابط التسجيل من هنا كل ما عليك هو أن تسجل إيميلك واسمك وسيصلك رسالة على الإيميل في الحال بعد وصول الإيميل ستدخل على الرابط التالي في الوقت المحدد وتدخل بياناتك لدخول قاعة الدراسة من هنا سيطلب منك إدخال كود مكون من 9 أرقام (سيصلك في الإيميل) + الايميل الخاص بك .. (احتفظ بالكود المكون من 9 أرقام ولا تحذف الرسالة) لا تنسى الموعد الساعة التاسعة مساءاً اليوم 25 أغسطس (تدريب مباشر أونلاين) أرجو أن يكون الكورس مفيد لكم إن شاء الله تقبلوا وافر تقديري واحترامي
  24. أخي الكريم محمد حاول تفهمني أنا مقصدتش إنك تعدل البيانات في ورقة العمل All على الإطلاق .. بس في ورقة التقرير نقدر ونحاول جلب البيانات وضبطها بطريقتنا !! هذا ما اٌصده أما ورقة العمل الأساسية فلن نعدل عليها في أي بيان (لا تقلق) .. العمل سيكون مركز على ورقة العمل المسماة "التقرير Report" فقط أبلغني فقط ووضح كل الاحتمالات التي تقوم بها لتصحيح الإدخالات (يعني الشغل اليدوي عايزين نبرمجه بحيث يسهل عليك الأمر) انظر للنتائج جيداً في ورقة التقرير وسترى أننا نسير في الاتجاه الصحيح البيانات التي تجمعها بشكل يدوي إلى حدٍ ما تم جلبها .. ولم يتبق إلا تصحيحها !! سؤال : هل القسم Department له عمود في الورقة الأساسية أم لا ؟ لا يوجد له أثر أحبذ في الموضوع أن يكون الملف المرفق معبر عن الملف الأصلي تماماً
  25. ما زلت عند موقفي .. !! لابد من تصحيح البيانات بحيث يسهل عليك الأمر .. أنت تقول : ممكن اعملهم يدوي ... وهذا ما لا نحبذه لما لا تفكر في طريقة في تصحيح الأمر بالأكواد ..اذكر فقط الطريقة المعتمدة في العمل اليدوي لمحاولة المساعدة في هذا الأمر لا تتعجل فقد تكون بعيداً عن الهدف أو الطلب الأساسي في الموضوع ولكن صدقني أسلوب حل المشكلات يعتمد في الأساس على خطوات منطقية أعرف أني ربما أزعجتك وطال الموضوع ولكني أحاول المساعدة بقدر المستطاع إن شاء الله .. حاول تركز في ملف واحد للعمل عليه ثم نحاول حل المشكلة خطوة بخطوة (هذا أفضل طريق للوصول لحل صحيح ومريح إن شاء المولى) سأرفق لك ملف آخر يتم فيه جلب الوقت مع البيانات ثم ترتيب البيانات في ورقة التقرير (مع العلم أنه يمكنك إخفاء الأعمدة الغير مرغوب فيها ولن يؤثر ذلك على عمل الكود) Finger Report Using Filter Method YasserKhalil V2.rar
×
×
  • اضف...

Important Information