-
Posts
331 -
تاريخ الانضمام
-
تاريخ اخر زياره
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه حسين العصلوجى
-
-
17 ساعات مضت, حسين العصلوجى said:
myDateOut = DateAdd("yyyy", 1, myDateIn)
اخي الفاضل بالنسبة لهذا الكود فهو يعمل لكن سوف تفرق مغك يوم او يومين في بعض السنوات لاختلاف عد ايام الاشهر الهجرية من سنه لاخري
اما في المرفق تم التعامل مع التاريخ كنص ثم اعادة تحويله لتاريخ لاضافة سنه كاملة للتاريج دون اي فارق جرب الملف لعله يكون المطلوب
تحياتي
- 1
-
المشكلة في طلبك انك لم تستطع ايصال المطلوب بصورة واضحه من الافضل ارفاق ملف بالداتا الكامله والمطلوب الكامل حتي نتمكن من اختيار الحل الانسب والاسرع
-
-
استخدام مصفوفه سوف يلزم نفس الوقت حتي تبحث الدالة في كل عنصر من عناصر المصفوفه
-
1 دقيقه مضت, محي الدين ابو البشر said:
ما هكلامك صحيح استاذ حسين
لكن مشكلتي ان هذه الدالة التي اتمناها سوف استخدمها في معادلة طويلة نوعا ما لاختصار طول المعادلة
بالمناسبة هذا function جربت فيه ما اريد لكن المشكلة أنه يسبب بطء شديد عند تطبيقه (حوالي 500 -600 قيمة)
كنت اتمنى أن اجد ما هو اسرع منه
Function percent(TargetCell As Range) As Double Application.Volatile Dim C Dim n As Double n = TargetCell.Value Select Case n Case Is > Sheet5.Cells(10, 15).Value: C = Sheet5.Cells(10, 13).Value Case Is > Sheet5.Cells(9, 15).Value: C = Sheet5.Cells(9, 13).Value Case Is > Sheet5.Cells(8, 15).Value: C = Sheet5.Cells(8, 13).Value Case Is > Sheet5.Cells(7, 15).Value: C = Sheet5.Cells(7, 13).Value Case Is > Sheet5.Cells(6, 15).Value: C = Sheet5.Cells(6, 13).Value Case Is > Sheet5.Cells(5, 15).Value: C = Sheet5.Cells(5, 13).Value Case Is > Sheet5.Cells(4, 15).Value: C = Sheet5.Cells(4, 13).Value Case Is > Sheet5.Cells(3, 15).Value: C = Sheet5.Cells(3, 13).Value Case Is > Sheet5.Cells(2, 15).Value: C = Sheet5.Cells(2, 13).Value Case Is > Sheet5.Cells(1, 15).Value: C = Sheet5.Cells(1, 13).Value End Select percent = C End Function
هل يمكن مساعدتي جزاك الله كل خير
ما هو التطوير الذي تريده للدالة ويمكن اضافته لها وعمل دالة معرفة تفي باحتياجاتك
-
8 دقائق مضت, محي الدين ابو البشر said:
تماما استاذي العزيز
افترض أن لجدول موجود في SHEET ما واقوم بادخال القيم او تعديلها
اخي الغالي شغلتك بسيطه وما تحتاج داله معرفه ولا اي اكواد
جرب المرفق لعله يفي بالغرض واي تعديل خبرني
-
4 دقائق مضت, محي الدين ابو البشر said:
السلام عليكم
نعم استاذ حسن دالة تعطي لكنسبة بناءا علي القيمة التي تدخلها وذلك وفقا لجدول ثابت لهذه النسب
المشكل أن المجال من الممكن أن يتغير مثلا المجال 90000 _ 100000 ممكن يصبح 60000 - 85000
هذا من جهة ومن جهة أخرى ممكن أن تزيد المجالات حتى تصبح النسبة 40% أو 50%
أرجو أن أكون قد وضحت الفكرة وان يكون هناك امكانية لذلك
كنت أفكر بوضع الجدول وجعله ديناميكيا في مصفوفة ضمن الـ UDF المطلوب
شكرا لك على ردك وبارك الله بك وسر خاطرك
اذا :- المطلوب هو عمل دالة تستند في عملها الي جدول نسب تقوم انت بادخاله يدويا وتستطيع تغير نطاق القيم واضافة نطاقات جديده؟
- 1
-
5 ساعات مضت, محي الدين ابو البشر said:
السلام عليكم
هل من الممكن عمل دالة لاستخلاص النسب لقيم معينة اعتمادا على جدول بالنسب
في المرفق صورة أوضح
هل ما تريده هو دالة تعطي لك نسبة بناءا علي القيمة التي تدخلها وذلك وفقا لجدول ثابت لهذه النسب
وما ذا تعني بانها ممكن ان تتغير فاذا كان مافهته صحيح فلابد ان يكون جدول ثابت للنسب بحيث كل نسبة لها نطاق من القيم
برجاء توضيح مطلوبك اكثر حتي نتمكن من مساعدتك
-
Sub hide() lr = Range("A65436").End(xlUp).Row For X = 1 To lr If Application.Sum(Range(Cells(X, "A"), Cells(X, "M"))) = 0 Then Rows(X).Select Selection.EntireRow.Hidden = True End If Next End Sub
حيلة صغيره لكني اعتقد انها تفي بالغرض
بانتظار اثراءات اخري للاعضاء
*حاول دائما ارفاق ملفات في مواضيعك لشرح المطلوب بصورة افضل والتطبيق عليه
تقبل تحياتي
-
9 ساعات مضت, عاطف عبد العليم محمد said:
هذا الكود لزيادة التاريخ الميلادي سنة
Sub aaab() myDateIn = [a1].Value myDateOut = DateAdd("yyyy", 1, myDateIn) [a1].Value = myDateOut
وهذا كود آخر ايضا للتاريخ الميلادي
Sub dateFixer() Dim d As Date d = ActiveCell.Value ActiveCell.Value = DateSerial(Year(d) + 1, Month(d), Day(d)) End Sub تغيير التاريخ للخلية النشطة
الاخ / عاطف
ماهي مشكلتك مع هذا الكود حتي نتمكن من مساعدتك
-
5 دقائق مضت, ياسر خليل أبو البراء said:
أخي الحبيب حسين
بارك الله فيك على إثرائك للموضوع ..
ولكن اسمح لي الاعتراض على استخدام الحلقات التكرارية .. فمن المعروف في حالة أن البيانات كثيرة سيتسبب ذلك في ثقل في تنفيذ الكود خصوصاً أن الكود في حدث تغير ورقة العمل ..
الحل المقدم تم استخدام Formula مرة واحدة توضع في النطاق وهذا أسرع ويمكن ببساطة تحويل المعادلة إلى قيم .. دون إدراج الدالة أو المعادلة في ورقة العمل باستخدام Value=Value .. بعد الإشارة إلى النطاق ليصبح السطر المضاف بهذا الشكل
Rng.Value = Rng.Value
فأنا أفضل عدم اللجوء إلى الحلقات التكرارية إلا للضرورة ولكن طالما أن هناك طريق آخر أسرع فيفضل العمل به
تقبل وافر تقديري واحترامي
اخي الغالي / ابو البراء تحية طيبه لك علي مشاركتك ونقاشك لان هذا هو هدف المنتدي طرح العديد من الرؤي ومناقشتها للوصول للافضل واضافة المزيد من الخبرات
انا اتفق معك تماما ان الحلقات التكرارية تسبب بطء الكود في حالة كم البيانات الكبير لكن الكود بوضعه الاول ايضا سيسبب بطء كبير لك ان تتخيل 1000 دالة في الملف تتغير بتغير كل قيمه فالشيت
لكن :- مع اضافة السطر الذي اقترحته يكون هو الحل الامثل والاسرع
تقبل تحياتي
- 1
-
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 5 Then 1 r = 1 LR = Range("E65436").End(xlUp).Row Range("$c$1:$c$" & LR).ClearContents For x = 1 To LR If Cells(x, "E") <> "" Then Cells(x, "C") = r r = r + 1 End If Next End If End Sub
اثراءا للموضوع حل اخر باستخدام الاكود دون ادراج دالة في ملف الاكسل
- 1
-
الاخ / ابو الحسن
هل ما تريده عمل تجميع يومي لكل الصفحات في صفحة حسبه يومية وتجميعه شهريه في صفحة حسبه شههريه
برجاء توضيح المطلوب في الملف وادرا بعض البيانات في الملف كمثال وان شاء الله تجد الدعم المطلوب
-
2 دقائق مضت, ابوعبدالواجد said:
حياك الله
عمل كشف بخلاصة المودرين وكما مبين بالملف المرفق (شيت كشف بكل العملاء)
اشكرك على الاهتمام
ملفك يحتوي شيت واحد للعملاء والموردين فكيف يتم التفريق وما هو الشكل المطلوب للكشف
برجاء التوضيح في ملف
-
9 دقائق مضت, ابوعبدالواجد said:
تسلم - جزيت خيرا - فقرة الاعجاب بالموضوع متوقفة حاليا
الله يرضى عليك شغلة (كشف بكل العملاء) خطأ مطبعي - الصحيح (كشف بكل الموردين)
وكما موضح بالملف
ما فهمت طلبك برجاء التوضيح
-
جرب المرفق لعله يكون المطلوب
-
تحية طيبة للاخ / محمد الريفي علي الحل الرائع
اثراءا للموضوع حل اخر باستخدام الاكواد مع اضافة الجمع التلقائي كما في الطلب الاخير
- 1
-
في اخر ملف تم ارفاقه عند ادخال سطر جديد في شيت السجل يتم نقل كود واسم الماده وكميتها تلقائيا لكلا من شيت المباع والرصيد تلقائيا
تاكد من ان وحدات الماكرو مفعله حتي يعمل الكود
او ارفق ملف بالنتيجة التي حصلت عليها حتي اتمكن من معرفة مكان الخطأ
تحياتي
- 1
-
5 ساعات مضت, ابوعبدالواجد said:
السلام عليكم : اشكرك أخي حسين وتشجعي على عدم التردد - مشكور
المعادلة الموجودة في شيت المباع والرصيد تشتغل فقط اذا كان اسم المادة موجود وتتغير الكمية عند تغييرها في السجل وهذا طيب .
ولكن عند بيع مادة جديد مثلا" ( ثلاجة 25 ) لم ينقل كود المادة والاسم والكمية الى شيت المباع والرصيد ، وملف يوضح ذلك
جزيتم خيرا - مشكورين
تم عمل المطلوب راجع الملف المرفق لعله يفي بالغرض
ملحوظه : يفضل ادخال الاصناف من قائمة عن طريق خاصية التحقق من صحة البيانات لتلافي الخطأ عند ادخال اسم الصنف يديويا .
Private Sub Worksheet_Change(ByVal Target As Range) Dim a As String If Target.Column = 5 And Not IsEmpty(Target) Then On Error GoTo 1 a = Application.Match(Target.Value, Sheets("ÇáãÈÇÚ").Range("B1:B64536"), 0) GoTo 2 1 b = Target.Row c = Sheets("ÇáãÈÇÚ").Range("B65536").End(xlUp).Row + 1 d = Sheets("ÇáÑÕíÏ").Range("B65536").End(xlUp).Row + 1 Sheets("ÇáãÈÇÚ").Cells(c, "B") = Target.Value Sheets("ÇáÑÕíÏ").Cells(d, "B") = Target.Value Sheets("ÇáãÈÇÚ").Cells(c, "A") = Sheets("ÇáÓÌá").Cells(b, "D") Sheets("ÇáÑÕíÏ").Cells(d, "A") = Sheets("ÇáÓÌá").Cells(b, "D") End If 2 End Sub
تحياتي
- 1
-
13 ساعات مضت, ياسر خليل أبو البراء said:
أخي العزيز حسين
نورت المنتدى بمشاركتك الجميلة .. وعوداً حميداُ ..
لا تحرمنا من تواجدك بيننا ومعنا
تقبل تحيات أخوك أبو البراء
مشكور اخي ابو البراء علي الكلمات الرقيقه ووجودي بينكم في هذا المنتدي هو شرف لي
تقبل تحياتي
- 1
-
4 ساعات مضت, ابوعبدالواجد said:
السلام عليكم : اشكرك أخي حسين وتشجعي على عدم التردد - مشكور
المعادلة الموجودة في شيت المباع والرصيد تشتغل فقط اذا كان اسم المادة موجود وتتغير الكمية عند تغييرها في السجل وهذا طيب .
ولكن عند بيع مادة جديد مثلا" ( ثلاجة 25 ) لم ينقل كود المادة والاسم والكمية الى شيت المباع والرصيد ، وملف يوضح ذلك
جزيتم خيرا - مشكورين
ابشر اخي جاري العمل عالمطلوب
-
الاخ / ابوعبدالواحد
تم عمل ما طلبت جرب الملف المرفق لعله يفى بالغرض ولا تتردد في اي سؤال او تعديل
بانتظار اثراءات الاخوة بالمنتدي لتعم الفائدة
------------------------------------
- 2
-
اثراءا للموضوع
حل اخر باستخدام صيغ الصفيف لعلها تفي بالمطلوب
- 1
-
عند نحديد نطاق الفرز لا تدخل ضمنه الخلايا الفارغه اللي فاخر القائمة
ولعل احد الاعضاء يعطب لك حل اخر
كود فيجوال بيسك
في منتدى الاكسيل Excel
قام بنشر
ارفق ملف ووضح فيه مشكلتك والنتيجة المطلوبه حتي نتمكن من مساعدتك