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

نجوم المشاركات

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

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

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


    • نقاط

      17

    • Posts

      13165


  2. عبدالله فاروق ابو ريان

    • نقاط

      12

    • Posts

      301


  3. مختار حسين محمود

    • نقاط

      7

    • Posts

      944


  4. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      5

    • Posts

      9927


Popular Content

Showing content with the highest reputation on 04/27/15 in all areas

  1. السلام عليكم الله وبركاته بداية أقدم كل التحية والتفدير والاحترام الى أساتذتى الكرام وأخص بالذكر الأستاذ عبدالله باقشير الذى أوحى إلىّ بهذه الدالة فقد قدم لنا الأستاذ الفاضل دالة للجمع بناء على لون الخلية وهى : Function kh_SumColor(RngColor As Range) As Double Dim cel As Range Dim sm As Double For Each cel In RngColor If cel.Interior.Color = Application.Caller.Interior.Color Then sm = sm + Val(cel) Next kh_SumColor = sm End Function وعن طريق الصدفة وجدت طلبا فى أحد المنتديات الأجنبية التى أشترك فيها يسأل عن Sum Cells by Font Color فجااء ببالى لماذا لا نستفيد من دالة أستاذى الفاضل ولكن بطريقة أخرى وهى الجمع بناء على لون الخط فأصبحت الدالة بهذا الشكل : Function MOKHTAR_SumFontColor(RngFontColor As Range) As Double Dim cel As Range Dim MOKH As Double For Each cel In RngFontColor If cel.Font.Color = Application.Caller.Font.Color Then MOKH = MOKH + Val(cel) Next MOKHTAR_SumFontColor = MOKH End Function وبمجرد أن أنتهيت من المطلوب قررت وضعه هنا فى المنتدى ليستفيد منه الزملاء أرجو من أستاذى أن يعذرنى على هذا الاقتباس فقد ينفع يوما بعض الناس . تقبلوا جميعاً تحياتى وهذا مرفق للدالة Sum Cells by Font Color.rar
    4 points
  2. السلام عليكم إخواني الكرام في المنتدى الرائع أقدم لكم كود بسيط يتم وضعه في حدث Worksheet_BeforeDoubleClick يقوم الكود بوضع علامة صح عند النقر المزدوج على أي خلية في النطاق A1:A100 يمكنك تغيير النطاق إلى أي نطاق تريده .. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("A1:A100")) Is Nothing Then Cancel = True Target.Font.Name = "Marlett" If Target = vbNullString Then Target = "a" Else Target = vbNullString End If End If End Sub
    2 points
  3. بعد اذن الاستاذ جعفر ! والله جهزت الحل قبل اشوف ردكم !! ولكم اجمل تحية ضع 600000 عند خاصية الفاصل الزمني للنموذج وهذا الكود عند الحدث عند عداد الوقت للنموذج مع ملاحظة انه تم اضافة عند الوصول لاخر سجل يعود مرة اخرى لاول سجل Private Sub Form_Timer() If CurrentRecord = Me.RecordsetClone.RecordCount Then DoCmd.GoToRecord , , acFirst: Exit Sub DoCmd.GoToRecord , , acNext End Sub بالتوفيق
    2 points
  4. اخوانى الافاضل ها قد انتهينا من شرح مجموعة الدروس الخاصه بالبحث عن طريق conditional formatting ارجو ان اكون قد وفقت فى الشرح وان تكون هذه الدروس مفيده مرفق شيت اكسيل به التطبيقات تقبلو تحياتى Conditional-Formatting.rar
    2 points
  5. السلام عليكم ورحمة الله وبركاته أخى وأستاذى ياسر خليل تقبل الله تعالى دعائكم لى ولك مثله بإذن الله تعالى أخى الفاضل عبدالله فاروق بارك الله فيك وشرُفت بمرورك وسعدتُ به
    2 points
  6. اخي الفاضل ابو اسماعيل عفواً على التاخير اول مرة اعمل فيديو وكنت بحمب البرنامج وبحاول اشتغل عليه تفضل رابط الفيديو على يوتيوب
    2 points
  7. اخى الحبيب يوضع هذا الجزء فى بداية اكواد الفورم Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = -16 Const WS_SYSMENU = &H80000 ثم يوضع هذا الجزء مستقل Private Sub UserForm_Initialize() Dim hWnd As Long, lStyle As Long If Val(Application.Version) >= 9 Then hWnd = FindWindow("ThunderDFrame", Me.Caption) Else hWnd = FindWindow("ThunderXFrame", Me.Caption) End If lStyle = GetWindowLong(hWnd, GWL_STYLE) SetWindowLong hWnd, GWL_STYLE, (lStyle And Not WS_SYSMENU) End Sub اخفاء زر الخروج.zip
    2 points
  8. تفضل اخي شوف ينفع معك ولا لا فاتورة خردة - Copy.rar
    2 points
  9. أخي وحبيبي في الله مختار جزاكم الله خير الجزاء في الدنيا والآخرة ونفع بكم ورزقكم من حيث لا تحتسب هو دا الكلام يا كبير تسلم وتعيش وتاكل قراقيش (ولا مفيش في الصعيد منه)
    2 points
  10. الأخ الكريم أهلا بك بين إخوانك وأحبابك في الله ------------------------------- يرجى تغيير اسمك للغة العربية لسهولة التواصل كما يرجى الإطلاع على رابط التوجيهات لمعرفة قواعد المنتدى ------------------------------- رحبنا وعرفنا القواعد إليك الملف التالي وإن شاء الله يفي بالغرض Hyperlink Formula YasserKhalil.rar
    2 points
  11. اخي الفاضل يمكنك تجربة الملف التالي ويارب اكون فهمت المرة دي لاني لو مفهمتش يبقى عندي مشكلة كبيرة هههههه 12.rar
    2 points
  12. السلام عليكم ورحمة الله وبركاته فورم إضافة وبحث وتعديل مرن (الاصدار الثالث) بمعية فورم لادخال التاريخ الجديد في هذا الاصدار 1 - امكانية اضافة التاريخ في تاكست الادخال بوضع مؤشر الفارة على التاكست والضغط عل الزر Calendar 2 - اضافة زر اختيار للبحث للتبديل بين البحث العام والبحث من بداية الكلمة 3 - اضافة زر للذهاب الى السجل النشط شرح امكانيات الفورم وكيفية الاستخدام 1 - استخدام الفورم لاكثر من قاعدة بيانات في المصنف على ان يكون لكل قاعدة كود لاظهار الفورم يتغير فيه معطياتك في متغيرات kh_SetAddrss اولاً : اسم ورقة البيانات ( افتراضي ) ثانياً : نطاق صف رؤوس اعمدة البيانات ( افتراضي ) ثالثاً : عمود التسلسل ( اختياري ) اذا اردت ادخال رقم تسلسل البيانات الخاص بالفورم تلقائيا في عمود معين سجل عنوان راس العمود . مع ملاحظة انه لا يكون من ضمن نطاق رؤوس اعمدة البيانات كما هو معمول في المثال 2. 2 - تستطيع اضافة قائمة لعمود معين في الفورم باضافة تعليق على عنوان العمود وتكتب اسم نطاق القائمة . 3 - ينسخ التنسيقات والمعادلات في السجل الجديد . 4 - يبحث في جميع الاعمدة حسب الاختيار من القائمة في الفورم . 5 - يعطي نتائج صحيحة عند البحث عن تاريخ اذا شيكت الزر البحث عن تاريخ . 6 - امكانيات زر البحث عن تاريخ يتم تحويل اي قيمة تضعها في مربع النص للبحث الى تاريخ بالتنسيق الافتراضي للفورم ,, مع امكانية ادخال رقم صحيح بين 1 الى 31 ليفهم على انه تاريخ اليوم للشهر الحالي والسنة الحالية 7 - ثوابت بامكانك تغييرها حسب طلبك بداية اكواد الفورم 1- تغيير تنسيقات إظهار التاريخ في الفورم في الثابت DtF 2- تغيير عٌرض مربعات الادخال في الثابت iWgt1 8 - بامكانك انتقاء الاعمدة التي تريدها عند تسمية النطاق وترتيبها حسب ما تريد مع ملاحظة ان العمود الذي يعتمد عليه في احتساب آخر صف هو العمود الاول من التسمية مثلا "E15,C15,H15:AX15" الشرح بداخل الملف للاستخدام يجب نقل الفورمين الى ملفك المرفق 2003 فورم ادخال و تعديل مرن بمعية فورم ادخال التاريخ.rar ============================================ تم اضافة زر للطباعة في الرابط ادناه http://www.officena.net/ib/index.php?showtopic=52300 ============================================
    1 point
  13. السلام عليكم ورحمة الله وبركاته هدفيه للعاملين بالكنترولات المدرسيه ...... _ سجلات اعمال الكنترول كامله ... _ توزيع الملاحظين اليا على اللجان .... مع تحياتى ....
    1 point
  14. السلام عليكم ورحمة الله وبركاته إخواني الكرام .. قد يكون موضوع الكسر موضوع شائك وفيه خلاف ، ولكن ربما يكون مفيد لصاحب العمل نفسه ، حيث أنه معرض لنسيان الباسورد الذي تم وضعه على محرر الأكواد .. الموضوع مميز لأنه يقوم بكسر الحماية بدون برامج على الإطلاق ..وبدون AddIns وبدون الاستعانة بأية برامج مجانية أو مدفوعة !! كسر محرر الأكواد بالأكواد نفسها (قنبلة الموسم) وعلى رأي المثل : علمته رمي السهام فلما اشتد ساعده رماني .. الكود قليل الأصل !! محفظش الجميل للبيئة اللي هو منها ، لأنه كسر بيئة محرر الأكواد !!! Sub HackVBA() Open "C:\Users\Future\Desktop\Test.xls" For Binary As #1 Put #1, 1, Replace(Input(LOF(1), 1), "DPB=", "DPX=", , 1) Close Workbooks.Open "C:\Users\Future\Desktop\Test.xls" End Sub المطلوب فقط أن تغير مسار الملف المراد كسره داخل الكود ، والمسار يوضع بين أقواس تنصيص .. أترككم مع الفيديو عله ينال إعجابكم وتستفيدوا منه إن شاء المولى .. ولا تنسونا من اللايكات على اليوتيوب !!!!! ....أكرر اللايكات على اليوتيوب ..فضلاً لا أمراً تقبلوا تحيات أخوكم أبو البراء
    1 point
  15. السلام عليكم ورحمة الله وبركاته.. أعزائي واخواني: هذا رابط لإضافة وظائف إضافية مجاني. في الحقيقة أعجبتني، وأردت أن تشاركونني. ففيها فوائد كثيرة ومتنوعة. ..أسأل الله أن تكون نافعة للجميع.. ..وفقني الله وإياكم لما يحب ويرضى.. رابط صفحة التحميل: http://www.ribboncommander.com/
    1 point
  16. السلام عليكم ورحمة الله وبركاته هذه هديتى اليكم وهى( توليد سلسلة من تاريخ الشهر ) لشهر معين فى سنه معينه .... ارجو ان تفيدكم فى اعمالكم تقبلوا منى خالص التحيه والاحترام توليد سلسة من ايام الشهر بناء على شهر معين وسنه معينه.rar
    1 point
  17. تفضل 1. التوقيت: البرنامج يفحص وقت الكمبيوتر كل دقيقة ، 2. هذا هو كود الفحص: Private Sub Form_Timer() Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC 'Debug.Print Format(Now, "hh:mm") & vbCrLf & Format(rst!Class_Time_From, "hh:mm") & vbCrLf & Format(rst!Class_Time_To, "hh:mm") & vbCrLf 'compare the timer with the Class_Time If Format(Now, "hh:mm") >= Format(rst!Class_Time_From, "hh:mm") And Format(Now, "hh:mm") <= Format(rst!Class_Time_To, "hh:mm") Then 'Debug.Print "I am in" rst.FindFirst "[Class_Number]=" & rst!Class_Number Me.Bookmark = rst.Bookmark Exit Sub End If rst.MoveNext Next i Debug.Print "------" End Sub 3. اضفت 3 حقول في الجدول: Class_Number: لرقم كل حصة ، ومافي داعي لها ، لكنها لتسهيل الشغل (يعني بالعربي ، انا حطيتها ، وبعدين شفت مافي داعي لها ، بس كنت كتبت الكود ومستكاود اغيره ) ، Class_Time_From: البرنامج يفحص الوقت "من" و "الى" ، وحسب التجربة ، يفضل ان يكون الوقت بينهم على الاقل 3 دقائق ، Class_Time_To: جعفر 60.تجريبي.mdb.zip
    1 point
  18. هذا بالضبط اللي اعمله الان شكرا لك أخي أبوآلآء جعفر
    1 point
  19. اهلا بك ابو ندى الحقيقة انا دخلت لكي اطرح سؤالا بخصوص هذا الموضوع وطبعا قد يكون بعيد عن الجوهر والاجابة : لماذا نقول اول واول مكرر ؟ لماذا لايكونون كلاهما اول مكرر او كلهم اذا اكثر من اثنين ؟ لانه ارى ان اول افضل من اول مكرر فلماذا لا يكونون اول مكرر وثاني مكرر للكل حتى نكون عدلنا بينهم 100% ؟ فعلي اساس سيكون الاول؟؟ مثلا على اساس ترتيبه الابجدي !! وهنا ظلم للاخرين !! ايش ذنبي ان ابوي سماني يزيد !! علما باني اسالك ويوجد هذا النظم بدولتي ؟ فهل ياترى هناك سبب مقنع ؟؟ والسؤال لمن يملك الاجابة من الاخوة الاعضاء! واحيطك علما اخي ابو ندى ان هذا السؤال تمت الاجابة عليه من عدة منتديات شقيقة واعضاء مميزين واتوقع هنا كذلك ؟؟ طبعا ولا اخفيك انني غير مقتنع بطرق تلك الاجابات !! تحياتي
    1 point
  20. السلام عليكم لماذا لا يكون هناك جدول للحص يمكن التحكم به والكود ياخدذ بياناته من هذا الجدول فعند تغيير مواعيد الحصص لاى سبب لا يتم تغيير الكود
    1 point
  21. الاستاذ الفاضل ياسر هذا المطلوب تماما ماشاء الله تبارك الرحمن كما عودتنا بعطائك الاكثر من رائع جزاك الله خير الجزاء تقبل تحياتي واحترامي
    1 point
  22. والله يا استاذ جعفر حكاية ان التري فيو تقبل الاتجاه من اليمين لليسار اي الاتجاه عربي فحكاية جديدة من حكاياتك الجميلة القيمة ! فارفع يدي لهذا الموضوع ان يثبت وخاصة موضوع اتجاه التري فيو من اليمين لليسار ! كما ان لي وجهة نظر في الموضوع وهي : مسألة تعبئة التري فيو والتعامل معها فكل مبرمج وطريقته الخاصة بل خوارزميته وفكرته لتعبئتها والتعامل معها وتختلف من شخص لاخر ! وبذلك فاني احتاج ان افهم المطلوب ثم بنية القاعدة لكي انفذ الخوارزمية! وهذا ماجعلني بعيد عن الموضوع نوعا ما وهنا معتذرا لاخي محمد سلامة ! خالص تحياتي
    1 point
  23. السلام عليكم ورحمة الله وبركاته إخواني الأحبة في المنتدى الأغر إليكم معادلة بسيطة جداً تقوم بتوليد تواريخ عشوائية بين تاريخين .. بفرض أن تاريخ البداية في الخلية A2 وتاريخ النهاية في B2 فإن المعادلة تكون بهذا الشكل : =RANDBETWEEN(DATE(YEAR($A$2),MONTH($A$2),DAY($A$2)),DATE(YEAR($B$2),MONTH($B$2),DAY($B$2))) الدالة Randbetween تقوم بتوليد أرقام (شغالة داية ..بس الحكومة بتطاردها) .. وبما إن التواريخ عبارة عن أرقام تسلسلية في الأساس ، فإنه يمكن استخدام الدالة لتوليد تواريخ عشوائية بين تاريخين. الدالة لها عدد 2 بارامتر : البارامتر الأول عبارة عن البداية (Bottom) أو الحد الأدنى أو القاع (كل الترجمات مقبولة .. المهم المعنى يكون واضح) والبارامتر الثاني عبارة عن النهاية (Top) أو الحد الأعلى أو القمة (وهقول مرة تانية كل الترجمات مقبولة ، والحمد لله مقبولة اتجوزت وعندها عيال على وش جواز) المهم .. ما بين البداية والنهاية ، تقوم الدالة بعملية التوليد .. وإن شاء الله العملية تنجح (ونضحي بالأم والجنين عشان الداية تعيش) هنا تم استخدام الدالة Date والتي لها ثلاثة بارامترات الأول خاص بالسنة والثاني خاص بالشهر والثالث خاص باليوم .. أرجو أن تكون الدالة مفيدة لكم كان معاكم أخوكم أبو البراء (من بيت الحاجة أم عنايات الداية ...) دمتم على طاعة الله Random Dates Between Two Dates.rar
    1 point
  24. اخى الكريم الاستاذ علاء المنتدى زاخر بالاستاذه والخبراء ارجو منك ارفاق ملف وطرح موضوع مستقل وسيجيبك الكثيرون ان شاء الله تقبل تحياتى
    1 point
  25. اخي العزيز لا استطيع رد الجميل لك ولكن ادعوا من الله جل جلاله ان يوفقك لكل خير و يبعدك عن كل شر ويزيدك من علمه انه على كل شيئ قدير وتقبل فائق احترامي وتقدير
    1 point
  26. الأخ الفاضل الساهر ----------------- إليك الكود التالي في حدث ورقة العمل لعله يكون المطلوب Private Sub Worksheet_Change(ByVal Target As Range) Dim LR As Long LR = Cells(Rows.Count, 2).End(xlUp).Row If Target.Cells.CountLarge > 1 Then Exit Sub If Not Intersect(Target, Range("B6:C6")) Is Nothing Then With ActiveSheet .AutoFilterMode = False With .Range("B8:C" & LR) .AutoFilter Field:=1, Criteria1:=">=" & Range("B6").Value, Operator:=xlAnd .AutoFilter Field:=2, Criteria1:=">=" & Range("C6").Value, Operator:=xlAnd End With End With End If End Sub وأخيراً لا تنسى أن تحدد الإجابة كأفضل إجابة في حالة أن تم حل المسألة تقبل تحياتي :fff: AutoFilter Automatically YasserKhalil.rar
    1 point
  27. شكرا أخوي رمهان بس بعد ماعرفنا السبب ، في اعتقادي انه من الافضل ان نقارن الساعة قبل الانتقال الى السجل التالي ، وخصوصا اذا بالغلط تم تشغيل البرنامج في الوقت الغير صحيح ، فالطلبة بتستانس ، كما ان البرنامج لن يعطي نتائج صحيحة إلا اذ تم تشغيله في الوقت الصح ، بينما بطريقتي ، فالحصص ستكون مضبوطة يعني الاخ جمال لازم يعطينا توقيت بداية كل حصة. فيك الخير أخوي رمهان في عمل فكرتي ، إلا اذا عندك او عند الاخ جمال فكرة اخرى جعفر
    1 point
  28. وعليكم السلام اما انا فأضع تنسيق الحقل في الجدول ، وعلى اساسه يتنظم في النموذج والاستعلام والتقرير جعفر
    1 point
  29. الأخ الفاضل يرجى تغيير اسمك للغة العربية لسهولة التواصل جرب الملف التالي تم عمل قائمة منسدلة اختار منها رقم العملية سيتم نقلك إليها وعند الانتقال للورقة الأخرى يمكنك الرجوع إلى الورقة الرئيسية بمجرد النقر المزدوج داخل أي خلية في العمود G دا الكود الأول في حدث ورقة العمل الأولى Private Sub Worksheet_Change(ByVal Target As Range) Dim X As Long If Target.Cells.CountLarge > 1 Then Exit Sub On Error Resume Next If Not Intersect(Target, Range("H3")) Is Nothing Then Sheet2.Activate X = Application.WorksheetFunction.Match(Sheet1.Range("H3").Value, Sheet2.Columns("G:G"), 0) Sheet2.Cells(X, "G").Select End If End Sub ودا الكود الثاني في حدث ورقة العمل الثانية Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Cells.CountLarge > 1 Then Exit Sub If Not Intersect(Target, Columns("G:G")) Is Nothing Then Sheet1.Activate End If End Sub تقبل تحياتي ولا تنسى التوجيهات (حدد أفضل إجابة ليظهر الموضوع منتهي ومجاب) Hyperlink Formula YasserKhalil V2.rar
    1 point
  30. ماشاء الله تبارك الرحمن الله يجزاك خير يا استاذ ياسر اسلوب راقي ولذيذ في نفس الوقت بيض الله وجهك في الدارين وزادك علما ونورا وبركة
    1 point
  31. الله يبارك فيكما استاذ غسان العبيدي واستاذ ياسر خليل ويمدكما بالصحة والعافيه ويجعل الله أعمالكما في كفة حسناتكما آمين .. يارب العالمين
    1 point
  32. تفضل اخى الحبيب ضع هذا الكود فى الفورم Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Const GWL_STYLE = -16 Const WS_SYSMENU = &H80000 Private Sub UserForm_Initialize() Dim hWnd As Long, lStyle As Long If Val(Application.Version) >= 9 Then hWnd = FindWindow("ThunderDFrame", Me.Caption) Else hWnd = FindWindow("ThunderXFrame", Me.Caption) End If lStyle = GetWindowLong(hWnd, GWL_STYLE) SetWindowLong hWnd, GWL_STYLE, (lStyle And Not WS_SYSMENU) End Sub تقبل تحياتى
    1 point
  33. السلام عليكم استاذ عبد الله شكراً على الشرح الوافي بارك الله فيك
    1 point
  34. أخي الحبيب غسان جزيت خيراً على الموضوع وبارك الله فيك ولكنه غير مجاني فهو تجريبي فقط
    1 point
  35. طالما أن الموضوع انتهى يرجى الالتزام بالتوجيهات واختيار أفضل إجابة تقبل تحياتي
    1 point
  36. انسخ هذا الكود وصعه في حدث الصفحة: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rng As Range For Each rng In Target.Cells If rng.HasFormula Then ActiveSheet.Protect Exit Sub Else ActiveSheet.Unprotect End If Next rng End Sub
    1 point
  37. بصرحة الموضوع فيه شيء من اللبس ..دلوقتي المعادلة تؤدي الغرض أم لا ؟؟ هل جربت تغيير 9 إلى 109 ؟؟ طيب ايه هي النتائج المتوقعة من الفلترة .. إنت بتقوم بعملية التصفية إزاي ؟؟ وبالنسبة لحساب الديون مش مرتبط بالتواريخ اللي بتستخدمها في الفلترة ؟؟ كل دي تساؤلات اقترح عليك إنشاء ورقة أخرى بها مدخلات يمكن على أساسها جلب المطلوب ..كأن تنشيء ورقة عمل فيها خليتن للتواريخ (دا لو إنت عايز التواريخ أو الديون اللي بينهم) وممكن اسم العميل وعلى أساس البيانات المدخلة يتم حساب المطلوب لكل العملاء (إذا كان عدد العملاء بسيط)
    1 point
  38. عزيزي علي فتحي وبعد اذن الاستاذ جعفر على المداخلة محاولة لحفظ جزء من وقته ! وكذلك اخي راعي الغنم استأذنه ولعل له به فائدة ! اعمل استعلام ومصدره الجملة التالية واحفظه باسم qr1 : SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Max(Record_OLD.فرعي) AS Maxمنفرعي, Max((IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2) AS expr1 FROM Record_OLD GROUP BY Record_OLD.[رقم تعريفي], Record_OLD.الاسم; واستعلام ثاني ومصدره الجملة التالية واحفظه باسم qr2 : SELECT Record_OLD.[رقم تعريفي], Record_OLD.الاسم, Record_OLD.فرعي, Record_OLD.[رصيد 1], Record_OLD.[رصيد 2], (IIf([رصيد 1]<0,0,[رصيد 1])+IIf([رصيد 2]<0,0,[رصيد 2]))/2 AS المتوسط FROM Record_OLD; واستعلام ثالث واحفظه باسم qr3 حيث هو المطلوب : SELECT [qr2].[رقم تعريفي], [qr2].الاسم, [qr2].فرعي, [qr2].[رصيد 1], [qr2].[رصيد 2], qr2.[المتوسط] FROM qr2 INNER JOIN qr1 ON (qr2.[المتوسط]=qr1.expr1) AND ([qr2].فرعي=[qr1].Maxمنفرعي) AND ([qr2].الاسم=[qr1].الاسم) AND ([qr2].[رقم تعريفي]=[qr1].[رقم تعريفي]); هذا متمنيا ان يكون المطلوب !! تحياتي
    1 point
  39. الاخ الفاضل تركي إليك الكود مشروح بالتفصيل Sub YasserKhalil() Dim WS As Worksheet, SH As Worksheet Dim LR As Long, rCell As Range Dim I As Long Dim X As Long, Y As Long 'تعيين أوراق العمل Set WS = Sheets("السرب"): Set SH = Sheets("التمام") 'تحديد رقم آخر صف به بيانات في ورقة العمل المسماة السرب LR = WS.Cells(Rows.Count, "K").End(3).Row 'إلغاء بعض خصائص الإكسيل Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False 'مسح محتويات النطاق الذي ستظهر فيه النتائج المطلوبة SH.Range("B26:V1000").ClearContents 'بدء التعامل مع ورقة العمل المسماة السرب لفلترة البيانات بها With WS 'إلغاء عملية الفلترة إذا كانت موجودة مسبقاً .AutoFilterMode = False 'فلترة نطاق الصف الأول لقاعدة البيانات .Range("A1:K1").AutoFilter End With 'حلقة تكرارية للأعمدة في ورقة العمل المسماة التمام من أول العمود الثالث وحتى العمود الحادي والعشرين For I = 3 To 21 Step 2 'بدء التعامل مع ورقة العمل المسماة السرب مرة أخرى للفلترة ونسخ البيانات المفلترة With WS 'فلترة البيانات في الحقل أو العمود رقم 11 والشرط هو أحد محتويات الصف رقم 24 في ورقة العمل التمام .Range("A1:K1").AutoFilter Field:=11, Criteria1:=SH.Cells(24, I).Value 'نسخ البيانات الظاهرة فقط من العمود الخامس والسادس .Range("E1").Offset(1, 0).Resize(LR, 2).SpecialCells(xlCellTypeVisible).Copy 'لصق البيانات التي تم نسخها إلى الصف رقم 26 في ورقة العمل التمام في العمود المناسب SH.Cells(26, I).PasteSpecial xlPasteValues End With 'الانتقال للعمود التالي في ورقة العمل التمام Next I 'إلغاء عملية الفلترة في ورقة العمل السرب WS.Cells.AutoFilter 'إلغاء خاصية النسخ والقص Application.CutCopyMode = False 'إعادة تفعيل خصائص الإكسيل Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub تم التعامل مع طلبك الثاني ، متنسناش بدعوة تقبل تحياتي AutoFilter Multi Criteria YasserKhalil V2.rar
    1 point
  40. شوف الملف اللي نفع معاك وحدد عليه افضل اجابة علشان تظهر انها مجابة فضلاً وليس أمراً
    1 point
  41. أنا أقترح أن نقوم بعمل على عمل موقع معيّن أنت تختاره والتطبيق يكون من المشاركين على موقع يريده المشارك اسمح لى اوضح شئ لحضرتك لما يكون البداية واحده لو حضرتك عندك خلفية سابقه هتكون فاهم الكلام كويس ولو فى حد عاوز يتابع ومش عنده اى خلفيه هيتوه انا كان فى نيتى نبدأ بمشروع موحد للتعليم ثم مشروع موحد للتدريب ثم مشروع مختلف لكل على حده لاثقال الخبرات ايه رأى حضرتك
    1 point
  42. عفواً اخي الشيت مش فاهم منه شيئ ممكن توضح اكثر
    1 point
  43. هل هذا ماتقصد ابلغني بالنتيجة العمر.rar
    1 point
  44. السلام عليكم ورحمة الله أخي الكريم إيهاب، عليك استعمال الدالة CEILING بالوسيط 0.25 حسب معادلاتك: =CEILING(Value;0.25) أخوك بن علية
    1 point
  45. الملف محمي والحمد لله أنا ممكن أكسره بس مش هاعطي نفسي الفرصة إني أعمل كدا ..أنا مؤدب ومش بحب أكسر أعمال الغير ههههه (صقر المنتدى هيعلق أكيد)
    1 point
  46. أكتفى بأن الجزء الثانى تم حله فقد كان يمثل لى مشكلة كبيرة فالحمد لله رب العالمين اما بخصوص الجزء الاول سأتغلب عليه ان شاء الله بطريقة أخرى .. و احب ان اسجل شكرى العميق للسيد المهندس محمد طاهر مدير الموقع على ما بذله و قدمه من جهد و معاونة و هذه الروح التى اجدها فى شخصيات اخرى بهذا المنتدى الرائع ان استمرت على ما هى عليه فلا محال ان شاء الله نجاح المنتدى و استمراره داعيا الله استمرار المنتدى و تطويره و تسليمه للاجيال القادمة جيلا بعد جيل.. دمتم بخير و اعزكم الله .
    1 point
  47. الملف بين يديك اضغط اجبني في حال كان كذلك حسومات.rar
    1 point
  48. أخى الكريم / يوسف سلام الله عليكم أهلا بكم بين أخوة أوفياء لكم ألاتستحق اسمكم بالعربية لغة القرآن عود نفسك ان تضع مشاركتكم فى ملف منتظر لردكم لإجابة طلبكم
    1 point
  49. الأخ الحبيب علي الرويلي أكيد ممكن مش ممكن ليه تفضل جرب الكود Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("A1:A100,C1:C100,M1:M100")) Is Nothing Then Cancel = True Target.Font.Name = "Marlett" If Target = vbNullString Then Target = "a" Else Target = vbNullString End If End If End Sub
    1 point
  50. إخواني الأحباب محمد لطفى ابو القبطان abu_mosaab =============== جزاكم الله خيرا وشاكر جدا مروركم الطيب وكلماتكم الرقيقة ودعاؤكم الصالح ، لكم مثله وأكثر إن شاء الله
    1 point
×
×
  • اضف...

Important Information