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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    198

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

  1. يمكنك استعمال هذه المعادلة في الخلية B2 =VLOOKUP(A2,'2'!$A$1:$Z$25,MATCH($B$1,'2'!$1:$1,0),FALSE) تم استبدال رقم العمود بناتج دالة ماتش التي تبحث عن مكان كلمة التحقيق $b$1 في الصف 1:1 بالتوفيق
  2. يمكنك استعمال المعادلة التالية في الخلية H5 =IF(OR(F5="",G5=""),"",G5-F5+1) وتعني إن كانت إحدى الخليتين فارغة تكون النتيجة فارغة وإلا يقوم بطرح الأكبر - الأصغر ويضيف يوم البداية لأنه محسوب بيوم مع سحبها لأسفل للتطبيق على الخلايا بالأسفل مع ملاحظة أن التاريخين بالصف الأول 6 مارس 2022 و 6 أغسطس 2022 وبينهما 154 يوما وهي كالتالي: 26 و 30 و 31 و 30 و 31 و 6 وليست من 3 يونيو إلى 8 يونيو حتى يكون الفرق بينهم 6 أيام بالتوفيق
  3. كل شيء ممكن المهم إرفاق الملف او مثال منه وتوضيح المطلوب بمنتهى التفصيل
  4. يمكنك حذف الخلية الصفراء المدمجة أولا ثم استعمال هذا الكود وربطه بزر أمر أو شكل 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 وليس الاسم الذي يظهر في تبويب الشيتات بالتوفيق
  5. بارك الله فيك لحبك الخير للغير ويمكن اختصار الحلقات التكرارية للحصول على المجموعين بهذين السطرين 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")) بالتوفيق
  6. ربما يكون تنسيق بعض الخلايا (نص Text) فهذا يجعل الاكسل لا يجمعها بالتوفيق
  7. هذا ملف يحتوي على تصميم شكل النتيجة فقط أين محاولاتك للوصول للمطلوب؟ وما المشكلة التب واجهتك في تنفيذ مطلوبك؟ أم أنك تريد الحصول على برنامج جاهز لهذا الغرض؟؟؟
  8. إذا كان أحدنا دقيقا في عرض مطلوبه فإنه يساعد غيره في أن يصل للمطلوب ولا يضيع الوقت والجهد هباء ربما ينجزها لحضرتك أحد الإخوة فقد أصبح المطلوب في غاية السهولة والوضوح
  9. ربما تقصد تحويل الأرقام الموجودة في الخلايا من D4:L34 إلى الأسماء التي تقابل نفس الرقم في نفس العمود في الخلايا من D36:L65 وأيضا العكس تحويل الأرقام الموجودة في الخلايا من D36:L65 إلى الأسماء التي تقابل نفس الرقم في نفس العمود في الخلايا من D4:L34
  10. الحمد لله الذي وفقني في مساعدتك في مهمتين اللصق كقيم غند الضفط على زر أو باستخدام CTRL+V وعذرا لضيق وقتي فربما يتحفنا بالثالثة (اللصق كقيم عند الضغط على زر لصق العادي) أحد الإخوة بالتوفيق للجميع
  11. جميل جدا بارك الله لك بإذن الله إلى مزيد من التقدم في البرمجة لتصنع للمنتدى آلة حاسبة تراعي ترتيب أولويات العمليات الحسابية فمعروف أن الضرب والقسمة مقدم على الجمع والطرح قمثلا: 5 + 2 * 3 ناتجها 11 وليس 21 بالتوفيق في القادم
  12. حتى نصل للمطلوب: رجاء توضيح على أي أساس تم وضع تواريخ العلاوة في العمود A ؟ وكيف يكون ترتيبها عكس الشهور ؟
  13. إذا تأملت ودرست الكود فستصل بإذن الله إلى الحلقة التكرارية التي تحدد الأعمدة هي For c = 1 To 6 والذي يحدد مكان وضع القيمة أو العمود الجديد (هو نفس عدد العمود الحالي مضافا إليه 7 ) newcol = c + 7 نساعد بعضنا هنا بغرض التعلم ومن يتعلم اليوم يساعد غيره غدا أما إن كان الهدف هو الحصول على المطلوب جاهزا فهذا يجب أن يكون بمقابل (ولا تبخسوا الناس أشياءهم) بالتوفيق
  14. لعل هذا يكون هو المطلوب تم وضع كود في حدث بداية النموذج لوضع قائمة بأسماء الشيتات في الكومبوبوكس وتعديل زر الترحيل بالتوفيق الترقيم التلقائي والترحيل للشيت المحدد.xls
  15. لعل هذا هو المطلوب تم استعمال الخلية T1 لاختيار طريقة الطباعة فردي أو جماعي تغيير كود الاجراء text إلى Sub text() printtype = N.Range("t1") If printtype = "فردي" Then x = InputBox("من فضلك ادخل الرقم القومى مع تحياتى اشرف صبور ") N.Range("t2") = x On Error GoTo mm i = Application.WorksheetFunction.Match(N.Range("t2"), DB.Range("c:c"), 0) Call filldata(i) N.PrintPreview Call cler Exit Sub mm: MsgBox "الرقم القومى غير موجود مع تحياتى اشرف صبور" Else lr = DB.Cells(Rows.Count, 3).End(3).Row For r = 13 To lr filldata (r) ActiveSheet.PrintOut Next r Call cler End If End Sub وفي حالة اختيار جماعية يتم طباعة الأرقام من الصف 13 إلى آخر صف مكتوب فيه lr = DB.Cells(Rows.Count, 3).End(3).Row For r = 13 To lr وحتى لا نكرر كود تعبئة الخلايا تم فصل كود التعبئة في إجراء منفصل مع تمرير رقم الصف المراد طباعته إليه Sub filldata(i) N.Range("c7") = DB.Cells(i, "g") N.Range("c8") = DB.Cells(i, "ci") N.Range("g7") = DB.Cells(i, "b") N.Range("g8") = DB.Cells(i, "c") N.Range("c9") = DB.Cells(i, "f") N.Range("c13") = DB.Cells(i, "i") N.Range("e13") = DB.Cells(i, "j") N.Range("b16") = DB.Cells(i, "l") N.Range("c16") = DB.Cells(i, "m") N.Range("d16") = DB.Cells(i, "n") N.Range("b22") = DB.Cells(i, "af") N.Range("b23") = DB.Cells(i, "ao") N.Range("b24") = DB.Cells(i, "ax") N.Range("b25") = DB.Cells(i, "bg") N.Range("d20") = DB.Cells(i, "q") N.Range("d21") = DB.Cells(i, "y") N.Range("d22") = DB.Cells(i, "ah") N.Range("d23") = DB.Cells(i, "aq") N.Range("d24") = DB.Cells(i, "az") N.Range("d25") = DB.Cells(i, "bi") N.Range("d26") = DB.Cells(i, "bq") N.Range("d27") = DB.Cells(i, "by") N.Range("d29") = DB.Cells(i, "cf") N.Range("g20") = DB.Cells(i, "w") N.Range("g21") = DB.Cells(i, "ae") N.Range("g22") = DB.Cells(i, "an") N.Range("g23") = DB.Cells(i, "aw") N.Range("g24") = DB.Cells(i, "bf") N.Range("g25") = DB.Cells(i, "bo") N.Range("g26") = DB.Cells(i, "bw") N.Range("g27") = DB.Cells(i, "ce") N.Range("g28") = DB.Cells(i, "k") N.Range("f29") = DB.Cells(i, "cg") N.Range("e20") = DB.Cells(i, "s") N.Range("e21") = DB.Cells(i, "aa") N.Range("e22") = DB.Cells(i, "aj") N.Range("e23") = DB.Cells(i, "as") N.Range("e24") = DB.Cells(i, "bb") N.Range("e25") = DB.Cells(i, "bk") N.Range("e26") = DB.Cells(i, "bs") N.Range("e27") = DB.Cells(i, "ca") N.Range("f20") = DB.Cells(i, "t") N.Range("f21") = DB.Cells(i, "ab") N.Range("f22") = DB.Cells(i, "ak") N.Range("f23") = DB.Cells(i, "at") N.Range("f24") = DB.Cells(i, "bc") N.Range("f25") = DB.Cells(i, "bl") N.Range("f26") = DB.Cells(i, "bt") N.Range("f27") = DB.Cells(i, "cb") N.Range("c31") = DB.Cells(i, "cl") N.Range("g31") = DB.Cells(i, "cm") End Sub وأنصح دائما بدراسة وفهم الكود ومتغيراته وكائناته جيدا قبل تطبيقه على شيت آخر بالتوفيق طباعة فردي أو جماعي.xlsm
  16. حسب فهمي للمطلوب : وهو تحويل الأرقام الموجودة في ورقة1 من D4:L65 إلى ما يقابلها من أسماء في نفس المدى ووضغها في شيت ورقة2 . مع العلم أن الأسماء سواء في ورقة1 أو ورقة2 اعتمادا على رقم المسلسل للوصول للمطلوب بإذن الله يمكنك: * حذف المحتويات للخلايا D4:L65 * حذف تنسيقات لون الخلفية ولن النص في نفس النطاق * استعمال المعادلة التالية في الخلية D4 =IFERROR(VLOOKUP(ورقة1!D4:L65,$B$4:$C$65,2,0),"ح") * إضافة تنسيق شرطي للخلية D4 باستعمال المعادلة التالية =COUNTIF($D4:$L4,D4)>1 ويطبق على المدى =$D$4:$L$65 ولا أدري ما سبب الصف الفارغ بين مسلسل 31 و 32 بالتوفيق
  17. ما دمت مصرا على تجاهل الخطأ في تنظيم البيانات واختلاف عدد السطور في كل عمود عن غيره في نفس الصف هذا الكود يبحث عن كلمة بكالوريوس ويجلب البيانات الموجودة في نفس السطر من جميع الأعمدة ويضعها في الأعمدة بداية من H:M مع تجاهل أي خطأ يقابله لذلك أنا شخصيا لست متأكدا بنسبة 100% من صحة النتائج لأن البيانات غير صحيحة من البداية Sub MasSplitText() Dim MyArray() As String, newcol As Long, i As Variant, lr As Long On Error Resume Next lr = Cells(Rows.Count, 1).End(3).Row Range("h2:m" & lr).ClearContents For c = 1 To 6 For rw = 2 To lr MyArray = Split(Cells(rw, 2), Chr(10)) newcol = c + 7 For i = 0 To UBound(MyArray) If MyArray(i) = "بكالوريوس" Then Cells(rw, newcol) = Split(Cells(rw, c), Chr(10))(i) Next i Next rw Next c MsgBox "Done by mr-mas.com" End Sub بالتوفيق
  18. يمكنك وضع هذه المعادلة في الخلية A6 ثم سحب المعادلة لأسفل =IFERROR(INDEX('date out'!B$1:I$100,SMALL(IF('date out'!$A$1:$A$100=$A$1,ROW('date out'!$A$1:$A$100)),ROW()-5),{1,2,3,4,5,6,7,8}),"") وهذا ملفك إن كنت لا تعلم كيف تضيف المعادلة مثل بعض الأعضاء بالتوفيق Copy of BİLDİRİM LİSTESİ.xlsx
  19. حسب فهمي للمطلوب هذه محاولة فقط يلزم كتابة الدرجة ويتم الحصول على كل الخلايا بالتوفيق C_2.xlsx
  20. على أي أساس يتم الضرب في أحد هذه الخلايا؟ ما الشرط؟
  21. أعتقد لا يوجد مشكلة في كود زر الترحيل ولكن يجب الانتباه إلى أنه يعمل على الشيت النشط Set ws = ActiveSheet بالتوفيق
  22. عليكم السلام ورحمة الله وبركاته يمكنك وضع هذه المعادلة في الخلية G5 =EDATE(F5,COUNT(I5:R5)-1) ثم سحبها لأسفل وهي لعد الشهور المسجلة في I5:R5 وإضافتها على تاريخ بداية الاشتراك إن شاء يكون المطلوب بالتوفيق
×
×
  • اضف...

Important Information