-
Posts
4,533 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
42
Community Answers
-
طارق محمود's post in جلب بيانات من ملفات متعدده was marked as the answer
السلام عليكم
تفضل الحل بالأكواد
تضع كافة الملفات في مجلد (فولدر واحد)
وتضع معهم هذا الملف suppliers.xlsm المرفق
تفتخه وتضغط الزر ، يبدأ في عمل التالي
فتح الملفات الواحد تلو الأخر استدعاء البيانات من الملف المفتوخ ونسخها للملف الأصلي غلق الملف المفتوخ ثم تكرار الخطوات الثلاثة ختي نهاية الملفات في الفولدر مهما كان عدد الملفات
suppliers.xlsm
-
طارق محمود's post in ( الساده الافاضل ) أريد حل هذه المشكلة بعمود الاكسيل was marked as the answer
السلام عليكم
تفضل المرفق وقد تم الغاء العمود
تنبية للوصول بسن المعاش 2.xlsm
-
طارق محمود's post in طلب مساعدة فى التجميع was marked as the answer
السلام عليكم
أخي الكريم
عدلت لك قليلا في نسق الملف
بحيث أن أول جدول يتطابق مع باقي الجداول التالية
يعني كل جدول بما فيها الأول يكون 36 سطر شامل السطر الفاضي بين الجداول
وعندما تريد إضافة جدول آخر تأخذ نسخة من الثاني وليس من الأول
واحرص أن يكون الفارق بين بداية أي جدول والذي يليه 36 سطر بالضبط
تفضل المرفق
التجميع2.xlsx
-
طارق محمود's post in فصل الارقام عن الاحرف was marked as the answer
السلام عليكم
مع خالص التقدير لأخونا أبو أحمد
هذا حل آخر بلا أكواد فقط بالمعادلات
فصل الارقام عن الاحرف.xlsx
-
طارق محمود's post in تحويل المعادلات الى كود was marked as the answer
السلام عليكم
تفضل الحل بالكود
معادلة الى كود2.xlsm
-
طارق محمود's post in الجمع بشرط الفرق بين تاريخين was marked as the answer
السلام عليكم
هل هذا ما تريد؟جمع.xlsx
-
طارق محمود'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
-
طارق محمود's post in برجاء التعديل علي كود ترحيل مخزن فى اماكن متفرقة was marked as the answer
السلام عليكم
كما تلاحظ وكما قلت
ولذلك التعديل عليه صعب
فأخونا العلامة خبور الخير لاحرمنا الله منه ومن عطاؤه متمكن بدرجة مرعبة
أعدك بالمحاولة وليس بالنتيجة وإن كانت 90% ستنجح إن شاء الله
وإلا ، فيكفيني شرف المحاولة
الحمد لله
أراد الله ان أستطيع حلها
مع عدم فهمي 100% للأكواد التي إستخدمها أستاذي خبور الخير
وطبعا لاينقص ذلك من أجره شيئا
بارك الله له وعليه
ورزقه الخير كله
تفضل أخي المرفق
Book1_New.rar
-
طارق محمود's post in حضور وانصراف was marked as the answer
السلام عليكم
تفضل المرفق
CryRepViewer2.rar
-
طارق محمود'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
-
طارق محمود's post in Search - left - right was marked as the answer
السلام عليكم
أخي العزيز
الملف وبه الحلول مع بعض الإيضاحات
تفضل المرفق
Data Sample for Test - Candidate Name.rar
-
طارق محمود'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
-
طارق محمود's post in معادلة VlookUp was marked as the answer
السلام عليكم
مرحبا بك أخي الكريم
IF(B7<>"";VLOOKUP(B7;Setting!B$4:AC$23;2;FALSE);"")
معناها
إذا كانت الخلية B7 لاتساوي <> فارغ ( أي بها أي بيانات)
فلتفعل التالي
إبحث عن قيمة B7 في العمود الأول من المجال B$4:AC$23 بالورقة Setting
المقصود (بالعمود الأول من المجال) هو العمودB ، إذا وجدت قيمة B7 فلتكتب هنا بالخلية (التي بها المعادلة) قيمة المقابل لهذه القيمة من العمود رقم 2 من نفس المجال
العمود رقم 2 هو العمود C وجزء FALSE يجعل الدالة لاتقبل التقريب أي أنها إن لم تجد القيمة بكل تفاصيلها فستعود بخطأ
وإلا
فاجعل هذه الخلية (التي بها المعادلة) تساوي فارغ
-
طارق محمود's post in طريقة لتخفيف حجم ملفات إكسل was marked as the answer
السلام عليكم
الذي ذكره أخونا الحبيب يوسف عطا هي طرق من خارج الإكسل
وأضف إلي ذلك التضبيط من داخل الإكسل
بمعني أن هناك العديد من الأسباب التي تجعل الملف كبير الحجم بلاداعي
مثال 1
إكسل 2003 به 256 عمود فإذا كنت تسخدم 20 عمود فقط ثم لأي خطأ ذهبت إلي العمود الأخير ووضعت بس مسافة أو أي بيان غير لازم
فإذا حفظت الملف علي ذلك سيحجز جميع الأعمدة للملف أي سيزيد الذاكرة المحجوزة
وكذلك بالنسبة للصفوف ، كثير من المستخدمين يستخدم فقط 100 أو أقل ويحجز 65536 الحد الأقصي وهذا طبعا يستهلك الذاكرة
مثال 2
إدراج صور كثيرة وكبيرة الحجم ولاسيما لوجو الشركة مثلا في جميع الصفحات وأكثر من مرة في كل صفحة
إبحث في المنتدي ستجد هذا الموضوع باستفاضة
-
طارق محمود's post in دالتي OFFSET، MATCH was marked as the answer
السلام عليكم
تفضل المرفق باستخدام دالتي OFFSET، MATCH
OFFSET_MATCH.rar
-
طارق محمود'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
-
طارق محمود's post in حساب المجموع والمعدل was marked as the answer
السلام عليكم
أخي العزيز
إستخدم دالة الجمع بدلا من الجمع المفرد
بمعني
في الخلية F12
بدلا من
=C12+D12+E12 ضع =SUM(C12:E12) وفي الخلية G12 بدلا من =(F12+B12)/5 ضع =SUM(B12,F12)/5
ثم إنسخ منهما لباقي الخلايا
-
طارق محمود's post in الجمع بين تاريخين بإستخدام sumifs وsumproduct was marked as the answer
السلام عليكم
نعم تنجح المعادلة
مرفق الملف وبه الطريقتين والتواريخ غير مرتبة
sumifs_sumproduct.rar
-
طارق محمود's post in (تمت الإجابة) مهم وضروري جزاكم الله خيرا (حساب عمر فاتورة مبيعات بالايام) was marked as the answer
السلام عليكم
أخي الفاضل
أهلا ومرحبا بك أخا كريما فاعلا في المنتدي
أنظر المرفق تجد به ماتريد بالعمود الأصفر
حساب عمر فاتورة مبيعات بالايام.rar
-
طارق محمود's post in تحويل الوقت الى رقم was marked as the answer
السلام عليكم
سهلة جدا إن شاء الله
يعتمد الإكسل في حسابات الوقت علي إعتبار أن اليوم =1 صحيح
وبالتالي الساعة = 1/24 من اليوم
والباقي مجرد تنسيقات لإظهار الساعة / الدقيقة / ....
وعلي ذلك يمكن في الخلية B3 أن نضع المعادلة
=A3*24
وننسخها للأسفل
-
طارق محمود's post in كيفية عمل تأثير على المخزون بعملية البيع والشراء و الترحيل was marked as the answer
السلام عليكم
لقد قمت ببعض التعديلات أرجو أن تكون مفيدة
أولا : لابد من تحديد الأصناف وذلك في المجال الأخضر J9:J29 في ورقة المخزون
ثانيا : تم تحديد الأصناف في فواتير البيع و الشراء حسب المجال الأخضر J9:J29 المذكور
وذلك لمنع الأخطاء الإملائية والفراغات وخلافه
وطبعا يمكنك زيادة الأصناف في المجال الأخضر J9:J29 بإلازاحة لأسفل
ثالثا : بجوار المجال الأخضر المذكور يمكنك وضع أسعار البيع والشراء مرة واحدة لجميع الأصناف
طبعا أنت تلغي كل الأحمر وتضع الأسعار من عندك
رابعا : المعادلة الموجودة في فواتير البيع و الشراء في العمود E تعطيك المتاح في المخزن للصنف المقابل لحظيا
خامسا : المعادلة الموجودة في فواتير البيع و الشراء في العمود D تعطيك سعر البيع الموجود في المجال الأخضر للصنف المقابل لحظيا
حسب وقتي يكفي هذا الآن ، وسوف أتمم لك عملية الترحيل فيما بعد إلا أن يتدخل أحد الإخوة الأكارم
تفضل المرفق
_______1.rar
-
طارق محمود's post in حساب عدد أيام التأخير was marked as the answer
تفضل الملف وليس به EDATE
_2حساب عدد أيام التأخير.xls
-
طارق محمود'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";"سداد مبكر";"") )
-
طارق محمود's post in سؤال خاص بشيت اكسيل كنترول مدرسة was marked as the answer
وعليكم السلام ورحمة الله
ممكن تجعل الملف مشترك
عن طريق حفظه علي السيرفر بعد تفعيل خاصية Shared
-
طارق محمود's post in دالة جلب بيانات احد العمودين بناء على صفين بمعلومية الصف الاول ووجود قيمة الصف الثاني ضمن عمودين اخرين. was marked as the answer
السلام عليكم
تفضل المرفق
الأعمدة F:H أعمدة مساعدة وقد أخفيتها ، تستطيع إظهارها
قيمة التذاكر.xlsx