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

ياسر خليل أبو البراء

المشرفين السابقين
  • Posts

    13,165
  • تاريخ الانضمام

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

  • Days Won

    412

كل منشورات العضو ياسر خليل أبو البراء

  1. أخي الكريم يوسف عطا جرب المعادلة بهذا الشكل علها تؤدي الغرض إن شاء الله =VALUE(LEFT(LEFT(F2,FIND(" ",F2)-1),2)) تقبل تحياتي
  2. أخي الحبيب جعفر الطريبق لطالما أحببت أن أرى مشاركاتك بشكل دائم ..لأنك تأتي بكل ما هو جديد ومميز ولم يخطر ببال أحد إن شاء الله ندعو الله لك أن ييسر أمرك وتجد الوقت لحل هذه المشكلة التي يعاني منها الكثيرون بالفعل .. حتى أنني عندما أصمم برامجي وأكتب الأكواد لا أقوم بتنفيذها إلا بعد أن أكون حفظت الملف بدون تنفيذ الكود ثم أقوم بتنفيذ الكود وأرى النتائج ثم أقوم بإغلاق الملف بعدها بدون حفظ سواء أكانت النتائج صحيحة أو لا .. لأضمن ألا يحدث خلل بالملف الأصلي .. تقبل وافر تقديري واحترامي
  3. أخي الكريم حسين مشكور على حسن استجابتك يمكنك البدء بملف مرفق ، وكنصيحة مني لا تشتت الأعضاء ..ركز على طلب واحد فقط حتى إذا تم الأمر على خير انتقلت إلى الطلب التالي وهكذا .. أرجو أن يفطن الجميع إلى ذلك .. تقبل تحياتي
  4. أخي الكريم أحمد اللهم صل وسلم وبارك على سيد الخلق سيدنا محمد صلى الله عليه وسلم وجزيت خير الجزاء بمثل ما دعوت لي ... والحمد لله أن تم المطلوب على خير .. ولا تنسانا بدعوة بظهر الغيب فما أحوجنا إلى تلك الدعوات تقبل تحياتي
  5. أخي الكريم عاطف يبدو أن المشكلة سببها والله أعلم أن هناك ربما تسميات متشابهة لأوراق مخفية أو محمية ولا يمكن الجزم بسبب المشكلة بدون الإطلاع على الملف الخاص بك تقبل تحياتي
  6. أخي الحبيب أبو عيد بارك الله فيك أخي الغالي وجزيت خير الجزاء لطالما تمنيت منك عند تقديم المساعدة أن تقدم شرح بسيط لما قمت به من تعديل بالملف .. في حقيقة الأمر لا أحب الإطلاع على المرفق بشكل مباشر ..أحب أن أعرف تفاصيل ما قمت به ثم أطلع في النهاية على المرفق الملف المرفق الأول في الموضوع يؤدي الغرض معي ولا تظهر أي مشكلة ..من ثم أحب أن أعرف ما قمت به بدون الإطلاع على المرفق عموماً يبدو أن فضولي منعني من الانتظار لأرى معادلتك الرائعة والجميلة والتي تؤدي الغرض أيضاً =INDIRECT("Data!A"&MATCH(C5,Data!F$1:F$30000,0)) حيث تقوم الدالة Match بالبحث عن النص المطلوب في الخلية C5 وتتم عملية البحث في ورقة الـ Data في العمود F .. وتكون عملية البحث مطابقة تماماً للنص .. وتقوم الدالة بإرجاع رقم الصف الذي يحتوي على النص المطلوب ، ومن ثم تم استخدام دالة أخرى مفيدة جداً ألا وهي الدالة Indirect لتحول النص الموجود وهو كلمة Data!A ويتبعها رقم الصف ..تحولها لتصبح كأنها معادلة يساوي قيمة أخرى ، فتأتي بالنتيجة المرجوة تقبل وافر تقديري واحترامي أخي الكريم عبد الكريم اتضح لي أن الموضوع مكرر .. فقد تم طرح الموضوع بالأمس وقمت بالرد عليه بأن الملف يعمل بشكل جيد فوجدت اليوم أن ردي غير موجود في الموضوع فشككت أن الموضوع مكرر وبالفعل اتضح أنه مكرر فقمت بدمج الموضوعين رجاءً أخي الفاضل عدم تكرار الموضوعات بدون داعي .. حتى لو كنت مستعجل يكفي أن ترد في الموضوع بكلمة للرفع ليشاهد الأخوة الكرام بالمنتدى الموضوع ويقومون بالرد عليه تقبل تحياتي وتوجيهات المنتدى ويرجى الالتزام بها بارك الله فيك
  7. أخي الكريم ولد الحجاز يمكنك إخفاء المعادلات عن طريق حماية ورقة العمل أو حماية النطاق المراد إخفاء المعادلات به
  8. أخي الكريم رميلي كمال في ورقة العمل المسماة 333 ضع النص التالي في الخلية N3 2016 /2015 وفي ورقة العمل المسماة 111 روح لصندوق الاسم اللي على يسار شريط المعادلات واكتب F15 .. وروح لشريط المعادلات واكتب المعادلة بهذا الشكل ="( " &'333'!$N$1 & "/" & $S$2 &" )" وطالما أن الشهادة المقابلة لها لنفس الشخص كما أرى في المرفق فيمكنك استخدام المعادلات بشكل أبسط في الشهادة المقابلة ..فمثلاً في الخلية AH15 يمكنك وضع المعادلة بحيث تساوي قيمة الخلية F15 بدون داعي لكتابة نفس المعادلة مرة أخرى =$F$15 تقبل تحياتي وإليكم الملف المرفق بتنسيق 2003 .. CERTIFICATE YK.rar
  9. أخي الكريم عبد الكريم الليبي وعليكم السلام ورحمة الله وبركاته بالنسبة للمعادلة الموجودة في الخلية D3 سليمة وتعمل بشكل جيد .. وتأتي بالنتيجة المرجوة على ما أعتقد ما هو الخطأ الذي يظهر لديك ؟ وما هي نسخة الأوفيس التي تعمل عليها؟ تقبل تحياتي
  10. أخي الغالي سعيد بيرم مراحتش عليك ولا حاجة ..ربنا يديك الصحة والعافية وإن شاء الله نشوف منك إبداع محصلش قبل كدا .. بارك الله فيك وأعطاك الصحة والعافية وشفيت من كل سقم وداء بالنسبة للأمانة لابني الحبيب البراء وصلت وقمت بتقبيل يديه نيابةً عنك وأخبرته بذلك ، فقال لي : إنت اللي أنا هبوس ايدك يا عمو (الكلام بدون زيادة أو نقصان كما قال البراء) إن شاء الله سأحاول متابعة موضوعك القادم إذا تيسر لي الأمر بس بالله عليك بسط طلبك بكلمات بسيطة وهادفة ومفيهاش لا لبس ولا تعقيد ..خليك واضح وضوح الشمس يا قمر والحمد لله رب العالمين أن تم المطلوب على خير تقبل وافر تقديري وتحياتي
  11. أخي الكريم مرسال طلبك غير واضح بالنسبة للترحيل .. الترحيل كما تذكر مرتبط بتغير أوقات الدخول والخروج ..كيف ذلك؟ اضرب مثال ليتضح المقال وتتضح الصورة ويستطيع إخوانك بالمنتدى تقديم المساعدة تقبل تحياتي
  12. أخي الكريم وائل جرب هذا الكود لربما يكون هناك مشاكل في إعدادات الإكسيل نفسه الكود مجرب ويحل الكثير من المشكلات الغريبة التي تحدث ..إذا استمرت المشكلة فعليك بنصيحة أخونا الكريم عبد العزيز (قلم الإكسيل) وقم بتغيير النسخة .. 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
  13. أخي الكريم حسين أهلاً بك في المنتدى ونورت بين إخوانك يرجى تغيير اسم الظهور للغة العربية كما يرجى الإطلاع على موضوع التوجيهات في الموضوعات المثبتة في المنتدى بشكل أفضل قم بضغط ملفك وارفعه والمقصد أن ترفق تصورك للمطلوب ليساعدك إخوانك بالمنتدى تقبل تحياتي
  14. أخي الكريم يرجى إرفاق ملفك لتتضح الصورة .. ويتضح المطلوب بشكل أكثر تقبل تحياتي
  15. أخي الكريم نور وحيد إليك الملف التالي إثراءً للحل Multi Data Validation List YasserKhalil.rar أخي الحبيب ياسر العربي حلك رائع جداً ..إضافة بسيطة لحلك هو إمكانية جعل القوائم كلها مطاطية أي غير ثابتة إليك حل المتميز ياسر العربي بإضافة بسيطة وهي جعل القوائم ديناميكية Multi Data Validation List Araby.rar
  16. أخي الكريم أبو يوسف أي المعادلات يحدث فيها الخطأ .. ؟ أعتقد أن المعادلات يجب ان تعمل على 2003 .. جرب تغير الفاصلة العادية لفاصلة منقوطة .. حيث أنني من مفضلي التعامل مع المعادلات بالفاصلة العادية وأقوم بتغيير إعدادات الويندوز لعمل ذلك .. تقبل تحياتي
  17. أخي الكريم محمد الزريعي كما أخبرتك أن البيانات بها مسافات زائدة .. اعمل دبل كليك في بعض الخلايا ستجد أن هناك مسافات في آخر الكلمة في بعض الأحيان مما يؤثر على عمل الكود قمت باستخدام الدالة TRIM لإزالة المسافات ..في عمود بعيد ووضعت معادلات بسيطة ثم نسخت النتائج الجديدة ووضعتها مكان البيانات القديمة .. وكذلك الحال مع نطاقات الشروط في الورقة h ... أمر آخر في منتهى الأهمية .. لابد من إدراج جميع الشروط المطلوبة في ورقة العمل h .. ليتحقق الهدف من الكود وهو الفرز والترتيب المخصص حسب الشروط في النطاق .. لأنني لاحظت وجود كلمة افرغ مثلا وكلمة افراغ صوري ..سيتم التعامل مع كلمة افراغ فقط لأنها مدرجة في قائمة الشروط أما كلمة افراغ صوري فلن تتعامل نغفس المعاملة .. صححت كلمة أدخال جديد وحذفت الهمزة لتصحيح الوضع وجعتلها "ادخال جديد" كما هو الحال مع معظم الخلايا .. عموماً لابد كما ذكرت لك من تصحيح البيانات لتحصل على نتائج منضبطة .. وإليك الملف بعد إجراء بعض عمليات التصحيح على البيانات تقبل تحياتي الملف الاصلي بكامل الاكواد.rar
  18. أخي الكريم سعيد إنت حيرتني .. لو رجعت للمشاركة اللي قبل الحل الأخير لوجدتني سألتك سؤال مباشر وصريح ومش محتاج توضيح .. وقلت لك عايز النسخة التالتة زي الأولى وزي التانية ..؟؟ ولم تأتي الإجابة صريحة وواضحة كما كان السؤال .. وذكرت انك تريد إضافة كلمة "نسخة للحفظ" ولم تشر إلى أي النسختين تريد أن تكون النسخة الثالثة مثلها .. سأعتبر هذا إنذار أصفر والإنذار الثاني سيتم طردي من المنتدى (ربنا يستر متبلغش عني) عموماً جرب الكود الأخير حسب ما فهمت من توضيحك ومعك ملف مرفق أخير للتجربة عليه وأي ملاحظات أنا تحت أمرك .. 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
  19. أخي الكريم أحمد العدوي ضع الكود التالي في موديول عادي 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
  20. بارك الله فيك أخي الفاضل أحمد على المعلومة التي قد تغيب عن أذهان الكثيرين بالفعل أي خلل في إدخال البياانات في كثير من الأحيان يؤدي إلى مشاكل في التعامل مع الملف والأكواد تقبل تحياتي
  21. أخي الكريم أحمد يرجى تغيير اسم الظهور للغة العربية ارفق نموذج لملفك للعمل عليه لمحاولة المساعدة .. واستفسار هل تقصد بملف جديد أن يتم نسخ الورقة إلى مصنف جديد بعيداً عن المصنف الحالي تماماً؟ نرجو التوضيح التام للطلب كما يرجى إرفاق ملف للعمل عليه وتجربة المحاولات
  22. بارك الله فيك أخي الحبيب أبا الحسن والحسين ملف جميل جداً .. ورائع (سأحتفظ به في مكتبتي الخااااااااااصة) أخي الكريم إبراهيم السعيد يرجى تغيير اسم الظهور للغة العربية تقبلوا تحياتي
  23. أخي الكريم كاسر الأمواج اطلعت بشكل سريع على الفورم ووجدت أنك تستخدم أزرار الاختيار Option Buttons وهذه الأزرار تتيح اختيار واحد فقط من بين كل الأزرار أما إذا كنت تريد الاختيار وتحديد البعض وترك البعض أو اختيار الكل أو عدم اختيار الكل فالحل الأمثل هو استخدام أزرار Check Box أرجو أن أكون قد أفدتك بشكل مبدئي وأترك لك إعادة رفع الملف المرفق بعد تعديل الفورم .. أمر آخر : ما هي شكل النتائج المتوقعة ؟؟ أنت تريد أن تظهر جميع الأجازات .. كيف ذلك ؟ والأفضل أن تضرب مثال حسب الملف المرفق لتتضح الصورة للجميع تقبل تحياتي
  24. أخي الكريم أحمد لن أقول أهلاً بك في منتدى أوفيسنا ولكن أقول أهلاً بك بين إخوانك في أسرة أوفيسنا ..لعل المعنى يصل إليك بشكل أفضل وفي انتظار المزيد من مشاركاتك القيمة والمفيدة للجميع تقبل تحياتي
  25. أخي الكريم يوسف عطا كيف الحال يا رجل ؟ افتقدناك الفترة الماضية بالنسبة لطلبك يمكن وضع المعادلة التالية في الخلية G2 ثم سحبها إلى آخر النطاق =LEFT(F2,FIND(" ",F2)-1) وفي أول خلية فارغة بعد النطاق قم بوضع المعادلة التالية : =SUM(INT(G2:G167)+MOD(G2:G167,1)*5/3)/24 وهي معادلة صفيف أي يجب الضغط على Ctrl + Shift + Enter وإليك الملف المرفق توضيحاً لكيفية الوصول للحل تقبل تحياتي Vodafone.rar
×
×
  • اضف...

Important Information