نجوم المشاركات
Popular Content
Showing content with the highest reputation since 12/07/25 in all areas
-
السلام عليكم ورحمة الله تم التعديل أيضا (دائما بواسطة المعادلات) على ورقة "جداول الحراسة" التي تحتوي الجداول الفردية للحراس (معذرة لم أنتبه لها إلا الآن)... الحراسة2026 للتصحيح.xlsm5 points
-
اعرض الملف بهذه الأداة سيتم تخصيص طريقة عرض وطباعة التقارير {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم أداة أعتقد أن الجميع يحتاجها والحقيقة أن هذه الأداة هي في الأصل عبارة عن أداتين كلا منها يؤدي وظيفة مستقلة لكنهما يتكاملان مع بعضهما لتقومان بجميع الوظائف المرتبطة بتخصيص طرق عرض وطباعة التقارير من حيث تخصيص حجم الورق وإتجاه الورقة ونوع الطابعة ومربع حوار الطباعة .... إلخ وظيفة الأداة الأولى - إنشاء قائمة مختصرة لطباعة التقارير - إظهار مربع حوار مخصص للطباعة وظيفة الأداة الثانية - إنشاء مايشبه القوالب الخاصة بمعاينة وطباعة التقارير بحيث يتم ربط كل تقرير بحجم الورق والطابعة وطريقة العرض الخاصة به - سيتم الإستغناء عن أمر معاينة وطباعة التقارير فبدلاً عن هذه الصيغة DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, OpenArgs سيتم إستخدام هذا الصيغة MyOpenReport "ReportName", ViewMode, ReportTypeID, strCriteria, OpenArgs, NoMargins حيث نلاحظ أن الصيغتين لها نفس المعلمات مع إضافة معلنتين إضافينين هما - ReportTypeID وتمثل رقم السجل الخاص بالقالب في جدول القوالب - NoMargins معلمة خاصة بتجاهل الهوامش (سيتم توضيح عملها ضمن المثال التوضيحي) أخيراً مرفق لكم مجلد يحتوي على مايلي 1- مثال عملي شامل يوضح عمل الأداتين معاً 2- مجلد فرعي خاص بكل أداة يشمل مثال توضيحي لطريقة الإستفادة من الأداة وقالب يحتوي على الكائنات الأساسية لكل أداة في الأخير أتمنى من الجميع تجربة الأداة وإبداء إي ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 12/06/25 الاقسام قسم الأكسيس4 points
-
السلام عليكم ورحمة الله وبركاته الان وضحت الفكرة بارك الله فيك تم عمل كمبوبوكس به اسماء الموظفين الازار المرقمة قي القورم اكوادها موحودة كما هي اعتقد بعد الكمبوبوكس لم تعد في حاجة اليها ان اردت الغائها فابلعنى جرب الملف وان كنت تحتاج الى تعديل في الفورم فابشر تحياتى لك حضور وخروج موظفين.xlsm 4495.xlsm2 points
-
السلام عليكم اعرض عليكم احبتي فكرة قمت بتنفيذها .. واريد تحسينها نقاش ودي .. متاح لجميع رواد المنتدى المبتدىء قبل الخبير الفكرة هي حماية البرنامج ليعمل في فترة محددة كأشتراك ... 1شهر / 6 شهور / سنة ... الفكرة تم تنفيذها بكل اتقان واحترافية بفضل الله . اكرر .. العملية ناجحة نجاحا باهرا بكل المعايير ........................................................ ولكن قبل ذلك البرنامج يحتوي على حماية ضد النسخ بمعنى حين ابعث البرنامج اول مرة للمستفيد ويقوم بتشغيله يظهر له رقم النسخة ويطالبه برقم التسجيل يقوم المستفيد بمراسلتي ويزودني برقم النسخة فأعطيه رقم التسجيل رقم التسجيل هذا هو ملك له ويتم حفظه بملف نصي بجانب قاعدة البيانات ومادام هذا الملف موجود وداخله رقم التسجيل الصحيح فالبرنامج يعمل على اتم وجه ---------------- علما ان حماية الاشتراك مشابهة لها تقريبا والاختلاف فقط ان الاشتراك يعتمد على تاريخ داخل جدول -------------------- الى هنا كل شيء حلو وجميل ........................................................ نأتي للمطلوب لتفعيل حماية الاشتراك 1- الافضل وهو المطلوب في السوق غالبا اتاحة نسخة تجريبية لفترة محددة كشهر واحد مثلا ... المطلوب : لا اريد اكوادا .... اريد التوجيه والشرح .. اريد طريقة لتنفيذ الفكرة 1- اريد الجمع بين الحماية الاولى والثانية بعملية واحدة .. كيف؟ 2- اريد لما تنتهي فترة التجربة ازوده برقم فيتم تفعيل البرنامج لسنة قادمة مثلا . ( الطريقة السهلة ان ارسل له واجهة جديدة مفعلة لمدة سنة ..) هل اجعل النسخة التجريبية متاحة للنسخ بمعنى انها لا تحتوي على شرط العمل على جهاز واحد ويكفي حماية الاشتراك لأنها بعد انقضاء الشهر لن تعمل ابدا حتى لو تم نقلها لجهاز آخر هذه الطريقة تتيح للمستفيد نقل البرنامج الى الاجهزة الاخرى فترة السماح وسوف يعمل ___________________________________________________________________________________ قد تتعجبون اذا قلت لكم .. خلال كتابتي لآخر الاسطر هذه .. اني وجدت الحل والطريقة للجمع بين الحمايتين .. وايضا تفعيل الاشتراك الدائم بارسال الرقم فقط كثيرا جدا مرات ومرات .. حين ابدأ بعرض المشكلة وابدأ بالكتابة .. اصل الى حل مقنع .. لأني اعرض على نفسي المشكلة .. واستوعب ابعادها وانا اكتب .. ثم الغي الطلب ولكني اشعر ان هذا الموضوع يهم فئة ليست قليلة لذا سأطرحه مع الحل الذي توصلت اليه __________________________________________________________________________________ الحل حسب وجهة نظري هو جعل كود الحماية ( رقم التسجيل ) مشترك بحيث يكون جزء منه يشمل الحماية من النسخ ، والجزء الآخر لتفعيل الاشتراك ............. الموضوع مفتوح للمناقشة .. ومقترحاتكم محل اهتمام2 points
-
تمام هي الفكرة نفسها .. كنت احسبها جديدة .. لأني لم اعمل من قبل عمل فيه اشتراك بالمدة وانما كنت ابيع الجمل بما حمل 🐫 .. وكنت اكتفي بان لكل جهاز نسخته2 points
-
وعليكم السلام ورحمة الله وبركاته اليك الحل بطريقتين الاولى - بالتنسيق الشرطي Sheet1 اللون الاحمر =AND(A1<>""; OR(A2=""; A2=0)) اللون الاخضر =AND(A1<>""; A2<>""; A2<>0) الثانية - كود في حدث الورقة SHEET2 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:ZZ2")) Is Nothing Then Dim r As Range For Each r In Intersect(Target, Range("A2:ZZ2")) If r.Offset(-1, 0).Value <> "" Then If r.Value <> "" And r.Value <> 0 Then r.Offset(-1, 0).Interior.Color = vbGreen Else r.Offset(-1, 0).Interior.Color = vbRed End If Else r.Offset(-1, 0).Interior.ColorIndex = xlNone End If Next r End If End Sub الملف sa1.xlsb2 points
-
ما شاء الله تبارك الله اما طريقتي .... برنامج خاص بالتفعيل يخصني - اضافة كل العملاء واسم البرنامج ورقم العميل ورقم البرنامج والمدد المطلوب تفعيلها والسبب ( قد يفقد العميل التفعيل لاي سبب من الاسباب وعند التواصل بنا يتم ارسال التفعيل مرة اخرى له ) - يتم التفعيل حسب اختيار العميل ( عن طريق رقم يرسل عن طريق البريد او الواتس او عن طريق مفتاح تفعيل ..... ) او عن طريق الانترنت مباشر2 points
-
وعليكم السلام ورحمة الله وبركاته سبب الخطا عدم وجود رابط بين اللست والشيت في الكود يوجد عمود مخفى في ListBox وهو الرابط بين الاختيار من اللست والشيت يعنى الاعمدة 10 للشيت +عمود مخفي في اللست =11 تم التعديل والغاء العمود المخفي في اللستبكس واستخذام مصفوفة تربط كل صف في الـ ListBox برقم الصف الحقيقي في الشيت. اليك الملف ليست بوكس 4.xlsm2 points
-
السلام عليكم ورحمة الله وبركاته تم استبدال TextBox1 بـ COMOBOX1 يتم فيه تجميع التواريخ من العمود B التواريخ في العمود B بالنظام الفرنسى جعلتها بالنظام dd/mm/yyyy عند التعديل استخدم زر خفظ التعديل اليك الملف ليست بوكس1.xlsm2 points
-
السلام عليكم لم توضخ خلية البحث G1 لها علاقة بالتوزيع ام لا فيكون التوزيع فردي ام للكل على كل حال الملف فيه عدد 2 شيت الاول شيت DATA يقوم بالتوزيع الفردي للمراقب وذلك بالاختيار من الخلية G1 الثاني شيت DATA1 به كود يقوم بتوزيع اللجان على كل المراقبين جرب الملف المرفق متمنيا ان يكون فيه طلبك ملاحظة1_2026.xlsm1 point
-
السلام عليكم ورحمة الله وبركاته لا مشكلة اخي الفاضل جرب التعديل التالي sa1 (2).xlsb1 point
-
ليس مفتوح بل هو مقيد بفترة محددة لذا ينطبق عليه ما ينطبق على حالة الفترة التجريبة .. لأن الكل مقيد بفترة محددة المفتوح هو الكامل بدون اشتراك لفترة محددة .. وحتى لو كانت الفترة سنة او سنتين ثم لماذا العميل يقدم او يؤخر التاريخ ؟ مادام عمله نظامي فلن تؤثر عليه هذه القيود . ............................................................. كلامي اعلاه بصفة عامة فيما لو كانت النسخة التجريبية والدائمة واحدة .. فقط اذا انتهت فترة التجربة نرسل له كود تفعيل الاشتراك ......................................................... ولكني سأخالف هذا النظام .. بحيث تكون النسخة التجريبية هي فقط للتجربة واذا اراد العميل الاشتراك نرسل له النسخة المرنة .. ( ملف تنصيب يتم استبدال القديم بالجديد ) السبب : حسب الخبرة .. التسويق للمنتج يجب ان يكون جاذبا للعميل ومن الاشياء الجاذبة ان تشتمل نسخة التجربة على بيانات كافية حقيقة وفي الوقت نفسه وهمية بحيث يمكن للعميل تصفحها وعرضها ورؤية النتائج والتقارير عرض هذه البيانات والتعامل معها بالتعديل كتغيير الشعارات والتعديل على البيانات يسهل عليه فهم البرنامج .. وهي بحد ذاتها تجربة .. لأنها طبق الاصل من بياناته التي سوف يدخلها وهنا التجربة لن تستغرق شهرا .. بل جلسة واحدة .. وربما جلستين للتشاور واخذ الرأي1 point
-
1 point
-
آآآآآآه الآن فهمت ملاحظتك صحيحة : سوف يعمل عندما يتم ارجاع تاريخ الجهاز الى تاريخ عمل الفترة تم الاصلاح ,,, ولكن بشرط ان تكون الفترة منتهية فعلا .. فلو تم تقديم التاريخ والفترة في الاصل فعالة .. فستظهر الرسالة بانتهاء الاشتراك .. ولكن عند تصحيح تاريخ الجهاز سوف يعمل لانه فعلا يعمل .. ومثل ذلك لو تم تأخير التاريخ بمعنى ان تحريك تاريخ الجهاز لا يعني شيئا للبرنامج .. فمنظومته داخلية جزيت خيرا1 point
-
تعديل على إجابة الباش مهندس فادي حيث أنه يريد التلوين عندما تكون القيمة لا تساوي "لا يوجد" 🙂 [Foksh] <> "لا يوجد"1 point
-
1 point
-
شكرا جزيلا على التفاعل وابداء الرأي حينما اطرح سؤالا .. لا اقف انتظر الاجابات .. بل احاول ما استطعت الآن فضلا احبتي يرجى تجربة المرفق .. سوف يمنح يوما واحدا بعد الساعة 12 ليلا لن يعمل ولكن يمكنك تنزيل المرفق مرة اخرى وتشغيله وسيعمل ويمنح يوما واحدا ايضا لا يخلو عمل من ثغرات .. فليس هناك حماية مطلقة .. ولكن سددوا وقاربوا الشكر مقدما لمن مر واطلع وشارك برأي المثال 64 بت testTemp.rar1 point
-
كفكرة .. الاعتماد على حقل من نوع Yes/No بحيث يتم فحص قيمة هذا الحقل فقط . بمعنى اذا كانت قيمة الحقل = True فيتم السماح لتسجيل الدخول بدون قيود. والعكس احسب الفرق بين تاريخ اليوم و قيمة الحقل الذي اقترحته كقيمة تاريخ اول تشغيل . فإذا كان الفرق أصغر او يساوي 30 يوم على سبيل المثال (كمدة للنسخة التجريبية ) ، فاسمح بالدخول . والعكس أيضاً بحيث يتم عرض رسالة انتهت الفترة التجريبية.... إلخ. وأقترح أن يكون هذا الجدول في القاعدة الخلفية ، بحيث نمنع التلاعب بقيم الجدول وبأي اسلوب ( بما أن قاعدة بيانات الجداول محمية بكلمة مرور ) . فهنا عند الاشتراك ، لا داعي لفحص التاريخ ، فقط اجعل الحقل True 😅 .1 point
-
1 point
-
بما أن رقم النسخة ظاهر ايضا تفضل اخي عمر 455810456716870042 ستجدون تقارب شديد بين الرقمين هذا والذي قبله ولكن اتبع مقولة : سددو وقاربو دوما ابحث عن العمل البسيط بدون تكلف سبب التقارب انهم ولدوا في وقت واحد وحضانة واحدة المسألة مسألة تشفير يستطيع المتفرغ والذي يعشق مثل هذه الاشياء ويتلاعب بالارقام ان ينشىء شفرة لا تخطر على البال عندما اعرض العمل مفتوحا ستتبين لكم البساطة التي اتحدث عنها1 point
-
1 point
-
لا يتصور اكثر من برنامج في جهاز واحد .. تقصد انه عنده 5 نسخ مثلا على جهاز واحد .. نعم كود واحد يشغلها جميعا ثم ما الفائدة ؟ لا يمكنه نسخها الى جهاز آخر .. وتشتغل كلها الفترة المحددة نفسها . هههههه عجيبة اتصور هذا الشخص يملك محمولا ويعمل في ثلاث او اربع مؤسسات مختلفة .. يتردد بينها . ياشيخ هذا عصامي يستاهل نشجعه جميل جدا يمكنني المتابعة معك .. ما دام رقم النسخة ظاهر سوف ارسل لك المثال الكامل مع رقم الحماية الكامل (المشترك ) سوف اعمله على 32 اعتقد ان اصحابه كثر1 point
-
ابو البشر هل جربت العبث بالجدول .. من جميع الجوانب ؟: 1- العبث بالشفرة 2- تفريغ الحقول 3- حذف الجدول ( تغيير التسمية) او ارجاع تاريخ الكمبيوتر الى وقت يسبق تاريخ اليوم ؟1 point
-
ليه تنقر على الزر ؟؟ الزر كنت وضعته من اجل ادراج Now لأنها تاريخ ووقت ويصعب كتابتها واضح ان الامور تمام انتظروني سوف اعيد الحماية للمثال .. انا اضع المثال هنا لرؤية هل ستتم الحماية بحيث لا يمكن تجوزها .. سأعتمد التاريخ حسب اليوم فقط ( الساعات لا اعتبار لها) .. حتى في تغيير تاريخ الجهاز1 point
-
شكرا ابا البشر .. بشرك الله بما يسرك ولكن مع الاستاذ @Foksh ما زالت المعركة قائمة استاذ فادي قد تكون المشكلة لديك من دالة التاريخ المصنوعة لأني صنعتها من اجل اختلاف تنسيقات التاريخ في الاجهزة ص / م أو am pm فجعلت الساعات بنظام الـــ 24 انا اتعامل مع حقل نصي ثم احوله لتاريخ تفضل هذه هي الفكرة جرب احتمال 99% تعمل عندك ما لم يتم التحزيم القاء نظرة على المرفق فقد تجدون لي شيئا افضل Database1.accdb1 point
-
1 point
-
1 point
-
1 point
-
كلام سليم أستاذ قاسم ، فمن الناحية المنطقية السؤال غير كافي كمعطيات إذا كان هناك جدول يمثل الحركات ( الصادرة و الواردة للأصناف ) . ولكني افترضت من سؤاله دون أن يوضح لنا أي تفاصيل ، أن لديه في جدول المستودع تحديث لأي صنف يتم بيعه أو شراءه ... إلخ . ولذا لم أتطرق إلى الحصر بين تاريخين . لذا إذا كان لديه حقل Balance محدّث دائماً كما تصورت في إجابتي (حقل يمثل الرصيد اللحظي لكل صنف في كل مخزن) فالجملة كافية ، بحيث تستعلم عن ذلك الحقل بشرط ItemID و StoreID . أما إذا لم يكن هناك حقل جاهز للرصيد وبدلاً من ذلك يتم حساب الرصيد من حركات (وارد / صادر ) ، فالجملة غير كافية منطقياً كما تفضلتم ، لأن الرصيد سيعتمد على زمن (حتى أي تاريخ تريد الحساب ؟ الآن أو الحالي ؟ بعد يوم معين مثلاً؟ ... إلخ ) .1 point
-
شكراً لك على الإجابة ارفقت لك ملف العمل اريد قائمة منسدلة اختار الموظف لتثبيت ساعة داومه القيم في A1-A20 مصدر البيانات هو الورقه Sheet 11 point
-
المواضيع المشار لهم ليس بهم مشكله في المرفقات اخي @محب المنتدى واخي @عبدالله بشير عبدالله1 point
-
1 point
-
السلام عليكم ورحمة الله في المرفق تجد حلا باستعمال المعادلات، أرجو أن يفي الغرض المطلوب... الحراسة2026 للتصحيح.xlsm1 point
-
1 point
-
مداخلة صغيره كانت هذه فكرة استاذي @ابو جودي لانه كان من مناصرين فكرة (كل شئ يكون اوفلاين) وقد نجح هو فى تنفيذ هذا الامر مع التشفير بحيث رمز التفعيل يحمل المده وبصمة البرنامج وتاريخ البداية وتاريخ النهاية ويتعامل مع تمديد الفترات بالاضافة للفتره الحالية بشكل تلقائى وتجنب تكرار استخدام نفس التفعيل مره اخري وكان الموضوع معقد شوي وكان امامي الطريقين ووجدت ان ايسرهم هو الطريق الثاني (اونلاين) لانه جنبني تعقيد الاكواد الى حد ما لان التفعيل اون لاين وخاصه اذا كان لديك دومين مدفوع او دومين مستقر <وهي هنا ممكن استخدام تطبيقات مختلفه لعمل سيرفر محلي "لم اجربها لاني فضلت السيرفرات الخارجيه لانها اكثر ضمان للاتصال"> فالتفعيل اون لاين يكفي فقط كود فك التشفير (اذا كانت مشفر بيانات التفعيل) وكود التحقق من مطابقة بصمة التفعيل مع التفعيل الحالي وبصمة الجهاز وقد كان هذا الامر بمساعدة اخي الحبيب @Foksh وتوجيهي لاصل الفكره للطرق المجانيه وعلى الرغم من تناقض كلامي التالي فى رغبتي فى استخدام طريقة معلمي @ابو جودي لانها فيها شغل عالي واكثر فاعليه واضمن لعدم حاجتها للانترنت وبخلاف انها تشعرك انك تقوم بشئ كبير وايضا توسع مداركك لفهم الامور المتعلقه بالحمايه والنظر فى طرق التلاعب المختلفه واغلاق هذه الثغرات الا اني فى الاخير استخدمت الاون لاين لعدة امور مختلفه ومستقبلية ومنها وهي اهمها (امكانية الغاء الاشتراك)1 point
-
اداة رائعه ومجهود واضح وكبير وافكار جميله ويشرفني اكون اول المعلقين1 point
-
دعنا نناقش الجوهر فقط . ففي النقطة السابقة المقتبسة ، إن كان خط سيرك بإضافة تاريخ داخل الأكواد ، فهي فعلاً معضلة وقد يكون الشخص الذي حمل النسخة بعد 25 يوم قد بقي لديه 5 أيام ( على افتراض ان النسخة التجريبية 30 يوم من تاريخ مدرج في الأكواد . لكن !!!! إن كانت المدة 30 يوم من تاريخ التشغيل الأول فهنا سيكون لكل مستخدم 30 يوماً كاملةً . وبالتالي ستستغني عن هذه العبارة التالية :- ستدخل في متاهة أن التفعيل هو للنسخة التجريبية أو للنسخة المفعلة الكاملة ( سنة على سبيل المثال ) ؟؟؟؟ بالتالي سيكون في ملف التفعيل المدمج أو الجدول رقمي تفعيل الأول للتجريبية والثاني عند التفعيل الكامل . ( إذا كان ما فهمته صحيحاً 😅 ) . تطرقنا سابقاً مع الأستاذ @ابو جودي في تجارب بهذا الخصوص ( فكرة التمديد ) . فلنفترض أنني كعميل أعجبني عملك ومشروعك ويخدمني بكل تفاصيله وقد اشتريت أو تم التفعيل لمدة 3 اشهر بعد الفترة التجريبية . وأردت قبل انقضاء مدة الـ 3 شهور هذه أن أقوم بتجديد الإشتراك مدة 3 شهور أخرى ، كتحليل :- الـ 3 شهور الأولى تنتهي بتاريخ 31-01-2026 ، وانا طلبت منك بتاريخ 10-01-2026 كود تفعيل لـ 3 شهور أخرى . أي سينتهي اشتراكي بتاريخ 30-04-2026 ( إن صحت حساباتي ) فهل التاريخ صحيح أم سيتم احتساب التمديد والتجديد من 10-01-2026 !!!!!! عادةً أفكر عند هذا العمل بأن يكون هناك معامل لعدد أيام التشغيل ( الفرق بين أول تشغيل أو تفعيل وتاريخ اليوم ، بحيث يكون العدد كأيام مطابق لفترة الإشتراك ) . وهنا ستكون الحاجة لأن يكون إجمالي عدد أيام منذ التفعيل الأول إلى نهاية الإشتراك = هذا العدد . أي ان في المثال السابق سيكون مجموع أيام الإشتراك أو تفعيل البرنامج = 90 يوماً وليس 70 يوماً . هذه الجزئية تعود لك كمبرمج ولآلية عملك التي تفضلها . ولكن انظر لها مستقبلاً . أفضّل بالنسبة لي أن يكون النموذج الخاص بالتمديد أو التفعيل هو نفسه الوحيد . وليس له داعي لتفعيل النسخة التجريبية . فيكفي أن يظهر لأول مرة للمستخدم أن البرنامج نسخة تجريبية مدتها 30 يوماً كرسالة . وسيكون هناك زر خاص بالتفعيل يفتح النموذج الوحيد هذا . ستختلف الأفكار وتترامى بين هنا وهناك ( وهذا ما وقعت فيه سابقاً ) وما دعاني لتجربة التفعيل الهوائي . فوجدت أنه محكم جداً إلى حد ما . ولا مانع لدي من مشاركتك الفكرة مفتوحة المصدر وشرحها إن تطلب الأمر 🤗 .1 point
-
وعليكم السلام ورحمة الله وبركاته ليست هناك اي مشكلة ComboBox المزايا: يعرض قائمة جاهزة من القيم (مثل التواريخ الفريدة من العمود B). يمنع الأخطاء الإملائية أو إدخال صيغة خاطئة للتاريخ. المستخدم يختار فقط من القائمة → أسرع وأدق. عملي جدًا إذا كانت البيانات محدودة أو متكررة (تواريخ، أسماء، أصناف) TextBox عرضة للأخطاء (مثلاً كتابة التاريخ بصيغة خاطئة). يحتاج تحقق إضافي بالكود للتأكد أن القيمة صحيحة الملف المرفق به الخياران التكستبكس والكمبوبكس لك الخيار ما يتاسب عملك تحياتي ليست بوكس2.xlsm1 point
-
اخي الكريم ، وعليكم السلام ورحمة الله وبركاته ... ارجو منك الإهتمام بتنسيق موضوعك ليسهل قراءته لمن يمر به ويحاول مساعدتك .. المطلوب غير واضح حتى من خلال الصور. ثم انك تستخدم مسميات عربية + من عدة مقاطع ..... إلخ ، وهذا لا يشجع البعض على المساهمة في المساعدة ، لأن التعامل مع المسميات العربية للعناصر والمكونات له تبعات مزعجة ومتعبة في الحلول . شكراً لك1 point
-
تفضل Sub ToggleColumns() Dim action As String Dim colsInput As String Dim colArray() As String Dim colItem As Variant Dim answer As VbMsgBoxResult Dim invalidInput As Boolean ' مربع حوار لتحديد الإجراء (إخفاء أو إظهار) answer = MsgBox("هل تريد إخفاء الأعمدة؟" & vbCrLf & vbCrLf & "اضغط 'Yes' للإخفاء، 'No' للإظهار.", vbYesNoCancel + vbQuestion, "تحديد الإجراء") If answer = vbCancel Then Exit Sub ' الخروج إذا ضغط المستخدم على "Cancel" ElseIf answer = vbYes Then action = "إخفاء" Else action = "إظهار" End If ' مربع إدخال لطلب الأعمدة من المستخدم colsInput = InputBox("الرجاء إدخال الأعمدة التي تريد " & action & "ها." & vbCrLf & vbCrLf & "أمثلة:" & vbCrLf & "عمود واحد: B" & vbCrLf & "أعمدة متجاورة: B:D" & vbCrLf & "أعمدة متفرقة: B,D,F", "تحديد الأعمدة") ' الخروج إذا كان الإدخال فارغًا If colsInput = "" Then Exit Sub ' إزالة أي مسافات زائدة وتقسيم الإدخال عند الفاصلة colArray = Split(Replace(colsInput, " ", ""), ",") invalidInput = False On Error Resume Next ' تجاهل الأخطاء مؤقتًا للتحقق من صحة الإدخال ' المرور على كل عنصر أدخله المستخدم For Each colItem In colArray If colItem <> "" Then ' التحقق من أن كل جزء من الإدخال يمثل نطاقًا صالحًا If Columns(colItem).Count = 0 Then invalidInput = True Exit For End If End If Next colItem On Error GoTo 0 ' إعادة تفعيل معالجة الأخطاء ' إذا كان هناك إدخال غير صالح، أظهر رسالة خطأ If invalidInput Then MsgBox "الإدخال '" & colItem & "' غير صالح. الرجاء التأكد من إدخال أسماء أعمدة صحيحة.", vbCritical, "خطأ في الإدخال" Exit Sub End If ' تنفيذ الإجراء على كل عمود أو نطاق For Each colItem In colArray If colItem <> "" Then If action = "إخفاء" Then Columns(colItem).Hidden = True Else Columns(colItem).Hidden = False End If End If Next colItem MsgBox "تم " & action & " الأعمدة بنجاح!", vbInformation, "اكتمل الإجراء" End Sub1 point
-
1 point
-
السلام عليكم تم تعديل المعادلات حسب ما تريد (حسب فهمي) في الملف المرفق... مخصصات.xlsx1 point
-
وعليكم السلام ورحمة الله وبركاته الى جانب الحلول التي ارفقها استاذنا الفاضل hegazee اليك حل اخر بالكود في حدث الورقة Private Sub Worksheet_Change(ByVal Target As Range) Dim rngF As Range, rngG As Range Dim rngB As Range, rngC As Range Dim pos As Variant Set rngF = Me.Range("F2") ' Set rngG = Me.Range("G2") Set rngB = Me.Range("B2:B1000") Set rngC = Me.Range("C2:C1000") If Not Intersect(Target, rngF) Is Nothing Then Application.EnableEvents = False pos = Application.Match(rngF.Value, rngB, 0) If Not IsError(pos) Then rngG.Value = Application.Index(rngC, pos) Else rngG.Value = "" End If Application.EnableEvents = True End If rngG.Select End Sub data.xlsb1 point
-
و عليكم السلام ورحمة الله و بركاته https://www.officena.net/ib/topic/64613-أبغي-قائمة-منسدلة-مرتبطة-بقائمة-منسدلة-أخري-فى-نفس-ورقة-العمل/1 point
-
عذرا لم انتبه ان قي طلبك طباعة متعددة الطريقة الاولى زر print all اكتب كود الشركة بداية الطباعة في الخلية P2 ونهاية الطباعة في Q2 الطريقة السابقة لطباعة الارقام المتسلسلة وراء بعضها الطريقة الثانية عن طريق فورم زر طباعة خسب الاختيار وهي تغنيك عن كل الازرار وعن الطريقة الاولى حيث يمكن الطباعة لموظف واخد او الطباعة للكل او الطباعة المتعددة خسب الاختيار سواء الارقام متصلة ام منفصلة اختر ما تراه متاسب لطلبك مرتبات شركة نقل البضائع فنيين عن شهر نوفمبر 2025 (1).xlsm1 point
-
1 point
-
1 point
-
1 point
-
🌼 السلام عليكم ورحمة الله وبركاته 🌼 يسرني اليوم أن أقدم لكم الإصدار الثاني والمطور من الأداة المتميزة والرائعة ( الكاتب الذكي لدوال المجال ) . Dloockup, DCount, DMax, DMin, Dfirst, DLast هذه الأسطورة التي تقوم بكتابة دوال المجال نيابة عنك بشكل آلي .. :: ما هو الجديد :: اليوم أحتفل معكم بإصدار النسخة الثانية والمطورة لهذه الأداة والتي تتميز بالإضافات التالية : 1- إمكانية إضافة عدد لا نهائي من المعايير ( الشروط ). 2- التعرف التلقائي على نوع بيانات الحقول. 3- جلب قيمة المعيار من التقارير. 4- ميزة إضافة الأقواس حول المعايير. 5- حفظ بيانات آخر عملية قمت بها. 6- كتابة الدالة بمجرد الضغط على زر Enter. 7- تم إضافة أزرار لتسهيل كتابة الدالة NZ والمعامل Like. 8- تكبير لوحة الناتج بالضغط المزدوج عليها. 🌹🍀🌹🍀🌹 وهنا تم شرح هذه الإضافات بالتفصيل : :: شرح كيفية استخدام الأداة بالتفصيل :: :: 🌼 شكر وتقدير 🌼 :: لكل من ساهم برأي أو فكرة أو تطبيق في هذا العمل ، وجزاكم الله عن المسلمين كل خير 😊🌹 :: حمل الإصدار الثاني للكاتب الذكي لدوال المجال 2.0 :: Domain Functions Builder V2.0.accdb1 point