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

طارق محمود

أوفيسنا
  • Posts

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

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

  • Days Won

    42

كل منشورات العضو طارق محمود

  1. السلام عليكم لماذا كل هذه التشكيلات الغريبة في الملف .؟ الملف كان ممكن يكون أسهل بكثير إذا لم يكن هناك MERGE - WRAPE ... الفونت 60 وأكثر .... الأفضل إعادة صياغة الملفات بالطريقة العادية ليسهل عمل المعادلات
  2. السلام عليكم السؤال غير واضح تستطيع مثلا بالتصفية (فلتر) إختياؤ الفراغ
  3. السلام عليكم أخي الكريم أنت كسلت أو نسيت !! تشرح ماتريد ظننت أن بالملف شرح لما تريد ولم أجد شيئا
  4. السلام عليكم تفضل الملف به اضافة للكود تمنع اعطاء المراقب فترتان فى وقت واحد توزيع الارقام بطريقة عشوائية2.xlsm
  5. السلام عليكم تفضل =IF(LEN(D3)>=10,"0"&LEFT(B3,2)&"-"&MID(B3,3,100), "0"&LEFT(B3,1)&"-"&MID(B3,2,100))
  6. السلام عليكم الأفضل تضع كل الحالات لذلك وضعت لك الحل من خلال أكثر من كود واحد الأول : عند تنشيط الورقة وهذا يراجع الصفوف من 15 إلي آخر صف ويخفي السطر أوتوماتيكيا بشرطين أن I=0 ، G<>0 أي يكون هناك سداد الثاني : عند حدث تنشيط الورقة وهذا يراجع الصفوف من 15 إلي آخر صف ويخفي السطر أوتوماتيكيا بشرطين أن I=0 ، G<>0 أي يكون هناك سداد الثالث : Un-Hide كود عادي ليس خاص بأحداث الورقة وهذا يظهر كل السطور التي تم إخفاؤها من قبل بالإضافة إلي كود رابع في حدث الملف عند فتح الملف يتم تفعيل الكود الأول إليك الأكواد والملف به الأكواد Private Sub Worksheet_Activate() LR = [I9999].End(xlUp).Row If LR < 15 Then LR = 15 For r = 15 To LR If Cells(r, "I") = 0 And Cells(r, "G") <> 0 Then Rows(r).EntireRow.Hidden = True Next r End Sub Private Sub Worksheet_Change(ByVal Target As Range) r = Target.Row If Cells(r, "I") = 0 And Cells(r, "G") <> 0 Then Rows(r).EntireRow.Hidden = True End Sub Sub un_Hide() LR = [I9999].End(xlUp).Row Rows(10 & ":" & LR).EntireRow.Hidden = False End Sub '=============================================================== Private Sub Workbook_Open() Sheets ("كشف الحساب ") LR = [I9999].End(xlUp).Row If LR < 15 Then LR = 15 For r = 15 To LR If Cells(r, "I") = 0 And Cells(r, "G") <> 0 Then Rows(r).EntireRow.Hidden = True Next r End Sub اخفاء السطر.xlsm
  7. السلام عليكم ورحمة الله أخي الكريم تفضل جرب الكود التالي Sub nn() For sh = 1 To Sheets.Count With Sheets(sh) LR = .[C9999].End(xlUp).Row .Range("A" & LR & ":H" & LR).Copy .[A17].PasteSpecial xlPasteValues With .Range("A18:H" & LR) .ClearContents .Interior.ColorIndex = xlNone End With End With Next sh End Sub ومرفق أيضا الملف وبه الكود اصناف2.xlsm
  8. أخي الكريم لا أعتقد أن هناك خطأ لكن انظر لهذه الصورة لضبط خيار التحديث
  9. السلام عليكم تفضل المرفق به الشرح والمعادلات المطلوبة الشكاوى.xlsm
  10. السلام عليكم أخي الكريم اولا : مبروك على التطوير لم أفهم أي تطوير ، لكن بارك الله فيك في جميع الأحوال ثانيا: الملف الثاني كمان معطوب برجاء الإرسال بصيغة xls عادي سيقبل المنتدي أو لو استطاع أحد الإخوة فتح أي من الملفين يتفضل بإعادة رفع الملف مفكوك
  11. أخي الكريم عند تغيير أي بيان في البيانات الأصلية لايظهر ذلك في pivot table إلا بعد أن تعمل تحديث لل pivot table نفسه أسهل طريقة لعمل التحديث Refresh عن طريق الضغط علي الزر الأيمن للماوس وأنت داخل ال pivot table أنظر الصورة ومن الممكن إذا كان التغيير كثيرا وقد يحدث نسيان منك أو من المستخدم ، أقصد نسيان عمل التحديث Refresh ممكن في هذه الحالة عمل كود صغير بالورقة التي بها ال pivot table تجعل عمل التحديث Refresh يتم أوتوماتيكيا كلما فتحت تلك الورقة
  12. السلام عليكم تفضل أخي الملف به المطلوب برنامج3.xlsm
  13. السلام عليكم أخي الكريم يمكنك إستخدام الدالة Indirect فهي الأنسب في حالتك لم أستطع تطبيق ذلك علي الملف لأن الملف معطوب برجاء إعادة إرساله
  14. السلام عليكم تستطيع دائما تفكيك اي معادلة لفهمها لاحظ أن نظام الجهاز عندي يضع بالمعادلة علامة (,) بدلا من (;) المعادلة السابقة بعد تفكيكها تكون كالتالي =IFERROR(A,) حيث نستعيض بالمعامل A عن المعادلة SUMPRODUCT((INDEX(ACH.!$B$3:$AP$9999,MATCH(A3,ACH.!$A$3:$A$9999,),)>0)*COUNTIF(INDEX(IP!$C$4:$N$44,,IFERROR(MATCH(C3,IP!$E$2:$N$2,)+2,MATCH(E3,IP!$C$3:$D$3,))),ACH.!$B$1:$AP$1)) ومعني المعادلة الأولي أن في حالة حدوث خطأ من المعادلة A فلا تكتب النتيجة خطأ والآن إلي المعادلة A بنفس الطريقة نبسطها كالتالي A= SUMPRODUCT(B*C) حيث B=(INDEX(ACH.!$B$3:$AP$9999,MATCH(A3,ACH.!$A$3:$A$9999,),)>0) ، C=COUNTIF(INDEX(IP!$C$4:$N$44,,IFERROR(MATCH(C3,IP!$E$2:$N$2,)+2,MATCH(E3,IP!$C$3:$D$3,))),ACH.!$B$1:$AP$1) ومعني ذلك ببساطة أن A تساوي حاصل ضرب مصفوفتين B,C مشروطتين والمصفوفة B هي أيضا يمكن تبسيطها هكذا B=(INDEX(B1,B2,)>0) حيث B1 هي المجال ACH.!$B$3:$AP$9999 ، B2 هي المعامل الناتج عن MATCH(A3,ACH.!$A$3:$A$9999,) و لإيجاد المعامل B2 نذهب للورقة ACH في المجال A3:A9999 والذي يبدأ بالخلية A3 لتبحث عن كود العميل والموجود بالخلية A3 بالورقة QSC ، إذن ستجد أنه في الصف الثامن (إذا بدأت العد من الخلية A3 ) أي أن : الجزء الأخير من المصفوفة B والذي أسميناه B2 سيأتي بالرقم 8 إذن المصفوفة B هي عنصر ناتج من المجال B1 (أي المجال B3:AP9999 في الورقة ACH) وهو العنصر الثامن وحيث أن رقم العمود لم يذكر فيكون الناتج هو كامل الصف الثامن من المجال B3:AP9999 في الورقة ACH وبما أن وحيث المجال B3:AP9999 يحتوي علي 41 عمود من (B) إلي (AP) إذن نتوقع أن يكون العنصر الثامن هذا هو محتوي 41 خلية وبالرجوع لها تجدها (1 , 0 , 1 , 0 , 1 , 1 , 0 , 6.25 , 1 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) بالترتيب حيث يعتبر الخلايا الفارغة أصفار باقي معني أخير بالمصفوفة B وهي مقارنة العناصر الناتجة بالرقم 0 (حيث آخر مقطع منها هو >0) فالناتج النهائي لها سيكون 41 عنصرا كل منها يحتوي علي 1 إذا كان الأصلي أكبر من 0 ويحتوي علي 0 إذا كان الأصلي ليس أكبر من 0 الناتج النهائي لها سيكون هكذا (1 , , 1 , , 1 , 1 , , 1 , 1 , 1 , 1 , , , , , , , , , , , , , 1 , 1 , , 1 , , , , , 1 , , , , , , , , , ) والمعني الطبيعي لهذا هو جعل الإكسل ينتقي عدد المرات (الأصناف) التي أخذها هذا العميل والآن : المصفوفة C هي ..... هكذا بنفس الوسيلة تجد أنها أيضا تنتج 41 عنصرا من الورقة الأخيرة IP وهذه العناصر رأسية (SKU CODE) ولابد أن تتساوي في العدد مع عناصر المصفوفة الأولي أي 41 عنصرا حقيقة أنا لا أعلم ماذا يعني SKU CODE ولكن تقاطع المصفوفتين سينتج 1 عند التقاطعات المملؤة أي التي بها 1 في المصفوفتين أعتقد أن المعني لهذا هو جعل الإكسل ينتقي عدد المرات (الأصناف) التي أخذها هذا العميل وفي نفس الوقت تتطابق مع هذا ال SKU CODE
  15. السلام عليكم أهلا ومرحبا أخي الكريم إستعنت بكود تفقيط عربي لأستاذنا الجليل عبد الله باقشير ستتعرف علي الكود وعلي المعادلات الجديدة المضافة للملف وكل ماهو بالفونط الأزرق حتي أنه كان عندك خطأ في العام (كتبت 2018 بدلا من 2019) في الخلية C16 بالورقة2 وكذلك أي خلايا بها عوامل مساعدة ستجدها بالأزرق أيضا بالجزء الرمادي بالورقة أرجو أن يكون المرفق هو ماتريد تفضل تصفيه_مستحقات.xlsm
  16. السلام عليكم تفضل أخي المرفق اخر بيانات تم ادخالها.xlsm
  17. السلام عليكم أخي الكريم مرفق نفس الملف وبه الكود لكي تضيف نفس الكود بالملف الأصلي إفتح الملف ثم الفيجوال بيسيك Alt-F11 ثم دبل كليك علي اسم الشيت ثم انسخ هذا الكود وضعه بمحرر الأكواد Private Sub Worksheet_Change(ByVal Target As Range) cl = Target.Column If cl > 14 And cl < 17 Then Exit Sub r = Target.Row If WorksheetFunction.CountA(Range(Cells(r, 1), Cells(r, 11))) < 2 Then Exit Sub ActiveSheet.Unprotect Password:="121314" Cells(r, 15) = Application.UserName Cells(r, 16) = Date & " - " & Time 'Range("A1:C" & r).Locked = True ActiveSheet.Protect Password:="121314" End Sub كما بالصورة التالية AAAA (1).xlsm
  18. السلام عليكم أخي الكريم راجع ردي التالي في الموضوع "اضافة اسم الشيت"
  19. السلام عليكم أخي الكريم لم يفتح الرابط الذي أعطيته أنت وبحثت عن رابط مماثل ، تجده بالورقة الثانية بالمرفق الرابط الثاني هو : http://www.asmainfo.com/Kuwait/Ar/quotes/DailyQuote.aspx أيضا يجلب فقط حتي السطر الـ 327 لأن هذا هو آخر سطر بالصفحة علي الموقع بالفعل أي أنه لايوجد شركات أخري بعد شركة مبرد للنقل تفضل المرفق استيراد البيانات.xlsx
  20. السلام عليكم أخي الكريم لم أفهم المطلوب مرفق نفس الملف وضح لي عليه ماذا تريد إذا تم تعديل بالسطر الأصفر مثلا AAAA.xlsx
  21. السلام عليكم إذن إرسل لي الى الشيت الاصلى (علي الخاص) وسوف أسويها بإذن الله الموضوع الثاني سوف أراجعه قريبا ، عذرا لانشغالي الشديد
  22. السلام عليكم إذن تنسخ الأكواد من ملف Report.xlsm الى الشيت الاصلى الى فيه الداتا كاملة السلام عليكم إذن تنسخ الأكواد من ملف Report.xlsm الى الشيت الاصلى الى فيه الداتا كاملة أو إرسل لي الى الشيت الاصلى (لو فيه داتا تخاف من نشرها ، إرسله علي الخاص كرسالة)
×
×
  • اضف...

Important Information