كل الانشطه
- الساعة الأخيرة
-
يا هلا والله يا مراحب تسلم الافكار النيرة ممتاز جدا ورائع
-
الموضوع ممتع و شيق تفضل هذه الفكرة الخطوة الأولى: تجهيز النموذج (Form) أنشئ نموذجاً جديداً (Form) أضف 9 أزرار أمر (Command Buttons) وقم بتسميتها برمجياً كالتالي: btn1, btn2, btn3 (للصف الأول) btn4, btn5, btn6 (للصف الثاني) btn7, btn8, btn9 (للصف الثالث) أضف زر عاشر باسم btnReset لإعادة اللعبة. أضف "تسمية" (Label) باسم lblStatus لعرض حالة اللعبة (دور من؟ أو من الفائز؟). الكود البرمجي Option Compare Database Option Explicit ' متغيرات عامة للتحكم في حالة اللعبة Dim GameOver As Boolean ' عند تحميل النموذج Private Sub Form_Load() ResetGame End Sub ' زر إعادة تشغيل اللعبة Private Sub btnReset_Click() ResetGame End Sub ' الإجراء الرئيسي عند ضغط اللاعب على أي مربع Private Sub PlayMove(btn As CommandButton) ' التأكد أن المربع فارغ وأن اللعبة لم تنتهِ If btn.Caption = "" And Not GameOver Then btn.Caption = "X" btn.ForeColor = RGB(0, 0, 150) ' لون أزرق لعلامة اللاعب If CheckWinner("X") Then lblStatus.Caption = "مبروك! لقد فزت." lblStatus.ForeColor = RGB(0, 150, 0) ' لون أخضر عند الفوز Beep ' صوت تنبيه GameOver = True Else ' إذا لم يفز اللاعب، يأتي دور النظام CPUMove End If End If End Sub ' منطق ذكاء النظام (الكمبيوتر) Private Sub CPUMove() If GameOver Then Exit Sub Dim moveIndex As Integer ' 1. محاولة الفوز (الهجوم) moveIndex = FindBestMove("O") ' 2. سد الطريق على اللاعب (الدفاع) If moveIndex = 0 Then moveIndex = FindBestMove("X") ' 3. محاولة السيطرة على المركز (الخانة رقم 5) If moveIndex = 0 And Me.btn5.Caption = "" Then moveIndex = 5 ' 4. اختيار أول خانة متاحة إذا فشلت الاستراتيجيات أعلاه If moveIndex = 0 Then Dim i As Integer For i = 1 To 9 If Me.Controls("btn" & i).Caption = "" Then moveIndex = i Exit For End If Next i End If ' تنفيذ حركة النظام If moveIndex > 0 Then With Me.Controls("btn" & moveIndex) .Caption = "O" .ForeColor = RGB(200, 0, 0) ' لون أحمر لعلامة النظام End With ' التحقق هل فاز النظام؟ If CheckWinner("O") Then lblStatus.Caption = "للأسف! فاز النظام." lblStatus.ForeColor = vbRed ' لون أحمر للنص عند الخسارة Beep GameOver = True End If End If ' التحقق من حالة التعادل (إذا امتلأت الخانات ولم يفز أحد) If Not GameOver Then Dim IsDraw As Boolean: IsDraw = True Dim j As Integer For j = 1 To 9 If Me.Controls("btn" & j).Caption = "" Then IsDraw = False: Exit For Next j If IsDraw Then lblStatus.Caption = "تعادل!" lblStatus.ForeColor = vbBlack Beep GameOver = True End If End If End Sub ' دالة ذكية للبحث عن أفضل حركة (فوز أو دفاع) Private Function FindBestMove(PlayerSign As String) As Integer Dim WinPatterns As Variant Dim i As Integer, count As Integer, emptyPos As Integer Dim pos() As String ' جميع احتمالات الفوز الممكنة WinPatterns = Array("1,2,3", "4,5,6", "7,8,9", "1,4,7", "2,5,8", "3,6,9", "1,5,9", "3,5,7") For i = 0 To 7 pos = Split(WinPatterns(i), ",") count = 0 emptyPos = 0 Dim j As Integer For j = 0 To 2 If Me.Controls("btn" & pos(j)).Caption = PlayerSign Then count = count + 1 ElseIf Me.Controls("btn" & pos(j)).Caption = "" Then emptyPos = CInt(pos(j)) End If Next j ' إذا وجد خانتين لنفس اللاعب والثالثة فارغة، يعيد رقم الخانة الفارغة If count = 2 And emptyPos <> 0 Then FindBestMove = emptyPos Exit Function End If Next i FindBestMove = 0 End Function ' دالة التحقق من الفوز Private Function CheckWinner(Player As String) As Boolean Dim WinPatterns As Variant Dim i As Integer Dim pos() As String WinPatterns = Array("1,2,3", "4,5,6", "7,8,9", "1,4,7", "2,5,8", "3,6,9", "1,5,9", "3,5,7") For i = 0 To 7 pos = Split(WinPatterns(i), ",") If Me.Controls("btn" & pos(0)).Caption = Player And _ Me.Controls("btn" & pos(1)).Caption = Player And _ Me.Controls("btn" & pos(2)).Caption = Player Then CheckWinner = True Exit Function End If Next i CheckWinner = False End Function ' إعادة ضبط اللعبة للحالة الأصلية Private Sub ResetGame() Dim i As Integer For i = 1 To 9 Me.Controls("btn" & i).Caption = "" Me.Controls("btn" & i).ForeColor = vbBlack Next i GameOver = False lblStatus.Caption = "دورك الآن (X)" lblStatus.ForeColor = vbBlack End Sub ' ربط أحداث النقر للأزرار (Events) Private Sub btn1_Click(): PlayMove btn1: End Sub Private Sub btn2_Click(): PlayMove btn2: End Sub Private Sub btn3_Click(): PlayMove btn3: End Sub Private Sub btn4_Click(): PlayMove btn4: End Sub Private Sub btn5_Click(): PlayMove btn5: End Sub Private Sub btn6_Click(): PlayMove btn6: End Sub Private Sub btn7_Click(): PlayMove btn7: End Sub Private Sub btn8_Click(): PlayMove btn8: End Sub Private Sub btn9_Click(): PlayMove btn9: End Sub مرفق مثال على ذلك اكس او.accdb
- Today
-
إخواني الإعزاء أعضاء المنتدي الكرام بعد سلام الله عليكم ورحمة الله وبركاته في الملف المرفق به جدولين الجدول الأول به بيانات المعلمين الجدول الثاني به تخصصات المعلمين ونموذج واستعلام وتقرير محتاج عند الضغط علي النموذج واختيار التخصص من القائمة المنسدلة والضغط علي زر طباعة علي حسب الاختيار يتم طباعة التقرير علي حسب الاختيار وهل يمكن اختيار أكثر من تخصص وطباعتهم في تقرير واحد saad.accdb
-
كيفية إرسال تقارير المرتب عبر الواتساب
mohsen mohamed replied to mohsen mohamed's topic in منتدى الاكسيل Excel
السادة الأساتذة الكرام السلام عليكم ورحمة الله وبركاته حاولت تعلم كود إرسال عبر الواتس ولكن لا أعرف أين المشكلة مرتب الإداريين.xlsm -
طيب وانت تقوم بعمل التطوير اجعل منافسك هو الحاسوب لان انت اللى بتعمل كل شئ انا عاوزها لعبة تفاعلية حقيقية بينك وبين الحاسوب
-
السلام عليكم ورحمة الله وبركاته استاذ حجازي صيغة التاريخ عند كتابته يكون الشهر الاول واليوم الثاني وعندي على الجهاز فورماتن التاريخ يوم/شهر/سنة وادخلت على المعادلة قبل التاريخ cdate ولم يتغر شئ ممكن الحل
-
استاذى الفاضل اللى اتغير حجم الابقونة ولكن الخط صغيركما هو
-
Foksh started following لعبة X , O
-
وعليكم السلااااااام ورحمة الله وبركاته .. وبما أنني من عشاق تصميم الألعاب في آكسيس .. وقد كان لي تجربة مع هذه اللعبة الجميلة ، وقد قمت بتضمينها ضمن برنامج إدارة النوادي الرياضية في هذا الموضوع هنا .. وكانت تجربتي بالشكل القديم التالي :- ولكن وبما أننا في 2026 ، فسأقوم بتطويرها بشكل أجمل ضمن هوايتي المتواضعة .😁.
- Yesterday
-
السلام عليكم لقد قمت بتعديل ملف الاكسيل أريد جلب الورقة بجدول جديد باسم الورقة (Feuil1) و جلب الورقة بجدول جديد باسم الورقة (ZZ1) و جلب الورقة بجدول جديد باسم الورقة (Feuil1006 ) أريد عند تصدير واستراد يظهر بملف الاكسيل الذي هو بجوار البرنامج إسمه Horaire اريد عند الضغط على إسم الموظف يتم تحميل ملف لاكسل الذي بجوار البرنامج. Excel_Bilal_Yamen.zip
-
توفى امس عملاق من عملاقة الاكسيل عماد الحسامى
mohsen mohamed replied to saad abed's topic in منتدى الاكسيل Excel
إنا لله وإنا إليه راجعون غفر الله له وأسكنه الفردوس الأعلى وألهم أهله جميل الصبر -
السلام عليكم ورحمة الله وبركاته ممكن نشوف افكار وتطبيق رواد المنتدى المحترمين لعمل فكرة اللعبة X , O ولكن ولكن ولكن المطلوب ان تكون اللعبة بينك وبين الكمبيوتر يعنى انت تعمل حركة وهو يعمل حركة فى انتظار ابداعاتكم وافكاركم النيرة
-
اساتذتي الكرام/ السلام عليكم ورحمة الله وبركاته هل هناك حل لإرسال تقرير المرتب لكل موظف عبر الواتساب مرتب الإداريين.xlsm سجلت فيه رقم جوال واحد للتجربة ولسيادتكم جزيل الشكر
-
طيب ايه رايك نقوم بحذف : Width/Height من الكود نهائيا انا اضفت فى المرفق التالى فكرتين احدهما مفعلة والاخرى ليست مفعلة يمكنك ان تقوم بالتبديل بينهم واختر ما تراه مناسبا استاذ ملاحظة تم دعم بعض الخواص باضافتها لم تكن موجودة ده كود الحل الاول ' قائمة الخصائص المسموح نسخها لكل نوع كنترول '============================= ' الحل الاول Private Function GetAllowedProps(ctrlTypeName As String) As Variant Static propsTextBox As Variant Static propsLabel As Variant Static propsCombo As Variant Static propsCheckBox As Variant Static propsOptionButton As Variant Static propsToggleButton As Variant Static propsListBox As Variant Static propsCommandButton As Variant Static propsSubform As Variant Static propsEmpty As Variant ' Initialize If IsEmpty(propsTextBox) Then propsTextBox = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "TextAlign", "BorderColor", "BorderStyle", _ "SpecialEffect") propsLabel = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "TextAlign", "BorderColor", "BorderStyle", _ "SpecialEffect") propsCombo = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "BorderColor", "BorderStyle", "SpecialEffect") ' CheckBox - خصائص محدودة لتجنب التشويه propsCheckBox = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "SpecialEffect", "BorderStyle") ' OptionButton - منفصل لإمكانية التخصيص المستقبلي propsOptionButton = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "SpecialEffect", "BorderStyle") ' ToggleButton - دعم خصائص إضافية propsToggleButton = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "SpecialEffect", "BorderStyle", _ "QuickStyle", "Shape", "BackShade", "BackTint") propsListBox = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "BorderColor", "BorderStyle", "SpecialEffect") ' CommandButton - WITHOUT Width/Height لتجنب تشويه propsCommandButton = Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "QuickStyle", "Shape", "BackShade", _ "BackTint", "Gradient", "Glow", "Shadow", "SoftEdges", _ "UseTheme", "BackThemeColorIndex", "HoverColor", _ "HoverForeColor", "PressedColor", "PressedForeColor", _ "BorderColor", "BorderStyle", "SpecialEffect") ' Subform propsSubform = Array("BackColor", "BorderColor", "BorderStyle", "SpecialEffect") propsEmpty = Array() End If ' Return المناسب حسب النوع Select Case ctrlTypeName Case "TextBox": GetAllowedProps = propsTextBox Case "Label": GetAllowedProps = propsLabel Case "ComboBox": GetAllowedProps = propsCombo Case "CheckBox": GetAllowedProps = propsCheckBox Case "OptionButton": GetAllowedProps = propsOptionButton Case "ToggleButton": GetAllowedProps = propsToggleButton Case "ListBox": GetAllowedProps = propsListBox Case "CommandButton": GetAllowedProps = propsCommandButton Case "Subform": GetAllowedProps = propsSubform Case Else: GetAllowedProps = propsEmpty End Select End Function ويمكن تعطيله واستخدام كود الحل الثانى Private Function GetAllowedProps(ctrlTypeName As String, Optional excludeList As String = "") As Variant Static propsCache As Object Static isInitialized As Boolean ' Initialize Dictionary If Not isInitialized Then Set propsCache = CreateObject("Scripting.Dictionary") ' TextBox propsCache.Add "TextBox", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "TextAlign", "BorderColor", "BorderStyle", _ "SpecialEffect", "LeftMargin", "TopMargin") ' Label propsCache.Add "Label", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "TextAlign", "BorderColor", "BorderStyle", _ "SpecialEffect") ' ComboBox propsCache.Add "ComboBox", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "BorderColor", "BorderStyle", _ "SpecialEffect", "ColumnWidths", "ListWidth") ' CheckBox propsCache.Add "CheckBox", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "SpecialEffect", "BorderStyle") ' OptionButton propsCache.Add "OptionButton", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "SpecialEffect", "BorderStyle") ' ToggleButton propsCache.Add "ToggleButton", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "SpecialEffect", "BorderStyle", _ "QuickStyle", "Shape", "BackShade", "BackTint", _ "Gradient") ' ListBox propsCache.Add "ListBox", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "BorderColor", "BorderStyle", _ "SpecialEffect", "ColumnWidths") ' CommandButton (WITHOUT Width/Height) propsCache.Add "CommandButton", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "QuickStyle", "Shape", "BackShade", _ "BackTint", "Gradient", "Glow", "Shadow", _ "SoftEdges", "UseTheme", "BackThemeColorIndex", _ "HoverColor", "HoverForeColor", "PressedColor", _ "PressedForeColor", "BorderColor", "BorderStyle", _ "SpecialEffect") ' Subform propsCache.Add "Subform", Array("BackColor", "BorderColor", "BorderStyle", "SpecialEffect") ' TabControl propsCache.Add "TabControl", Array("BackColor", "ForeColor", "FontName", "FontSize", _ "FontWeight", "MultiRow", "TabFixedHeight", _ "TabFixedWidth") isInitialized = True End If ' Get Base Properties Dim baseProps As Variant If propsCache.Exists(ctrlTypeName) Then baseProps = propsCache(ctrlTypeName) Else GetAllowedProps = Array() Exit Function End If If Len(excludeList) > 0 Then baseProps = FilterProperties(baseProps, excludeList) End If GetAllowedProps = baseProps End Function ' دالة مساعدة: حذف خصائص محددة من القائمة Private Function FilterProperties(props As Variant, excludeList As String) As Variant Dim result() As Variant, i As Long, j As Long Dim excludeArr As Variant excludeArr = Split(excludeList, ",") ReDim result(0 To UBound(props)) j = 0 For i = 0 To UBound(props) If Not IsInArray(CStr(props(i)), excludeArr) Then result(j) = props(i) j = j + 1 End If Next If j > 0 Then ReDim Preserve result(0 To j - 1) FilterProperties = result Else FilterProperties = Array() End If End Function Private Function IsInArray(val As String, arr As Variant) As Boolean Dim i As Long For i = LBound(arr) To UBound(arr) If Trim(UCase(arr(i))) = UCase(val) Then IsInArray = True Exit Function End If Next IsInArray = False End Function '============================= Mont_FormsTemplatePart03.zip
- 13 replies
-
- themes
- formtemplate
-
(و2 أكثر)
موسوم بكلمه :
-
معلومة رائعة توفر جهد كثير بارك الله فيك وجعله بميزان حسناتك
-
بارك الله فيك وجعله بميزان حسناتك
-
و عليكم السلام ورحمة الله و بركاته بالطبع يمكن عمل ذلك بالأكواد و يفضل ارفاق الملف للاطلاع
-
وضحت لك هذا الأمر وذلك عن طريق زيادة قيمة خاصية DrawWidth بمعنى تعديل الرقم 1 في السطر التالي Rpt.DrawWidth = 1 وهذا يسقوم بزيادة عرض الحدود أعذرني ولكني لم أفهم قصدك فلو أمكن توضح طلبك بمثال عملي
- 4 replies
-
- تقارير اكسس
- تقارير مالية
-
(و2 أكثر)
موسوم بكلمه :
- الاسبوع الماضي
-
alaaisoft joined the community
-
zeyadxzoz joined the community
-
للعلم ، انا استعمل جميع انواع الذكاء الاصطناعي المجاني ، وخصوصا الذي بواصل معي و لا يتوقف عن الرد بسبب نفاذ حصتي منه اليوم بعد تجاربي ، استعمل ChatGPT 5.2 ، لأنه اذا صدر خطأ في السؤال او بدأ الذكاء الاصطناعي بتوجيهي بطريقة غير التي اريدها ، ببساطة لا اعطيه توجيه جديد ، بل ارجع الى آخر توجيه صحيح ، واستمر من هناك. Copilot لا يملك هذه الخاصية 🙂 هذه الخاصية موجودة في معظم شركات الذكاء الاصطناعي.
-
شكرا على ردك سالتك عن تغيير حجم الحدود وليس عن تغيير لونها؟ عموما جربت تغيير اللون واصبح ظاهرا بشكل افضل الان هل يمكن تعديل الكود ليعمل على نظام تجميع التقرير؟ جربته على اضافة تجميع ولم يعمل
- 4 replies
-
- تقارير اكسس
- تقارير مالية
-
(و2 أكثر)
موسوم بكلمه :
-
gargame_1 joined the community
-
ممكن تكتب يدوي عادي امسح التاريخ المكتوب يدوي و أكتب التاريخ الجديد
-
منتصر الانسي started following حجم خط عناصر اكسيس
-
جرب تطبيق الخطوات التالية 1 - أنقر بالزر الأيمن على جزء التنقل 2- من القائمة إختار View By أو عرض بـ (غير متأكد من الترجمة) 3- من القائمة الفرعية حدد Icon أو أيقونة بهذا ستحصل على أكبر حجم لعناصر جزء التنقل
-
mo hussien joined the community
-
hanafymahmood started following تنسيقات متكررة فى ملفات متعددة
-
السلام عليكم أساتذتنا الأجلاء لدى مجموعة ملفات كثيرة كل ملف أعيد تنسيقه بمجموعة من الخطوات قد تصل الى عشر خطوات وأريد تنفيذها فى جميع الملفات الأخرى فهل من حل
-
السلام عليكم استاذ حجازي انا متشكر جدا على اهتمام حضرتك ومساعدتي في حل المشكلة من حيث المطلوب فهو ده اللي كنت محتاجه بالضبط ولكن كان لي طلب انا مش محتاج حضرتك ايقونة كتابة التاريخ انا محتاج الخانة تكون فارغة وانا اكتب التاريخ يدوي والف شكر مرة اخرى على مساعدة حضرتك