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

طارق محمود

أوفيسنا
  • Posts

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

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

  • Days Won

    42

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

  1. السلام عليكم أولا أهلا ومرحبا بك أخي العزيز ، أخا كريما وعضوا فعالا إن شاء الله بين إخوانك ثانيا أخي الكريم لابد من الإلتزام بقواعد المشاركة ولكن لابأس فهذه أول مشاركاتك ونتمني أن نري المزيد قواعد المشاركة فى الموقع و بصفة خاصة نؤكدعلى ما يلي 1- يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة 2-يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. 3-ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. 4-ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... 5-يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم. ثالثا كل ماسألت عنه ممكن بالإكسل وأسهل كثيرا من الوورد ولكن نحتاج ملف مرفق للعمل عليه ( بالوورد - بالإكسل أي شيء) وتذكر أن تضغط الملف لكي يتم قبول رفعه للمنتدي الضغط ببرنامج مثل winzip أو winrar
  2. السلام عليكم أخي الصدِّيق طبعا يتم هذا الأمر من صفحة DATA هذا هو الكود Sub Shift() Sheets("Data").Activate LR_C = [E60000].End(xlUp).Row For r = 4 To LR_C 'المرور علي أسماء العملاء ، إن وجد ورقة بالإسم ذهب لبرنامج الكتابة عليها 'وإن لم يجد ، يتم تكوين ورقة جديدة بالإسم ثم يذهب للكتابة عليها clnt = Cells(r, "D"): cl_Cod = Cells(r, "E"): cl_addr = Cells(r, "F") If clnt = "" Then GoTo 20 For i = 1 To Sheets.Count If Sheets(i).Name = clnt Then GoTo 10 Next i 'برنامج تكوين ورقة جديدة بإسم العميل Sheets("sample").Visible = True Sheets("sample").Copy after:=Sheets(Sheets.Count) With Sheets(Sheets.Count) .Name = clnt .[B1].Value = cl_Cod .[B2].Value = clnt .[D2].Value = cl_addr End With Sheets("sample").Visible = xlVeryHidden Sheets("Data").Activate 10 'برنامج الكتابة علي ورقة موجودة بإسم العميل If r <> LR_C Then n_LR = Cells(r, 2).End(xlDown).Row - 1: GoTo 15 n_LR = [H10000].End(xlUp).Row 15 LR = Sheets(clnt).[D60000].End(xlUp).Row + 1 Range("B" & r & ":C" & r).Copy (Sheets(clnt).Cells(LR, 1)) Range("G" & r & ":K" & n_LR).Copy (Sheets(clnt).Cells(LR, 3)) 20 Next r End Sub أنظر المرفق فاتورة جديدة6.rar
  3. السلام عليكم معنى السطر LR = [A50000].End(xlUp).Row - 2 أنك تجعل مؤشر الإكسل يذهب للخلية A50000 ثم يقز لأعلي حتي يجد بيانات End(xlUp فيأتي برقم الصف Row ثم يطرح 2 يعني لو أنك لن تزيد كما أخبرتني عن الصف 1500 فإن السطر 50000 أكيد سيكون فارغا ممكن تنفذ هذه الخطوة يدويا بأن تذهب للخلية A50000 ثم تضغط Ctrl-Up ، السهم لأعلي يعني Up ثم عملية طرح 2 لكي لا يدخل الصفين الأخيرين في عملية التصفية وبالتالي بعد التصفية يتم نسخ الجدول المصفي + الصفين الآخيريرن
  4. السلام عليكم بداية أنا غيرت العنوان لمخالفته لقواعد المنتدي لأنك في الغالب لن تحصل علي رد إذا كنت مخالف قواعد المشاركة فى الموقع و بصفة خاصة نؤكدعلى ما يلي يمنع منعا باتا نشر أية مواد تخالف حقوق الملكية الفكرية و يرجى الابلاغ عن المشاركات المخالفة من خلال زر تقرير اسفل المشاركة يجب استخدام خاصيةالبحث قبل طرح السؤال توفيرا للوقت و الجهد. ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. ممنوع منعا باتاً كتابة عناوين سينمائية مثل عاجل ، نداء الي فلان ، الي الخبراء ، طلب مساعدة ، أريد حلا..... يمكن استعجال الرد باستخدام تعبير -للرفع- و غير مسموح بالالحاح او اللوم فجميع الاعضاء يشاركون تطوعا طبقا لسعة وقتهم.
  5. السلام عليكم أيضا لفهم هذه الجزئية من الكود ، لازم نرجع شوية للخلف تذكر أن الكود يبدأ تشغيله من ورقة "بيانات" الشرح بالصورة المرفقة code_explain2.rar
  6. السلام عليكم أخي الكريم تفضل المرفق 3أكواد2.rar
  7. السلام عليكم أخي الكريم تفضل المرفق 3أكواد.rar
  8. السلام عليكم أخي العزيز عرض السؤال ليس صحيحا سيؤدي للخطأ الدائري (أشبه بحلقة مفرغة) أرسل نسخة كاملة من الملف الذي تريده سيجد لك الإخوة حلول كثيرة أفضل مما تمناه وتؤدي نفس الغرض مثلا ممكن يتم إعادة بناء الملف
  9. السلام عليكم أخي العزيز / ig__w تم الرد عليك في المشاركة #10 فقط خشيت الا تنتبه لها بسبب المداخلات التي تلتها
  10. السلام عليكم بسيطة غير الصفر إلي 1 في أمري الأوفست أي أن Offset(1, 0) تتغير إلي Offset(1, 1) في كلا من الكودين
  11. لسلام عليكم أولا لنفهم طريقة الحل ، كما لو أنك من الإكسل > ظللت المجال A4:N x (× تم تعريفها من قبل علي أنها السطر قبل آخر سطر بسطرين) لاحظ أن عدد الأعمدة A:N يساوي 14 ثم من Data ثم Filter ثم تختار الخصائص التي تطلب الفلتر علي أساسها Field:= 2 , Criteria1:=nm تعني أن العمود الثاني من مجال التصفية = قيمة المتغير nm الذي سبق تعريفه من قبل (في الكود) Field:= 3 , Criteria1:=nm1 تعني أيضا أن العمود الثالث من مجال التصفية = قيمة المتغير nm1 الذي سبق تعريفه من قبل (في الكود) وكما تعلم أن التصفية في الإكسل (قبل ماتذهب للأكواد) تمكنك من التصفية بأكثر من خاصية واحدة للعمود الواحد لذلك فالسطر : Field:=14, Criteria1:=fr_D, Operator:=xlAnd, Criteria2:=to_D يعني أن العمود الرابع عشر من مجال التصفية تنحصر قيمته بين المتغيرين fr_D ، to_D وقد سبق تعريفهما من قبل (في أول الكود) تذكر أنه إذا كانت الخلية D3 بها مثلا التاريخ 05/07/2011 فإن fr_D = ">=" & Format([D3], "000") تعني أن المتغير fr_D ستصبح قيمته " >= 05/07/2011"
  12. السلام عليكم أخي الحبيب أبدا ابدا ، كلنا هنا لخدمة ومساعدة بعضنا البعض أنا لاأحب أن أراك غير راضي أنا متأكد ان من الأخوة المشرفين من سيحلها أسرع كثيرا من محاولاتي ولكنني سأبذل ماأستطيع عندما أجد وقت (بلاوعود)
  13. السلام عليكم أخي العزيز مرفق الملف وبه حلين آخران ويمكنك عملهما الأول في الورقة 2 مثل الحل السابق ولكن باستخدام الدلة Countifs فقط قف علي الخلية D5 مثلا وادرس المعادلة داخلها =COUNTIFS('1'!$E$1:$E$2600,'2'!$C$3,'1'!$D$1:$D$2600,'2'!$B5,'1'!$H$1:$H$2600,D$4) وهي كما تري مكونة من عدة أزواج من المعاملات كل زوجين أولهما المجال الذي تريد البحث فيه ، وثانيهما قيمة البحث يعني أول زوج '1'!$E$1:$E$2600,'2'!$C$3 يجعل الدالة تعد بالورقة الأولي العمود E مايساوي الخلية C3 بالورقة الثانية ثم الزوج الثاني '1'!$D$1:$D$2600,'2'!$B5 يجعل الدالة تعد بالورقة الأولي العمود D مايساوي الخلية B5 بالورقة الثانية وفي نفس الوقت يحقق الشرط الأول وهكذا الحل الثاني قد يعجبك كثيرا في الورقة Pivot Table وشرحه بالفيديو المرفق أيضا Piv_Table.rar كرما3.rar
  14. السلام عليكم أخي الكريم / علي الحديوي رأيت طلبك أكثر من مرة وفي كل مرة يتأكد لي أنيي لن أستطيع تلبية طلبك للأسف لأنه مكون من طلبات متعددة وطويلة فوق أنني ضعيف نسبيا بالفورم أرجو المعذرة ، ولكن لاتيأس فقط تابع الطلب علي نفس الموضوع الذي أنشأته أنت سابقا لهذا الغرض
  15. طبعا اخي ، بس في الأول أخبرني ، هل تستخدم أوفيس 2007 أم 2003 من صيغة الملف فهمت أنه 2003 ولكن إذا متاح عندك 2007 سيكون أسهل
  16. السلام عليكم أخي العزيز إحذف (-2) من السطرالأخير في الحلقة التكرارية With السطر LR = [A50000].End(xlUp).Row - 2 ' After Filter سيصبح LR = [A50000].End(xlUp).Row ' After Filter لتصبح الحلقة هكذا With ActiveSheet.Range("A4:N" & LR) .AutoFilter Field:=14, Criteria1:=fr_D, Operator:=xlAnd, Criteria2:=to_D .AutoFilter Field:=2, Criteria1:=nm .AutoFilter Field:=3, Criteria1:=nm1 LR = [A50000].End(xlUp).Row ' After Filter End With
  17. السلام عليكم باستخدام الدالة SUMPRODUCT تفضل أخي المرفق ملحوظة "لو بتستخدم أوفيس 2007 يمكن يكون أسهل المطلوب باستخدام بالدلة Sumifs" كرما2.rar
  18. السلام عليكم أخي العزيز لابد من ضغط الملف قبل رفعه إضغطه بأحد برامج الضغط مثل Winzip - Winrar ثم ارفع الملف المضغوط وإن لم تستطع لأي سبب ، فهذا إميلي : تفضل tarekmahmoud_2@hotmail.com
  19. وعليكم السلام ورحمة الله أخي الحبيب / ياسر (أبو البراء) في الحقيقة أنا كنت زعلان جدا لعدم رؤية مشاركاتك وروحك المرحة معنا ولكني اعتقدتك مشغول ودعوت لك بالتيسير أهلا ومرحبا دائما بدأنا الحركات النص كم ، فيييين الملف
  20. ألسلام عليكم أخي الحبيب استخدم هذين الكودين بدلا مما هو موجود بالملف Sub last() [A65536].End(xlUp).Offset(1, 0).Select End Sub Sub last2() [B65536].End(xlUp).Offset(1, 0).Select End Sub
  21. السلام عليكم من محرر الفيجول بيزيك ، استدع الفورم إضغط دبل كليك علي أي من الأزرار الصفراء (المخصصة لعدد الأوراق النقدية من الفئات المختلفة) وليكن TextBox1 سينتقل بك المحرر الي الكود المصاحب لأي تغيير في هذا الزر ستجد الكود كالتالي Private Sub TextBox1_Change() s = TextBox1.Value If s > 100 Then s1 = Int(s / 100): Sheet1.[R1] = Sheet1.[R1] + s1 * TextBox11.Value If Int(s) <> s Then TextBox1.BackColor = 2 Call T_Calc End Sub وشرح بسرعة للكود يعطي قيمة الزر للمتغير s ثم يسأل إذا كانت s أكبر من 100 فيعطي عدد الرزمات {Int {s / 100 للمتغير s1 وفي نفس الوقت يستخدم الخلية R1 لإجمالي قيمة الرزمات (باللهجة المصري : رزمة أي باكو 100 ورقة نقدية) بمعني : عند تفعيل الفورم يجعل قيمة الخلية R1 = صفر ، ثم عند تغيير أي من الأزرار الصفراء TextBox1 : TextBox9 (المخصصة لعدد الأوراق النقدية من الفئات المختلفة) عند التغيير في أي منها يتم التسجيل في الخلية R1 بالإضافة إلي ماكان فيها ، قيمة عدد الرزمات × قيمة الفئة المقابلة وفي نفس الوقت يتم تغيير لون الزر المستخدم وفي آخر الكود تجد أنه يستدعي كود آخر اسمه T_Calc وذلك بالأمر Call T_Calc وهذا الكود T_Calc ستجده كالتالي Sub T_Calc() TextBox10.Value = TextBox1.Value * TextBox11.Value + TextBox2.Value _ * TextBox12.Value + TextBox3.Value * TextBox13.Value + TextBox4.Value _ * TextBox14.Value + TextBox5.Value * TextBox15.Value + TextBox6.Value _ * TextBox16.Value + TextBox7.Value * TextBox17.Value + TextBox8. _ Value * TextBox18.Value + TextBox9.Value * TextBox19.Value TextBox21.Value = Sheet1.[R1] * 100 TextBox22.Value = TextBox10.Value - TextBox21.Value If TextBox10.Value = 0 Then TextBox23.Value = "0%" Else TextBox23.Value = Format(5 * TextBox6.Value / TextBox10.Value, "0.00 %") End Sub وشرح بسرعة أيضا للكود ، مع طوله فهو مكون من 4 سطور السطر الأول طويل وفي يتم تجميع حاصل ضرب كل عدد × الفئة المقابلة له ووضع النتيجة في الزر TextBox10 ثم جعل الزر TextBox21 يساوي قيمة الخلية R1 مضروبا في 100 لتجميع قيمة البواكي (الرزمات) ثم جعل الزر TextBox22 قيمة الزر TextBox20 - الزر TextBox21 لتجميع قيمة الفكة به وفي الأخير جعل الزر TextBox23 تساوي النسبة المئوية لفئة الخمسة جنيهات
  22. السلام عليكم موجود داخل الفورم في مشاركتي السابقة
  23. السلام عليكم أخي ابراهيم انظر الفيديو المرفق paste_Special.rar
  24. السلام عليكم الأخت الفاضلة كان الأفضل ان يكون موضوع منفصل ولكن تفضلي المرفق مع رجاء الإلتزام في المستقبل بقواعد المنتدي لتعم الفائدة ارقام2.rar
  25. السلام عليكم أخي العزيز ، تم التعديل مرفق الملف وبه الكود الصحيح بيانات-2.rar
×
×
  • اضف...

Important Information