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

احمد عبد الناصر

الخبراء
  • Posts

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

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

  • Days Won

    5

كل منشورات العضو احمد عبد الناصر

  1. السلام عليكم زيادة في الخير -ملاحظة معادلة array تحتاج لضغط ctrl+alt+enter تحياتي EXCEL EQUATION+.rar
  2. السلام عليكم اعتقد ان هناك طريقة ابسط من هذه ,لكن هذا ما توصلت اليه جرب المرفق تحياتي repport help+.rar
  3. السلام عليكم هذه الصيغة C2<A2>E2 في المعادلة لا يقوم الاكسيل بمعالجتها كما تبدو, فلو استخدمت evaluate formula ستجد الخطوات كالاتي C2<A2>E2 ستتحوا في اول خطوة كا true>E2 فبذلك فبقية الخطوات ستكون خطأ . الافضل استخدام and كما ذكرت في ملفك ,المشكلة بس كانت في علامة < معمولة > جرب المرفق تحياتي Book210+.rar
  4. السلام عليكم زيادة في الخير SendKeys "%+" لكنها طريقة غير دقيقة نوعا ما تحياتي
  5. السلام عليكم استاذنا مازن اكواد متقنة جدا بالفعل استخدام جمل سيكوال مع الاكسيل يعطيه مرونه و بعد جديد سواء بالتعامل مع قواعد بيانات او بتتطبيقها علي الاكسيل نفسه كقاعدة بيانات وفي احيان كثيره تكون جمل سيكوال علي الاكسيل اسرع و منظمة اكثر من استخدام معادلات الاكسيل نفسه او اكواد فاجوال . بالاخص عامل السرعة مع البيانات الكثيرة شكرا علي الملف و الامثلة الجميلة المتقنة موضوع مميز فعلا . وكما ذكرت سيادتكم فهو نوعا ما ليس منتشر بين المستخدمين ,هناك امثلة و مواضيع في هذا المنتدي العملاق لهذه الافكار طرحت من قبل ولكنها شبه منسيه وليست معروضه بهذه البساطه و الدقة. تقبل تحياتي وشكرا جزيلا علي مشاركة هذه الافكار :)
  6. السلام عليكم جرب اضافة هذا السطر في البداية Application.ScreenUpdating = False وهذا في النهاية Application.ScreenUpdating = True تحياتي
  7. السلام عليكم زيادة في الخير هذا كود كنت كتبته , ليس بروعة كود استاذنا ياسر فهو يحتاج لجدول من الاكسيل و لا يعتمد علي نفسه. تحياتي abjad+.rar
  8. ملاحظة : يوجد معادلة مميزة جدا لاستاذنا الخالدي علي هذا الرابط , المطلوب مختلف قليلا لكن المعادلة تستحق الذكر (ترتيب اكثر من شرط بنفس المعادلة) http://www.officena.net/ib/index.php?showtopic=46663#entry279751 تحياتي
  9. السلام عليكم اسعد الله صباحكم معادلات متقنة جداااا , زادكم الله علما و نفع بكم زيادة في الخير هذا كود Sub dahmour() Dim L Application.ScreenUpdating = False L = Sheets("ناجح").Range("b" & Rows.Count).End(xlUp).Row Sheets("الاوائل").Range("eb14:ec" & L) = Sheets("ناجح").Range("b14:c" & L).Value Sheets("الاوائل").Range("ed14:ed" & L) = Sheets("ناجح").Range("e14:e" & L).Value Sheets("الاوائل").Range("ee14:ee" & L) = Sheets("ناجح").Range("bp14:bp" & L).Value Sheets("الاوائل").Range("eb14:ee" & L).Sort key1:=[ee14], order1:=xlDescending, key2:=[ed14], order2:=xlAscending Sheets("الاوائل").Range("f11:i20") = Sheets("الاوائل").Range("eb14:ee23").Value Sheets("الاوائل").Range("eb14:ee" & L).Clear Application.ScreenUpdating = True End Sub تحياتي
  10. السلام عليكم استاذ ياسر معذرة فلم اجرب الحل في ملفك مسبقا , و كما هو متوقع يعمل بكفاءة . كما تفضل استاذنا محمد حسن فالتاريخ 30/2/1431 لم يأخذ وضعه الصحيح في الترتيب و السبب و الله اعلم انه لم يعبر من خلال هذا الشرط If IsDate(Cells(I, "E")) Then (دالة IsDate لم تتعرف عليه كتاريخ) صراحة موضوع التواريخ الهجرية مبهم نوعا ما في الاكسيل تحياتي
  11. السلام عليكم ارجو مزيد من التوضيح فلم تتضح الصورة -هل هناك طريقة لمعرفة اي الشيتات يجب ان تأخذ المعادلة رقم السنة منها ؟ وهل هذا ما تقصد؟ تحياتي
  12. السلام عليكم مزيد من التوضيح رجاءا , هل يتم الارسال عن طريق Outlook ؟؟ ممكن تجربة هذا الكود ان كان كذلك https://msdn.microsoft.com/en-us/library/ff458119(v=office.11).aspx تحياتي
  13. السلام عليكم اسعد الله اوقاتكم اعتقد الاكسيل متعرف عليه كتاريخ هجري و لكن عند الفرز يعامله معاملة النص , ليس لي تعامل مع التواريخ الهجرية في الاكسيل صراحة . جرب المرفق -تاريخ معدل1 لان بعض التواريخ فيها مسافة كهذه " 11/10/1432" . -تاريخ معدل2 ليغير اتجاه التاريخ (او النص حسب رؤية اكسيل) , و هذا الذي سوف ترتب علي حسبه وهو العمود i . -هذه الطريقة تنفع ما دامت التواريخ بنفس عدد الخانات كما بملفك المرفق مثلا "11/09/1431" و ليس "11/9/1431" تحياتي تصفية حسب الاقدم بالتاريخ+.rar
  14. السلام عليكم جرب هذه Private Sub UserForm_Initialize() With ComboBox1 .ColumnCount = 2 .ColumnWidths = "100;100" .ColumnHeads = True endrow = Sheets("list").Range("A1").End(xlDown).Row '.AddItem Sheets("list").Range("A" & endrow, ("B1")) Data = "=list!a2:b" & endrow .RowSource = Data End With End Sub تحياتي
  15. السلام عليكم استاذنا ياسر -معذرة فلم اشاهد الكود بالمشاركة 5 عند اضافة مشاركتي بالفعل هو يفي بالغرض و زيادة وسريع جدا كالمتوقع يكاد يكون "لحظي" . -جربت الكود في الملف في المشاركة رقم 12 فلم يكن تعطيل الحساب موجود وكان كود الترحيل بطيء جداااا و عند اضافة كودك عليه من المشاركة 5 يعمل سريع جدا لحظي , لكن الملف بدون تشغيل اكواد او اي شيء يحتاج و قت طويل لاعادة عمليات الحساب فيه (اكيد في عدد كبير من المعادلات فيه) ,لكن الكود سريع فيه . تحياتي
  16. السلام عليكم جرب اضافة هذا السطر في بداية الكود Application.Calculation = xlCalculationManual و هذا في نهايته Application.Calculation = xlCalculationAutomatic ليعطل عملية الحساب في الاكسل فترة تنفيذ الكود , لست متأكدان كان هذا يفي بالغرض . تحياتي
  17. السلام عليكم مظنش انها مرتبطة بحاجة ال a,b,c دول متغيرات الدالة بالحظ شبه اسماء الاعمدة :] جرب علي خلايا مختلفة ان شاء الله تشتغل معاك تحياتي
  18. السلام عليكم -هناك قيم تحتاج round مثل القيمة 89.5% في الخلية b2 -هناك كلمات بها مسافات زيادة تحتاج لازلة هذه المسافات هكذا " منتظمة" تصبح "منتظمة" لست متأكد من اني فهمت الجزء الثاني من هذه الجملة ---- لو بقى الفرق بين المدة المنقضية والمنجز اقل من او يساوي 20 % او المنجز يتخطي المدة المنقضية اذا يتم التحويل الى منتظمه ---- جرب المرفق تحياتي help+.rar
  19. السلام عليكم اسعد الله اوقاتكم الاستاذ المخضرم الاخ العزيز ياسر شكرا لك علي المعلومات والشروحات القيمة , الف مبروك علي الترقية -زادك الله علما و نفع بك و اعلى نزلك في جنات النعيم . تقبل تحياتي
  20. السلام عليكم جرب هذه Private Sub Workbook_BeforeClose(Cancel As Boolean) If Date >= #1/26/2014# And Time >= #8:00:00 AM# Then If Application.UserName = "AHMED.MOHAMED" Or Application.UserName = "MOHAMED.AHMED" Then ActiveWorkbook.SaveCopyAs ("D:\tarek_report.xls") End If End If End Sub تحياتي
  21. السلام عليم اسعد الله صباحكم الاخ و الاستاذ طلعت الف مبروك علي الترقية :] زادك الله علما و اعلى نزلك في جنات النعيم الشكر موصول لاستاذ حمادة (ابو سما) و الادارة تقبل تحياتي
  22. السلام عليكم جرب هذه ...... Dim x Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 Or Target.Column = 9 Then If Target.Cells.Count = 1 Then y = "" y = Target.Value If x = y Then GoTo 1 ''''''''''''''''''''''''''' Application.ScreenUpdating = False r = Application.WorksheetFunction.Match(x, Sheets("2").Range("c:c"), 0) Sheets("2").Cells(r, 4).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C7,RC[-1],ÇáÎÒíäÉ!C6)" Sheets("2").Cells(r, 4) = Sheets("2").Cells(r, 4).Value Sheets("2").Cells(r, 5).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C9,RC[-2],ÇáÎÒíäÉ!C8)" Sheets("2").Cells(r, 5) = Sheets("2").Cells(r, 5).Value '+++++ r = Application.WorksheetFunction.Match(y, Sheets("2").Range("c:c"), 0) Sheets("2").Cells(r, 4).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C7,RC[-1],ÇáÎÒíäÉ!C6)" Sheets("2").Cells(r, 4) = Sheets("2").Cells(r, 4).Value Sheets("2").Cells(r, 5).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C9,RC[-2],ÇáÎÒíäÉ!C8)" Sheets("2").Cells(r, 5) = Sheets("2").Cells(r, 5).Value Application.ScreenUpdating = True ''''''''''''''''''''''''''' End If End If 1 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 7 Or Target.Column = 9 Then If Target.Cells.Count = 1 Then x = "" x = Target.Value End If End If End Sub --لست متأكد من دقة هذه الطريقة صراحة :] ملحوظة: اعتقد انه من الممكن استخدام Application.Evaluate Method لتكون المعادلات اسرع و الله اعلم تحياتي sumif+-+.rar
×
×
  • اضف...

Important Information