-
Posts
13,165 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
412
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو ياسر خليل أبو البراء
-
توقف خاصية undo و redo عن العمل بمجرد تفعيل الكود
ياسر خليل أبو البراء replied to محمود غباشى's topic in منتدى الاكسيل Excel
أخي الحبيب جعفر الطريبق لطالما أحببت أن أرى مشاركاتك بشكل دائم ..لأنك تأتي بكل ما هو جديد ومميز ولم يخطر ببال أحد إن شاء الله ندعو الله لك أن ييسر أمرك وتجد الوقت لحل هذه المشكلة التي يعاني منها الكثيرون بالفعل .. حتى أنني عندما أصمم برامجي وأكتب الأكواد لا أقوم بتنفيذها إلا بعد أن أكون حفظت الملف بدون تنفيذ الكود ثم أقوم بتنفيذ الكود وأرى النتائج ثم أقوم بإغلاق الملف بعدها بدون حفظ سواء أكانت النتائج صحيحة أو لا .. لأضمن ألا يحدث خلل بالملف الأصلي .. تقبل وافر تقديري واحترامي -
عمل برنامج مواعيد توصيل البضائع
ياسر خليل أبو البراء replied to حسين يوسيف's topic in منتدى الاكسيل Excel
أخي الكريم حسين مشكور على حسن استجابتك يمكنك البدء بملف مرفق ، وكنصيحة مني لا تشتت الأعضاء ..ركز على طلب واحد فقط حتى إذا تم الأمر على خير انتقلت إلى الطلب التالي وهكذا .. أرجو أن يفطن الجميع إلى ذلك .. تقبل تحياتي -
جلب بيانات من جدول الموظفين إلى نموذج الأجازات
ياسر خليل أبو البراء replied to احمد العدوى's topic in منتدى الاكسيل Excel
أخي الكريم أحمد اللهم صل وسلم وبارك على سيد الخلق سيدنا محمد صلى الله عليه وسلم وجزيت خير الجزاء بمثل ما دعوت لي ... والحمد لله أن تم المطلوب على خير .. ولا تنسانا بدعوة بظهر الغيب فما أحوجنا إلى تلك الدعوات تقبل تحياتي -
أخي الحبيب أبو عيد بارك الله فيك أخي الغالي وجزيت خير الجزاء لطالما تمنيت منك عند تقديم المساعدة أن تقدم شرح بسيط لما قمت به من تعديل بالملف .. في حقيقة الأمر لا أحب الإطلاع على المرفق بشكل مباشر ..أحب أن أعرف تفاصيل ما قمت به ثم أطلع في النهاية على المرفق الملف المرفق الأول في الموضوع يؤدي الغرض معي ولا تظهر أي مشكلة ..من ثم أحب أن أعرف ما قمت به بدون الإطلاع على المرفق عموماً يبدو أن فضولي منعني من الانتظار لأرى معادلتك الرائعة والجميلة والتي تؤدي الغرض أيضاً =INDIRECT("Data!A"&MATCH(C5,Data!F$1:F$30000,0)) حيث تقوم الدالة Match بالبحث عن النص المطلوب في الخلية C5 وتتم عملية البحث في ورقة الـ Data في العمود F .. وتكون عملية البحث مطابقة تماماً للنص .. وتقوم الدالة بإرجاع رقم الصف الذي يحتوي على النص المطلوب ، ومن ثم تم استخدام دالة أخرى مفيدة جداً ألا وهي الدالة Indirect لتحول النص الموجود وهو كلمة Data!A ويتبعها رقم الصف ..تحولها لتصبح كأنها معادلة يساوي قيمة أخرى ، فتأتي بالنتيجة المرجوة تقبل وافر تقديري واحترامي أخي الكريم عبد الكريم اتضح لي أن الموضوع مكرر .. فقد تم طرح الموضوع بالأمس وقمت بالرد عليه بأن الملف يعمل بشكل جيد فوجدت اليوم أن ردي غير موجود في الموضوع فشككت أن الموضوع مكرر وبالفعل اتضح أنه مكرر فقمت بدمج الموضوعين رجاءً أخي الفاضل عدم تكرار الموضوعات بدون داعي .. حتى لو كنت مستعجل يكفي أن ترد في الموضوع بكلمة للرفع ليشاهد الأخوة الكرام بالمنتدى الموضوع ويقومون بالرد عليه تقبل تحياتي وتوجيهات المنتدى ويرجى الالتزام بها بارك الله فيك
-
تعديل السنة الدراسية في صفحة الشهادة المدرسية
ياسر خليل أبو البراء replied to رميلي كمال's topic in منتدى الاكسيل Excel
أخي الكريم رميلي كمال في ورقة العمل المسماة 333 ضع النص التالي في الخلية N3 2016 /2015 وفي ورقة العمل المسماة 111 روح لصندوق الاسم اللي على يسار شريط المعادلات واكتب F15 .. وروح لشريط المعادلات واكتب المعادلة بهذا الشكل ="( " &'333'!$N$1 & "/" & $S$2 &" )" وطالما أن الشهادة المقابلة لها لنفس الشخص كما أرى في المرفق فيمكنك استخدام المعادلات بشكل أبسط في الشهادة المقابلة ..فمثلاً في الخلية AH15 يمكنك وضع المعادلة بحيث تساوي قيمة الخلية F15 بدون داعي لكتابة نفس المعادلة مرة أخرى =$F$15 تقبل تحياتي وإليكم الملف المرفق بتنسيق 2003 .. CERTIFICATE YK.rar -
أخي الغالي سعيد بيرم مراحتش عليك ولا حاجة ..ربنا يديك الصحة والعافية وإن شاء الله نشوف منك إبداع محصلش قبل كدا .. بارك الله فيك وأعطاك الصحة والعافية وشفيت من كل سقم وداء بالنسبة للأمانة لابني الحبيب البراء وصلت وقمت بتقبيل يديه نيابةً عنك وأخبرته بذلك ، فقال لي : إنت اللي أنا هبوس ايدك يا عمو (الكلام بدون زيادة أو نقصان كما قال البراء) إن شاء الله سأحاول متابعة موضوعك القادم إذا تيسر لي الأمر بس بالله عليك بسط طلبك بكلمات بسيطة وهادفة ومفيهاش لا لبس ولا تعقيد ..خليك واضح وضوح الشمس يا قمر والحمد لله رب العالمين أن تم المطلوب على خير تقبل وافر تقديري وتحياتي
-
أخي الكريم مرسال طلبك غير واضح بالنسبة للترحيل .. الترحيل كما تذكر مرتبط بتغير أوقات الدخول والخروج ..كيف ذلك؟ اضرب مثال ليتضح المقال وتتضح الصورة ويستطيع إخوانك بالمنتدى تقديم المساعدة تقبل تحياتي
-
أخي الكريم وائل جرب هذا الكود لربما يكون هناك مشاكل في إعدادات الإكسيل نفسه الكود مجرب ويحل الكثير من المشكلات الغريبة التي تحدث ..إذا استمرت المشكلة فعليك بنصيحة أخونا الكريم عبد العزيز (قلم الإكسيل) وقم بتغيير النسخة .. Sub ResetAll() Dim myCommandBar As CommandBar For Each myCommandBar In Application.CommandBars If myCommandBar.Type = msoBarTypePopup Then myCommandBar.Reset myCommandBar.Enabled = True End If Next myCommandBar End Sub
-
عمل برنامج مواعيد توصيل البضائع
ياسر خليل أبو البراء replied to حسين يوسيف's topic in منتدى الاكسيل Excel
أخي الكريم حسين أهلاً بك في المنتدى ونورت بين إخوانك يرجى تغيير اسم الظهور للغة العربية كما يرجى الإطلاع على موضوع التوجيهات في الموضوعات المثبتة في المنتدى بشكل أفضل قم بضغط ملفك وارفعه والمقصد أن ترفق تصورك للمطلوب ليساعدك إخوانك بالمنتدى تقبل تحياتي -
ايقاف عمل كود بعد استدعائه
ياسر خليل أبو البراء replied to محمود غباشى's topic in منتدى الاكسيل Excel
أخي الكريم يرجى إرفاق ملفك لتتضح الصورة .. ويتضح المطلوب بشكل أكثر تقبل تحياتي -
أخي الكريم نور وحيد إليك الملف التالي إثراءً للحل Multi Data Validation List YasserKhalil.rar أخي الحبيب ياسر العربي حلك رائع جداً ..إضافة بسيطة لحلك هو إمكانية جعل القوائم كلها مطاطية أي غير ثابتة إليك حل المتميز ياسر العربي بإضافة بسيطة وهي جعل القوائم ديناميكية Multi Data Validation List Araby.rar
-
كود ترتيب حسب القيم محددة
ياسر خليل أبو البراء replied to محمد الزريعي's topic in منتدى الاكسيل Excel
أخي الكريم محمد الزريعي كما أخبرتك أن البيانات بها مسافات زائدة .. اعمل دبل كليك في بعض الخلايا ستجد أن هناك مسافات في آخر الكلمة في بعض الأحيان مما يؤثر على عمل الكود قمت باستخدام الدالة TRIM لإزالة المسافات ..في عمود بعيد ووضعت معادلات بسيطة ثم نسخت النتائج الجديدة ووضعتها مكان البيانات القديمة .. وكذلك الحال مع نطاقات الشروط في الورقة h ... أمر آخر في منتهى الأهمية .. لابد من إدراج جميع الشروط المطلوبة في ورقة العمل h .. ليتحقق الهدف من الكود وهو الفرز والترتيب المخصص حسب الشروط في النطاق .. لأنني لاحظت وجود كلمة افرغ مثلا وكلمة افراغ صوري ..سيتم التعامل مع كلمة افراغ فقط لأنها مدرجة في قائمة الشروط أما كلمة افراغ صوري فلن تتعامل نغفس المعاملة .. صححت كلمة أدخال جديد وحذفت الهمزة لتصحيح الوضع وجعتلها "ادخال جديد" كما هو الحال مع معظم الخلايا .. عموماً لابد كما ذكرت لك من تصحيح البيانات لتحصل على نتائج منضبطة .. وإليك الملف بعد إجراء بعض عمليات التصحيح على البيانات تقبل تحياتي الملف الاصلي بكامل الاكواد.rar -
أخي الكريم سعيد إنت حيرتني .. لو رجعت للمشاركة اللي قبل الحل الأخير لوجدتني سألتك سؤال مباشر وصريح ومش محتاج توضيح .. وقلت لك عايز النسخة التالتة زي الأولى وزي التانية ..؟؟ ولم تأتي الإجابة صريحة وواضحة كما كان السؤال .. وذكرت انك تريد إضافة كلمة "نسخة للحفظ" ولم تشر إلى أي النسختين تريد أن تكون النسخة الثالثة مثلها .. سأعتبر هذا إنذار أصفر والإنذار الثاني سيتم طردي من المنتدى (ربنا يستر متبلغش عني) عموماً جرب الكود الأخير حسب ما فهمت من توضيحك ومعك ملف مرفق أخير للتجربة عليه وأي ملاحظات أنا تحت أمرك .. Sub Print_All() Dim Sh As Worksheet, LR As Long, Cel As Range Dim Stx1 As String, Stx2 As String, St1 As String, St2 As String Dim Texte1 As String, Texte2 As String Set Sh = Sheets("فاتورة") LR = Sh.Cells(Sh.Rows.Count, 1).End(xlUp).Row Stx1 = "جنيها ": Stx2 = "قرشا ": St1 = "و ": St2 = "لاغير" Texte1 = NoToTxt2(Cells(LR, "J")) Texte2 = NoToTxt2(Cells(LR, "I")) Range("del_range").NumberFormat = ";;;" For Each Cel In Range("A8:A" & LR) If Left(Cel.Value, 6) = "ماقبله" Then Cel.Offset(-3, 0).Resize(3).EntireRow.Hidden = True Next Cel Range("A" & LR).Offset(3, 0).Resize(3).EntireRow.Hidden = True ActiveSheet.PrintOut Copies:=1 Range("A8:A" & LR + 5).EntireRow.Hidden = False With Cells(LR + 1, "B") .Value = "إجمالى الفاتورة : " .HorizontalAlignment = xlLeft .Offset(1, 0).Value = "ما عدا السهو والخطأ" If Cells(LR, "I") = 0 Then .Offset(, 1).Value = "فقط " & Texte1 & Stx1 & St2 Else .Offset(, 1) = "فقط " & Texte1 & Stx1 & St1 & Texte2 & Stx2 & St2 .HorizontalAlignment = xlRight End With Range("del_range").NumberFormat = "00" ActiveSheet.PrintOut Copies:=1 Columns("F:F").EntireColumn.Hidden = False Range("F1").Value = "نسخة للحفظ" ActiveSheet.PrintOut Copies:=1 Range(Cells(LR + 1, "B"), Cells(LR + 2, "C")) = "" Range("F1").Value = "" Columns("F:F").EntireColumn.Hidden = True End Sub تقبل تحياتي فاتورة مبيعات بنظام القرش والجنيه مع التفقيط.rar
-
جلب بيانات من جدول الموظفين إلى نموذج الأجازات
ياسر خليل أبو البراء replied to احمد العدوى's topic in منتدى الاكسيل Excel
أخي الكريم أحمد العدوي ضع الكود التالي في موديول عادي Sub ReportVacation() Const RowOfDates_Data As Long = 6 Const V_1C As String = "اعتيادى", V_2C As String = "عارضة", V_3C As String = "مرضى" Dim I As Long, J As Long, Col As Long Dim NameToReport As String, VacClass As String Dim FirstRowOfDates_Report As Long, FirstColumnOfDates_Report As Long, NamerOffset As Long Dim ColumnOfDates_Report As Long Dim EndColumnOfVac_PossibleRunOn As Long Dim rNameToCheck_Data As Long, cVacToCheck_Data_1st As Long, cVacToCheck_Data_Last As Long Dim VacRunOns() As Long Dim WS As Worksheet Dim Col_1C As Collection, Col_2C As Collection, Col_3C As Collection, Col_x As Collection, Col_y As Collection Set Col_1C = New Collection Set Col_2C = New Collection Set Col_3C = New Collection Set Col_x = New Collection Set Col_y = New Collection Set WS = ThisWorkbook.Worksheets("Sheet1") WS.Range("B12:C36,G12:H36,L12:M36").ClearContents cVacToCheck_Data_1st = 19 For I = 0 To WS.Cells(7, 18).End(xlDown).Row - 7 If WS.Cells(5, 2) = WS.Cells(I + 7, 18) Then rNameToCheck_Data = I + 1 + RowOfDates_Data Exit For End If Next I If rNameToCheck_Data = Empty Then MsgBox ("خطأ: الاسم غير موجود" & vbCr & "التأكد من الاسم: " & WS.Cells(5, 2).Value) Do While WS.Cells(rNameToCheck_Data, cVacToCheck_Data_1st).End(xlToRight).Column < 50 If WS.Cells(rNameToCheck_Data, cVacToCheck_Data_1st).Value = Empty Then cVacToCheck_Data_1st = WS.Cells(rNameToCheck_Data, cVacToCheck_Data_1st).End(xlToRight).Column End If If WS.Cells(rNameToCheck_Data, cVacToCheck_Data_1st + 1) = WS.Cells(rNameToCheck_Data, cVacToCheck_Data_1st) Then cVacToCheck_Data_Last = WS.Cells(rNameToCheck_Data, cVacToCheck_Data_1st).End(xlToRight).Column Else cVacToCheck_Data_Last = cVacToCheck_Data_1st End If ReDim VacRunOns(0) VacRunOns(0) = cVacToCheck_Data_1st If cVacToCheck_Data_1st < cVacToCheck_Data_Last Then For Col = cVacToCheck_Data_1st + 1 To cVacToCheck_Data_Last If WS.Cells(rNameToCheck_Data, Col - 1) <> WS.Cells(rNameToCheck_Data, Col) Then ReDim Preserve VacRunOns(UBound(VacRunOns) + 1) VacRunOns(UBound(VacRunOns)) = Col End If Next Col End If For I = 0 To UBound(VacRunOns) VacClass = WS.Cells(rNameToCheck_Data, VacRunOns(I)) If I < UBound(VacRunOns) Then EndColumnOfVac_PossibleRunOn = VacRunOns(I + 1) - 1 Else EndColumnOfVac_PossibleRunOn = cVacToCheck_Data_Last End If Select Case VacClass Case V_1C Col_1C.Add AssignDatesToCollection(WS.Cells(RowOfDates_Data, VacRunOns(I)), WS.Cells(RowOfDates_Data, EndColumnOfVac_PossibleRunOn)) Case V_2C Col_2C.Add AssignDatesToCollection(WS.Cells(RowOfDates_Data, VacRunOns(I)), WS.Cells(RowOfDates_Data, EndColumnOfVac_PossibleRunOn)) Case V_3C Col_3C.Add AssignDatesToCollection(WS.Cells(RowOfDates_Data, VacRunOns(I)), WS.Cells(RowOfDates_Data, EndColumnOfVac_PossibleRunOn)) Case Else MsgBox (" خطأ في نوع الأجازة" & VacClass & " غير موجودة") End Select Next I cVacToCheck_Data_1st = EndColumnOfVac_PossibleRunOn + 1 Loop FirstRowOfDates_Report = 12 FirstColumnOfDates_Report = 2 For I = 0 To 2 If I = 0 Then If Col_1C.Count > 0 Then Set Col_y = Col_1C ElseIf I = 1 Then If Col_2C.Count > 0 Then Set Col_y = Col_2C ElseIf I = 2 Then If Col_3C.Count > 0 Then Set Col_y = Col_3C End If For J = 1 To Col_y.Count Set Col_x = Col_y.Item(J) WS.Cells(FirstRowOfDates_Report + J - 1, FirstColumnOfDates_Report + 5 * I) = Col_x.Item(1) WS.Cells(FirstRowOfDates_Report + J - 1, FirstColumnOfDates_Report + 5 * I + 1) = Col_x.Item(2) If J = Col_y.Count Then Set Col_y = New Collection Next J Next I End Sub Private Function AssignDatesToCollection(StartD As Date, EndD As Date) As Collection Dim Output As Collection Set Output = New Collection Output.Add StartD Output.Add EndD Set AssignDatesToCollection = Output End Function ثم قم بوضع الكود التالي في حدث ورقة العمل Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.CountLarge > 1 Then Exit Sub If Not Intersect(Target, Range("B5")) Is Nothing Then Call ReportVacation End If End Sub تقبل وافر تقديري واحترامي اجازات موظفين.rar -
بارك الله فيك أخي الفاضل أحمد على المعلومة التي قد تغيب عن أذهان الكثيرين بالفعل أي خلل في إدخال البياانات في كثير من الأحيان يؤدي إلى مشاكل في التعامل مع الملف والأكواد تقبل تحياتي
-
أخي الكريم أحمد يرجى تغيير اسم الظهور للغة العربية ارفق نموذج لملفك للعمل عليه لمحاولة المساعدة .. واستفسار هل تقصد بملف جديد أن يتم نسخ الورقة إلى مصنف جديد بعيداً عن المصنف الحالي تماماً؟ نرجو التوضيح التام للطلب كما يرجى إرفاق ملف للعمل عليه وتجربة المحاولات
-
حساب الفرق بين التواريخ الهجرية
ياسر خليل أبو البراء replied to ibrahimelsaeed's topic in منتدى الاكسيل Excel
بارك الله فيك أخي الحبيب أبا الحسن والحسين ملف جميل جداً .. ورائع (سأحتفظ به في مكتبتي الخااااااااااصة) أخي الكريم إبراهيم السعيد يرجى تغيير اسم الظهور للغة العربية تقبلوا تحياتي -
أخي الكريم كاسر الأمواج اطلعت بشكل سريع على الفورم ووجدت أنك تستخدم أزرار الاختيار Option Buttons وهذه الأزرار تتيح اختيار واحد فقط من بين كل الأزرار أما إذا كنت تريد الاختيار وتحديد البعض وترك البعض أو اختيار الكل أو عدم اختيار الكل فالحل الأمثل هو استخدام أزرار Check Box أرجو أن أكون قد أفدتك بشكل مبدئي وأترك لك إعادة رفع الملف المرفق بعد تعديل الفورم .. أمر آخر : ما هي شكل النتائج المتوقعة ؟؟ أنت تريد أن تظهر جميع الأجازات .. كيف ذلك ؟ والأفضل أن تضرب مثال حسب الملف المرفق لتتضح الصورة للجميع تقبل تحياتي
-
أخي الكريم يوسف عطا كيف الحال يا رجل ؟ افتقدناك الفترة الماضية بالنسبة لطلبك يمكن وضع المعادلة التالية في الخلية G2 ثم سحبها إلى آخر النطاق =LEFT(F2,FIND(" ",F2)-1) وفي أول خلية فارغة بعد النطاق قم بوضع المعادلة التالية : =SUM(INT(G2:G167)+MOD(G2:G167,1)*5/3)/24 وهي معادلة صفيف أي يجب الضغط على Ctrl + Shift + Enter وإليك الملف المرفق توضيحاً لكيفية الوصول للحل تقبل تحياتي Vodafone.rar