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

أ / محمد صالح

أوفيسنا
  • Posts

    4,444
  • تاريخ الانضمام

  • Days Won

    192

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

  1. الحمد لله الذي وفقنا جميعا للخير
  2. عليكم السلام ورحمة الله وبركاته لفصل التاريخ عن الوقت يمكنك استعمال النص إلى أعمدة text to columns وفي هذا الحالة يجب إضافة عمود واحد بين تاريخ الإصدار وتاريخ الصرف ليتم كتابة الوقت فيه أو يمكنك استعمال flashfill ولكن في هذ الحالة يجب إضافة عمودين بين تاريخ الإصدار وتاريخ الصرف حتى يمكن كتابة التاريخ في الأولى والوقت في الثانية أو يمكنك استعمال المعادلات لتقسيم النص مثل هذه المعادلة لجلب التاريخ فقط من عمود تاريخ الإصدار =MID(A3,1,10) وهذه المعادلة لجلب الوقت فقط من عمود تاريخ الإصدار =MID(A3,12,8) ويمكن تنفيذها على عمود تاريخ الصرف بالتوفيق
  3. عليكم السلام ورحمة الله وبركاته أخي الكريم حتى يتوافق ملفك مع أنظمة قواعد البيانات والمعادلات المتبعة في إكسل يمكنك جعل الأيام الموجودة في الأعمدة من J إلى AG على شكل صفوف أسفل بعضها وإضافة عمود التاريخ لتصبح الأعمدة في قاعدة بياناتك هي: م / اسم الدليل / لغة الدليل / اسم المنفذ / عدد صفحات الدليل الأساسي / التاريخ / عدد الصفحات المخططة / عدد الصفحات المنجزة / المتبقي / ملاحظات بهذا التنظيم يمكنك استعمال دوال مثلsumif أو sumifs بكل سهولة ويسر أو يمكنك استعمال هذه المعادلة ويبقى الملف على حاله في الخلية F4 =SUMPRODUCT($G$18:$AG$30, ($G$17:$AG$17=F$3)*($E$18:$E$30=$C4)) ويمكنك سحب المعادلة يسارا وأسفل مع ضرورة تصحيح عناوين أعمدة عدد الصفحات المخططة في الأيام حيث أنها مكتوب بها المخططة مرتين بالتوفيق
  4. يمكنك حذف هذا السطر If Target.Column = 2 Then وكتابة هذا السطر If Target.Column > 3 and target.column < 14 and target.row > 2 and target.row < 11 Then أو هذا السطر If Not Application.Intersect(Target, Range("D3:M10")) Is Nothing Then بدلا منه بالتوفيق
  5. أخي الفاضل ربما إذا حددت لي ما السطر الغامض عليك في الكود أوضحه لك أما إذا كنت لا تعرف شيئا عن الأكواد فأنصحك بمتابعة هذه الدورة عن الأكواد من الصفر أولا ثم مراجعة أي كود مكتوب https://www.officena.net/ib/index.php?showtopic=39323 لأنه من الواضح لي أن: كود جلب أسماء الأبناء عمله بدلا عنك أستاذ Lion heart وهذا الكود الذي يتأسس عليه الكود الأول قمت به لك ونحن هنا للمرة المليون لا نقوم بعمل برامج جاهزة للناس مجانا (ولا تبخسوا الناس أشياءهم) خالص الدعوات بالتوفيق
  6. أي إجراء مثل sub tar7eel غير مرتبط بحدث مثل تغير الخلايا داخل الشيت أو فتح المصنف أو غيرها من الأحداث يجب ربطه بزر أو بشكل عن طريق asign to macro الموجودة في كلك يمين على الشكل أو الزر
  7. ربما إذا عرفنا في اي نقطة توقفت يمكننا المساعدة تذكر جيدا أن: أول خطوة في نقل الكود لملف جديد هو فهم الكود ومعرفة المتغيرات والكائنات المستعملة فيه وأن الهدف من المنتدى هو التعلم وليس الحصول على ما نحتاجه جاهزا من غيرنا
  8. يمكنك استعمال هذه المعادلة في الخلية B2 =VLOOKUP(A2,'2'!$A$1:$Z$25,MATCH($B$1,'2'!$1:$1,0),FALSE) تم استبدال رقم العمود بناتج دالة ماتش التي تبحث عن مكان كلمة التحقيق $b$1 في الصف 1:1 بالتوفيق
  9. يمكنك استعمال المعادلة التالية في الخلية H5 =IF(OR(F5="",G5=""),"",G5-F5+1) وتعني إن كانت إحدى الخليتين فارغة تكون النتيجة فارغة وإلا يقوم بطرح الأكبر - الأصغر ويضيف يوم البداية لأنه محسوب بيوم مع سحبها لأسفل للتطبيق على الخلايا بالأسفل مع ملاحظة أن التاريخين بالصف الأول 6 مارس 2022 و 6 أغسطس 2022 وبينهما 154 يوما وهي كالتالي: 26 و 30 و 31 و 30 و 31 و 6 وليست من 3 يونيو إلى 8 يونيو حتى يكون الفرق بينهم 6 أيام بالتوفيق
  10. كل شيء ممكن المهم إرفاق الملف او مثال منه وتوضيح المطلوب بمنتهى التفصيل
  11. يمكنك حذف الخلية الصفراء المدمجة أولا ثم استعمال هذا الكود وربطه بزر أمر أو شكل Sub tar7eel() Dim r As Long, f As Long Hoja2.Range("a2:b" & Hoja2.Cells(Rows.Count, 1).End(3).Row).ClearContents Hoja2.Range("d2:d" & Hoja2.Cells(Rows.Count, 1).End(3).Row).ClearContents f = 2 For r = 2 To Hoja1.Cells(Rows.Count, 1).End(3).Row myParent = Hoja1.Range("j" & r): newparent = Hoja1.Range("j" & r + 1) If myParent <> newparent Then Hoja2.Range("a" & f) = f - 1 Hoja2.Range("b" & f) = Hoja1.Range("j" & r) Hoja2.Range("d" & f) = Hoja1.Range("d" & r) f = f + 1 End If Next r MsgBox "Done by mr-mas.com" End Sub ملحوظة: تم استعمال الاسم البرمجي للشيتات وهو Hoja1 و Hoja2 وهو الاسم الموجود في محرر vba وليس الاسم الذي يظهر في تبويب الشيتات بالتوفيق
  12. بارك الله فيك لحبك الخير للغير ويمكن اختصار الحلقات التكرارية للحصول على المجموعين بهذين السطرين Me.TextBox7.Value = WorksheetFunction.SumIf(suppliersSheet.Range("A:A"), Me.TextBox1.Value, suppliersSheet.Range("C:C")) Me.TextBox8.Value = WorksheetFunction.SumIf(suppliersSheet.Range("A:A"), Me.TextBox1.Value, suppliersSheet.Range("D:D")) بالتوفيق
  13. ربما يكون تنسيق بعض الخلايا (نص Text) فهذا يجعل الاكسل لا يجمعها بالتوفيق
  14. هذا ملف يحتوي على تصميم شكل النتيجة فقط أين محاولاتك للوصول للمطلوب؟ وما المشكلة التب واجهتك في تنفيذ مطلوبك؟ أم أنك تريد الحصول على برنامج جاهز لهذا الغرض؟؟؟
  15. إذا كان أحدنا دقيقا في عرض مطلوبه فإنه يساعد غيره في أن يصل للمطلوب ولا يضيع الوقت والجهد هباء ربما ينجزها لحضرتك أحد الإخوة فقد أصبح المطلوب في غاية السهولة والوضوح
  16. ربما تقصد تحويل الأرقام الموجودة في الخلايا من D4:L34 إلى الأسماء التي تقابل نفس الرقم في نفس العمود في الخلايا من D36:L65 وأيضا العكس تحويل الأرقام الموجودة في الخلايا من D36:L65 إلى الأسماء التي تقابل نفس الرقم في نفس العمود في الخلايا من D4:L34
  17. الحمد لله الذي وفقني في مساعدتك في مهمتين اللصق كقيم غند الضفط على زر أو باستخدام CTRL+V وعذرا لضيق وقتي فربما يتحفنا بالثالثة (اللصق كقيم عند الضغط على زر لصق العادي) أحد الإخوة بالتوفيق للجميع
  18. جميل جدا بارك الله لك بإذن الله إلى مزيد من التقدم في البرمجة لتصنع للمنتدى آلة حاسبة تراعي ترتيب أولويات العمليات الحسابية فمعروف أن الضرب والقسمة مقدم على الجمع والطرح قمثلا: 5 + 2 * 3 ناتجها 11 وليس 21 بالتوفيق في القادم
  19. حتى نصل للمطلوب: رجاء توضيح على أي أساس تم وضع تواريخ العلاوة في العمود A ؟ وكيف يكون ترتيبها عكس الشهور ؟
×
×
  • اضف...

Important Information