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

طارق محمود

أوفيسنا
  • Posts

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

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

  • Days Won

    42

Community Answers

  1. طارق محمود's post in تحويل المعادلات الى كود was marked as the answer   
    السلام عليكم
    تفضل الحل بالكود
    معادلة الى كود2.xlsm
  2. طارق محمود's post in الجمع بشرط الفرق بين تاريخين was marked as the answer   
    السلام عليكم
    هل هذا ما تريد؟جمع.xlsx
  3. طارق محمود's post in كيفية تحديد اخر سعر بيع لصنف معين was marked as the answer   
    السلام عليكم
    أخي العزيز
    المرفق (بالورقة Statment) به كود يعمل التالي:
    يقوم بتكوين معادلات بالمنطقة الصفراء الأعمدة V:W لتحسب
    العدد المباع / اجمالي مبلغ مبيعات الصنف / الربح
    وكذلك يحسب بدون معادلات (اجمالي مبلغ شراء الكمية المباعة) بالعمود U

    ويتم تفعيل الكود
    إذا ضغطت الزر
    أو إذا نشطت الورقة Statment

    وكذلك إذا وقفت علي إحدي خلايا العمود U ، يعطي لك في صورة تعليق Comment يعطي ملخص لكيفية حساب مبلغ شراء الكمية المباعة

    لاحظ: علامة الـ (+) أعلي العمود T لإظهار / إخفاء الأعمدة الداخلية

    هذا كود الحساب


    Sub net_profit() 'By Tareq MAHMOUD LR = [D10000].End(xlUp).Row Dim Q(99), P(99) As Variant For r = 3 To LR cod = Cells(r, "D").Value With Sheets("Buys") LR2 = .[C10000].End(xlUp).Row I = 0 For nr = 2 To LR2 If .Cells(nr, "C").Value = cod Then I = I + 1 Q(I) = .Cells(nr, "F").Value P(I) = .Cells(nr, "H").Value End If Next nr End With Cells(r, "T").FormulaR1C1 = "=SUMIF(R2C5:RC[-15],RC[-15],R2C6:RC[-14])" Cells(r, "V").FormulaR1C1 = "=SUMIF(R2C5:RC[-17],RC[-17],R2C8:RC[-14])" Cells(r, "W").FormulaR1C1 = "=RC[-1]-RC[-2]" x = Cells(r, "T").Value T_x = 0 For j = 1 To I If x < Q(j) Then T_x = T_x + x * P(j): GoTo 10 x = x - Q(j): T_x = T_x + Q(j) * P(j) Next j 10 Cells(r, "U").Value = T_x Next r End Sub وهذا كود التعليق Comment Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'By Tareq MAHMOUD If Target.Column <> 21 Then Exit Sub LR = [D10000].End(xlUp).Row r = Target.Row If r > LR Then Exit Sub cod = Cells(r, "D").Value Range("U3:U" & LR).ClearComments Dim Q(99), P(99) As Variant With Sheets("Buys") LR2 = .[C10000].End(xlUp).Row I = 0 For nr = 2 To LR2 If .Cells(nr, "C").Value = cod Then I = I + 1 Q(I) = .Cells(nr, "F").Value P(I) = .Cells(nr, "H").Value End If Next nr End With x = Cells(r, "T").Value T_x = 0 tt_TX = "" For j = 1 To I If x < Q(j) Then T_x = T_x + x * P(j): tt_TX = tt_TX & " " & x & "x" & P(j) & Chr(10): GoTo 10 tt_TX = tt_TX & " " & Q(j) & "x" & P(j) x = x - Q(j): T_x = T_x + Q(j) * P(j) Next j 10 With ActiveCell .AddComment .Comment.Text Text:=tt_TX End With End Sub

    تفضل المرفق
    ربح صنف متعدد سعر الشراء2.rar
  4. طارق محمود's post in برجاء التعديل علي كود ترحيل مخزن فى اماكن متفرقة was marked as the answer   
    السلام عليكم
    كما تلاحظ وكما قلت
    ولذلك التعديل عليه صعب
    فأخونا العلامة خبور الخير لاحرمنا الله منه ومن عطاؤه متمكن بدرجة مرعبة
    أعدك بالمحاولة وليس بالنتيجة وإن كانت 90% ستنجح إن شاء الله
    وإلا ، فيكفيني شرف المحاولة
    الحمد لله
    أراد الله ان أستطيع حلها
    مع عدم فهمي 100% للأكواد التي إستخدمها أستاذي خبور الخير
    وطبعا لاينقص ذلك من أجره شيئا
    بارك الله له وعليه
    ورزقه الخير كله
    تفضل أخي المرفق
    Book1_New.rar
  5. طارق محمود's post in حضور وانصراف was marked as the answer   
    السلام عليكم
    تفضل المرفق
    CryRepViewer2.rar
  6. طارق محمود's post in فلترة و ترحيل أعمدة محددة إلى عدة أوراق was marked as the answer   
    السلام عليكم
    اخي العزيز
    في الفلتر (التصفية) ، عادة يمكنك إختيار التصنيف التالي لأحد الأعمدة
    "إذا كانت الخلية تبدأ بـ كذا"
    أو
    "إذا كانت الخلية تحتوي علي كذا"

    وكذلك الحال في هذا الكود المعتمد أساسا علي التصفية
    فالكود يقوم بالتالي
    1. إدراج السطر 6 أسفل العناوين التي بها دمج (Merg) يعيق التصفية
    2. يصفي البيانات بناءا علي المعيار المطلوب
    3. ينسخ البيانات المصفّاة إلي ورقتها
    4. يلغي حدث التصفية
    5. يحذف السطر 6 الذي أضافه أولا لكي يرجع الملف لما كان عليه

    إذن يمكنك إحلال سطر (أو سطرين) الخاص بالمعايير أو إضافة
    بدلا من


    ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=71, Criteria1:="ناجح" ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=13, Criteria1:="م.ن" ليكون ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=71, Criteria1:="ناجح" ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=13, Criteria1:="م.ن" ActiveSheet.Range("A6:BS" & LR).AutoFilter Field:=2, Criteria1:="=1*"
    فيزيد علي الصفات السابقة معيار آخر وهو أن العمود رقم 2 (القسم) يبدأ برقم 1
  7. طارق محمود's post in Search - left - right was marked as the answer   
    السلام عليكم

    أخي العزيز
    الملف وبه الحلول مع بعض الإيضاحات
    تفضل المرفق
    Data Sample for Test - Candidate Name.rar
  8. طارق محمود's post in كود لتصحيح خطأ المعادلات was marked as the answer   
    السلام عليكم
    تفضل الكود التالي يقوم بنفس العمل
    تضعه في حدث الصفحة

    Private Sub Worksheet_Change(ByVal Target As Range) For Each ce In ActiveSheet.UsedRange If IsError(ce) = True Then With ce .Interior.ColorIndex = xlNone .Font.ColorIndex = 2 End With End If Next End Sub
  9. طارق محمود's post in معادلة VlookUp was marked as the answer   
    السلام عليكم

    مرحبا بك أخي الكريم



    IF(B7&lt;&gt;"";VLOOKUP(B7;Setting!B$4:AC$23;2;FALSE);"")

    معناها
    إذا كانت الخلية B7 لاتساوي <> فارغ ( أي بها أي بيانات)
    فلتفعل التالي
    إبحث عن قيمة B7 في العمود الأول من المجال B$4:AC$23 بالورقة Setting
    المقصود (بالعمود الأول من المجال) هو العمودB ، إذا وجدت قيمة B7 فلتكتب هنا بالخلية (التي بها المعادلة) قيمة المقابل لهذه القيمة من العمود رقم 2 من نفس المجال
    العمود رقم 2 هو العمود C وجزء FALSE يجعل الدالة لاتقبل التقريب أي أنها إن لم تجد القيمة بكل تفاصيلها فستعود بخطأ
    وإلا
    فاجعل هذه الخلية (التي بها المعادلة) تساوي فارغ
  10. طارق محمود's post in طريقة لتخفيف حجم ملفات إكسل was marked as the answer   
    السلام عليكم
    الذي ذكره أخونا الحبيب يوسف عطا هي طرق من خارج الإكسل
    وأضف إلي ذلك التضبيط من داخل الإكسل
    بمعني أن هناك العديد من الأسباب التي تجعل الملف كبير الحجم بلاداعي

    مثال 1
    إكسل 2003 به 256 عمود فإذا كنت تسخدم 20 عمود فقط ثم لأي خطأ ذهبت إلي العمود الأخير ووضعت بس مسافة أو أي بيان غير لازم
    فإذا حفظت الملف علي ذلك سيحجز جميع الأعمدة للملف أي سيزيد الذاكرة المحجوزة
    وكذلك بالنسبة للصفوف ، كثير من المستخدمين يستخدم فقط 100 أو أقل ويحجز 65536 الحد الأقصي وهذا طبعا يستهلك الذاكرة

    مثال 2
    إدراج صور كثيرة وكبيرة الحجم ولاسيما لوجو الشركة مثلا في جميع الصفحات وأكثر من مرة في كل صفحة

    إبحث في المنتدي ستجد هذا الموضوع باستفاضة


  11. طارق محمود's post in دالتي OFFSET، MATCH was marked as the answer   
    السلام عليكم
    تفضل المرفق باستخدام دالتي OFFSET، MATCH
    OFFSET_MATCH.rar
  12. طارق محمود's post in رصيد الاجازات was marked as the answer   
    السلام عليكم

    أخي العزيز

    بالأكواد

    كونت لك دالتين خاصتين بهذه الحالة فقط (أي لابد أن تكون الأسماء في العمود الأول والتاريخ في العمود الرابع وهكذا

    الدالة الأولي لحساب عدد أيام الأجازات


    =vact(إسم,نوع الأجازة) وهذا كودها Function vact(nam, typ As String) As Variant last_row = [a1000].End(xlUp).Row vact = 0 For i = 2 To last_row If Cells(i, 1).Value = nam Then If Cells(i, 5).Value = typ Then vact = vact + Cells(i, 6).Value End If End If Next i End Function الدالة الثانية لحساب آخر تاريخ أجازة =last_v(إسم) وهذا كودها Function last_v(nam As String) As Date last_row = [a1000].End(xlUp).Row last_v = 0 For i = 2 To last_row nm2 = Cells(i, 1).Value dt = Cells(i, 4).Value If nm2 = nam And dt > last_v Then last_v = dt Next i End Function




    تفضل المرفق
    vacation3.rar
  13. طارق محمود's post in حساب المجموع والمعدل was marked as the answer   
    السلام عليكم
    أخي العزيز
    إستخدم دالة الجمع بدلا من الجمع المفرد
    بمعني

    في الخلية F12
    بدلا من

    =C12+D12+E12 ضع =SUM(C12:E12) وفي الخلية G12 بدلا من =(F12+B12)/5 ضع =SUM(B12,F12)/5


    ثم إنسخ منهما لباقي الخلايا
  14. طارق محمود's post in الجمع بين تاريخين بإستخدام sumifs وsumproduct was marked as the answer   
    السلام عليكم

    نعم تنجح المعادلة
    مرفق الملف وبه الطريقتين والتواريخ غير مرتبة
    sumifs_sumproduct.rar
  15. طارق محمود's post in (تمت الإجابة) مهم وضروري جزاكم الله خيرا (حساب عمر فاتورة مبيعات بالايام) was marked as the answer   
    السلام عليكم
    أخي الفاضل
    أهلا ومرحبا بك أخا كريما فاعلا في المنتدي
    أنظر المرفق تجد به ماتريد بالعمود الأصفر
    حساب عمر فاتورة مبيعات بالايام.rar
  16. طارق محمود's post in تحويل الوقت الى رقم was marked as the answer   
    السلام عليكم
    سهلة جدا إن شاء الله

    يعتمد الإكسل في حسابات الوقت علي إعتبار أن اليوم =1 صحيح
    وبالتالي الساعة = 1/24 من اليوم
    والباقي مجرد تنسيقات لإظهار الساعة / الدقيقة / ....
    وعلي ذلك يمكن في الخلية B3 أن نضع المعادلة

    =A3*24
    وننسخها للأسفل
  17. طارق محمود's post in كيفية عمل تأثير على المخزون بعملية البيع والشراء و الترحيل was marked as the answer   
    السلام عليكم
    لقد قمت ببعض التعديلات أرجو أن تكون مفيدة
    أولا : لابد من تحديد الأصناف وذلك في المجال الأخضر J9:J29 في ورقة المخزون
    ثانيا : تم تحديد الأصناف في فواتير البيع و الشراء حسب المجال الأخضر J9:J29 المذكور
    وذلك لمنع الأخطاء الإملائية والفراغات وخلافه
    وطبعا يمكنك زيادة الأصناف في المجال الأخضر J9:J29 بإلازاحة لأسفل
    ثالثا : بجوار المجال الأخضر المذكور يمكنك وضع أسعار البيع والشراء مرة واحدة لجميع الأصناف
    طبعا أنت تلغي كل الأحمر وتضع الأسعار من عندك
    رابعا : المعادلة الموجودة في فواتير البيع و الشراء في العمود E تعطيك المتاح في المخزن للصنف المقابل لحظيا
    خامسا : المعادلة الموجودة في فواتير البيع و الشراء في العمود D تعطيك سعر البيع الموجود في المجال الأخضر للصنف المقابل لحظيا
    حسب وقتي يكفي هذا الآن ، وسوف أتمم لك عملية الترحيل فيما بعد إلا أن يتدخل أحد الإخوة الأكارم
    تفضل المرفق
    _______1.rar
  18. طارق محمود's post in حساب عدد أيام التأخير was marked as the answer   
    تفضل الملف وليس به EDATE
    _2حساب عدد أيام التأخير.xls
  19. طارق محمود's post in اضافة على معادلة was marked as the answer   
    =IFERROR(IF(TODAY()=I48;"العقد إنتهى اليوم";IF(TODAY()>I48;"العقد منتهي";IF(TODAY()<H48;"لم يتم تداوله";"العقد ساري")));IF(LEFT(CELL("format";M48);1)="D";"سداد مبكر";"") )  
  20. طارق محمود's post in سؤال خاص بشيت اكسيل كنترول مدرسة was marked as the answer   
    وعليكم السلام ورحمة الله

    ممكن تجعل الملف مشترك
    عن طريق حفظه علي السيرفر بعد تفعيل خاصية Shared
  21. طارق محمود's post in دالة جلب بيانات احد العمودين بناء على صفين بمعلومية الصف الاول ووجود قيمة الصف الثاني ضمن عمودين اخرين. was marked as the answer   
    السلام عليكم
    تفضل المرفق
    الأعمدة F:H أعمدة مساعدة وقد أخفيتها ، تستطيع إظهارها
    قيمة التذاكر.xlsx
  22. طارق محمود's post in تعديل على الملف تلوين و merge was marked as the answer   
    السلام عليكم
    أخي الكريم
    طلبك الأول تم بالتنسيق الشرطي Conditional Format
    والطلب الثاني تم بالكود الذي بالملف
     
    تفضل
    البحث عن التكرار في Irsalieh.xlsm
  23. طارق محمود's post in ترقيم تلقائى لخلايا متباعدة was marked as the answer   
    السلام عليكم
    أخي الكريم
     
    تفضل المرفق به المطلوبترقيم2.xlsx
  24. طارق محمود's post in دالة جلب كيفية استغلال القاعات من الطلاب was marked as the answer   
    السلام عليكم
    أخي الكريم
    تفضل المرفق به الدالة المطلوبة
    توزيع الافواج على القاعات2.xlsx
  25. طارق محمود's post in تتبع تغيرات 2 was marked as the answer   
    السلام عليكم

    أخي الكريم

    الكود في حدث الوزرقة
    أي أنه يتم تفعيله أوتوماتيكيا إذا حدث التغيير المناسب في هذه الورقة

    ويعتمد الكود علي خطوتين
    1- إذا تم إختيار خلية بالعمود E ، يتم تسجيل محتوي هذه الخلية ، وهذا هو الدور القديم للموظف قبل التغيير
    2- إذا تم تغيير خلية بالعمود E ، يتم نقل الدور القديم (الذي تم تسجيله) وبيانات الموظف  لمساحة التغييرات
    تفضل المرفق
    تتبع التغيرات.xlsm
×
×
  • اضف...

Important Information