نجوم المشاركات
Popular Content
Showing content with the highest reputation on 09/14/25 in مشاركات
-
مرحبا بكم و من بعد اذن جميع الاعضاء الغاليين جدا على قلبي و الذي تعلمت الكثير منهم ارجوا الاطلاع على الملف المرفق حيث يحتوي على موديول المطلوبة لارفاقها الى برنامجك ملاحظة: اكتب الكود التالي في حدث عند الفتح لكل نماذجك Private Sub Form_Open(Cancel As Integer) On Error Resume Next Me.KeyPreview = True Set frmResize = New FormResize Set frmResize.Form = Me DoCmd.Maximize End Sub ReSizeToAllReseluotion.accdb2 points
-
فعلاً ، ملاحظتك صحيحة ومهمة جداً ، وأنت محق في التنبيه عليها .. وعليه فإنه يمكن تعديل الدالة الأصلية لتصبح :- Function Date_Sex_Province(MyNumber As Variant, MyTest As Byte) Dim MyProvinces As Variant Dim r As Integer Dim yy As String Dim ty As String * 1 Dim D As String * 2, m As String * 2, y As String * 2 _ , x As String * 2, xx As String * 2 '============================================== ' يمكنك إضافة المحافظات الاخرى الغير موجودة ' او تعديل الموجود في حالات الخطأ MyProvinces = Array("01/القاهرة", "02/الإسكندرية", "03/بورسعيد", "04/السويس", "11/دمياط", "12/الدقهلية", "13/الشرقية" _ , "14/القليوبية", "15/كفر الشيخ", "16/الغربية", "17/المنوفية", "18/البحيرة", "31/البحر الأحمر", "32/الوادى الجديد" _ , "19/الإسماعيلية", "21/الجيزة", "22/بني سويف", "23/الفيوم", "24/المنيا", "25/أسيوط", "34/شمال سيناء", "35/جنوب سيناء" _ , "26/سوهاج", "27/قنا", "28/أسوان", "29/الأقصر", "33/مطروح", "88/خارج مصر") '============================================== Date_Sex_Province = "" On Error GoTo 1 If Len(Trim(MyNumber)) = 0 Then GoTo 1 End If If Not IsNumeric(MyNumber) Or Len(MyNumber) <> 14 Then Date_Sex_Province = "Error_MyNumber" GoTo 1 End If If MyTest = 1 Then D = Mid(MyNumber, 6, 2) m = Mid(MyNumber, 4, 2) y = Mid(MyNumber, 2, 2) ty = Left(MyNumber, 1) Select Case ty Case "2": yy = "19" & y Case "3": yy = "20" & y Case Else: yy = "" End Select If yy <> "" Then Date_Sex_Province = DateSerial(yy, m, D) ElseIf MyTest = 2 Then If Left(Right(MyNumber, 2), 1) Mod 2 = 1 Then _ yy = "ذكر" Else yy = "انثى" Date_Sex_Province = yy ElseIf MyTest = 3 Then x = Mid(MyNumber, 8, 2) For r = LBound(MyProvinces) To UBound(MyProvinces) xx = MyProvinces(r) If x = xx Then Date_Sex_Province = Right(MyProvinces(r), Len(MyProvinces(r)) - 3) Exit For End If Next End If 1: End Function أي أن ما تم تعديله هو الجزء :- Select Case ty Case "2": yy = y Case "3": yy = "20" & y ليصبح :- Select Case ty Case "2": yy = "19" & y Case "3": yy = "20" & y جزاك الله خيراً أخي @منتصر الانسي ، عادة لا أقوم بالتعديل على أي جزء لم يتطرق له صاحب الطلب ( معتقداً انه يلبي حاجته دون التوسع في الإحتمالات 😅 )1 point
-
ملاحظة بسيطة للأخ @أحمد العيسى في طريقة الأخ @Foksh إعتبر أن أي رقم قومي يبدأ بالرقم 2 فسيكون صاحبه من مواليد ماقبل عام 2000 مالم فسيكون من بعد عام 2000 وهذا لم يؤخذ بالإعتبار في الدالة Date_Sex_Province صراحة لا أعلم إذا ما كانت هذه الملاحظة ذات أهمية أم لا ولكن ذكرتها كتنبيه عن الاختلاف بين الحلين فإذا كان الإختلاف مهم فسيكون تأثيره كبير تحياتي1 point
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) أدعوكم لتجربة فكرة جديدة تم تنفيذها من خلال آكسيس ( هذا العملاق الصغير 😅 ) . بحيث أُجري تطويراً على فكرة تدعم المبرمجين والمطورين وتمكنهم من إنشاء نظام تفعيل عن بعد ( Online - سحابي ) ؛ بحيث لا يكون على المستخدم سوى إرسال رقم معرف جهازه فقط للمطور ، وما على المطور إلى تفعيل حسابه حسب المدة ( أنواع الإشتراكات ) التي يقدمها مطور البرنامج . وعليه فإنه في هذه المرحلة ، سأطلب ممن يرغب بالمشاركة ( فضلاً وكرماً منه لا أمراً ) أن يقوم بإرسال صورة لواجهة البرنامج الذي سأرفقه تالياً ، مع رقم معرف جهازه فقط . وسأقوم بدوري بتفعيل البرنامج المؤقت له بأشتراكات متنوعة لتجربة الفكرة . وكفكرة على المطلوب ، سأبدأ بنسخة من جهازي كتجربة لتتوضح لكم آلية المشاركة .. عند فتح القاعدة لأول مرة ، سيتم الإتصال بالسيرفر لتسجيل رقم جهازك ( أول مرة فقط ) . لذا شكراً لانتظارك وصبرك 😇 بعد الإتصال بالسيرفر ، سيتم اعتماد مدة تجريبية = 14 يوم وهذه الصورة المطلوبة منك عزيزي القارئ ثم من زر النسخ ، إنسخ رمز المعرف لجهازك ، وألصقه كاملاً كما في مثالي التالي 🤗 ID-0223222033111131825422051 التفعيل يعتمد على اتصال الجهاز بالإنترنت ، حالنا كحال الشركات التي تعتمد على سيرفر خاص بها بالتفعيل 😎 ، لذا لن تفيدك المحاولة بدون اتصال بالإنترنت . نسخة تعمل على النواة 64 :- Officena64.zip نسخة تعمل على النواة 32 :- Officena32.zip1 point
-
1 point
-
1 point
-
سؤال جميل .. بعد الإطلاع على الوحدة النمطية ، جرب هذا الاستعلام باستدعاء الدالة :- UPDATE tbl_student1 SET Birth = Date_Sex_Province([National_Nr], 1) WHERE Len([National_Nr]) = 14 AND IsDate(Date_Sex_Province([National_Nr], 1));1 point
-
شكراً أخى Foksh على سرعة الرد تم المطلوب ،وشكراً لك لكن للمعرفة فقط ، لو تم استخدام هذه الدالة من الوحدة النمطية المرفقة Date_Sex_Province([National_Nr], 1) كيف سيكون التصميم ؟1 point
-
وعليكم السلام ورحمة الله وبركاته .. دون الحاجة لإستخدام وحدة نمطية ، كانت لي تجربة سابقة من خلال استعلام تحديث مباشر ، تم تعديله ليتعامل مع مسميات الحقول والجدول لديك ، جربه :- UPDATE tbl_student1 SET Birth = DateSerial( IIf(Left([National_Nr],1)="2",1900,2000) + Val(Mid([National_Nr],2,2)), Val(Mid([National_Nr],4,2)), Val(Mid([National_Nr],6,2)) ) WHERE Len([National_Nr])=14 AND IsDate(DateSerial( IIf(Left([National_Nr],1)="2",1900,2000) + Val(Mid([National_Nr],2,2)), Val(Mid([National_Nr],4,2)), Val(Mid([National_Nr],6,2)) ));1 point
-
السلام عليكم أخي @منتصر الانسي بعد التجربة شغال بامتياز وبدون أخطاء هذا هو المطلوب بالتفصيل بارك الله فيك أخي وجزاك كل الخير_آمين1 point
-
تحية طيبة أخي @منتصر الانسي بعد التجربة وبدون مجاملة إبداع ما بعده ابداع . روعة ما بعدها روعة هذا ما اريد بالضبط وبالتفصيل وخاصة الأسلوب الثاني بالاعتماد على مربع القائمة لانك تشتغل وكل شيئ أمامك يعني العمل في نفس النموذج جزاك الله كل خير وجعلها في ميزان حسناتك وصدقة جارية لك وألبسك لباس الصحة والعافية و الخير _ أميـــــن1 point
-
1 point
-
لو عندك اكسيل حديث 365 مثلا يمكن استعمال الصيغة التالية =TEXTJOIN("",TRUE,القرار!AM24:AM39,القرار!AN24:AN39) و يمكن بالأكواد مع الاصدارات القديمة و ده يلزم وجود ملف عشان نتأكد من النتيجة1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته اهلا وسهلا بك في منتدى اوفيسنا اطلعتُ على الموضوع أكثر من ثلاث مرات، ثم تركته بسبب غموض الطلب وعدم وجود شرح مفصّل. وفي المرة الرابعة، جلستُ في جلسة فجرية على قهوة العميد (Foksh)، فتمت معرفة طلب أخينا الفاضل بإذن الله. في ورقة CLASS2، وأثناء وضع المعاينة، وجدتُ تقسيمًا للصفوف، حيث تظهر أسماء الصفوف في رأس الصفحة، وفي التذييل التوقيعات. كل صف يحتوي على 50 طالبًا، باستثناء الصف الأخير الذي يضم 51 طالبًا. ويُفترض أن يكون كل 50 طالبًا في ورقة واحدة، موزّعين على عمودين. وإن كان ما فهمته صحيحًا من طلبك، فإليك الملف وفيه محاولة للحل. أما إذا لم يكن هذا هو المطلوب، فإن الشرح الوافي يُسهّل على أعضاء المنتدى الإقبال على المساعدة أكثر. second2026 - Copy.xlsb نخياتي1 point
-
1 point
-
السلام عليكم اظافة صور المعاملات الطريقة اضغط زر معاملة جديدة ثم املأ البيانات ثم زر اظافة تاتى رسالة باظافة صورة او لا اختر نعم قم باختيار الصورة من الجهاز من اي مكان في جهازك وباي اسم يتم خفظ الصورة. لاظهار صورة المعاملة استخدم البحث يفضل عمل مجلدين للصور للصادر والاخر للوارد لتجميع الصور في مكان محدد والامر اختياري يعود اليك فالكود يتعامل مغ اي صورة قي الجهاز وبأي امتداد االمراسلات الإدارية3.xlsm1 point
-
السلام عليكم صباح الخير استاذ خيري الحل سيكون عن طريق فورم بمعنى عند البحث سواء بالرقم الاشاري او باي جزء من النص ، إذا وجد نتيجة واحدة سيتم تعبئتها مباشرة بدون ظهور الفورم إذا وجد أكثر من نتيجة، سيظهر الفورم بعرض تص الرسالة والرقم الاشاري يمكنك الاختيار بالنقر المزدوج أو بالاختيار من اللست ثم زر "تحديد" تحياني االمراسلات الإدارية2.xlsm1 point
-
الأستاذ عبدالله بشير فعلا هذا المطلوب بارك الله فيك وفي علمك وكذلك الاستاذحجازي بارك الله فيك ومتعك بالصحة والعافية شكرا اساتذتي الكرام وشكر خاص لهذا المنتدى المميز ولجميع القائمين عليه ولجميع الاعضاء1 point
-
السلام عليكم ورحمة الله وبركاته في ملفك تستخدم Shapes TextBox (وهي من النوع Form Control)، فهي لا تدعم حدث Change مباشرة قكرة الاستاذ hegazee بسيطة وعملية ربما تعديل بسيط على الفكرة وهو كتابة الرقم في خلية ويتم ربط الخلية بالتكست الاول في الملف اكتب الرقم في الخلية الصفراء تبادل معلوات ورقتين(2).xlSB عذرا ان لم تستطع طلبك كما تريد ولعل الاعضاء المخترمون لديهم افكار اخرى تخياتي1 point
-
وعليكم السلام ورحمة الله وبركاته اليك الملف واستبدله في مجلد جمع الفواتير الكود يتعامل مع اي عدد من الملفات امتدادها XLSM حسب ملفاتك المرفقه ويمكن تعديلها بالكود ان نغير الامنداد جرب الملف واعلمنى بالنتائج جمع.xlsm1 point
-
تفضل اخي رغم ان الشرط موجود اصلا على الملف بمجرد كتابة رقم الفاتورة تظهر رسالة تخبرك بوجودها مسبقا مع امكانية استدعاء البيانات او افراغ الفاتورة لادخال بيانات جديدة لم اعلم هل قمت بتجربتها ام لا على العموم تمت اظافته الا زر الترحيل . أما بالنسبة للطباعة ماهو المطلوب ؟ فاتورة_MH.xlsm1 point
-
جرب هذا المرفق يمكنك اختيار اسم الورقة وحالة السداد حسب ما يتم كتابته في عمود حالة السداد تمت التجربة بكتابة 1 أو 0 في عمود حالة السداد W فقط يلزمك تغيير أرقام الأعمدة المطلوب الحصول عليها بين القوسين {3,5,6,8} بالتوفيق جلب بيانات من الصفوف حسب حالة السداد.xlsx1 point
-
عند كتابة رقم الشيت يقتصر البحث في الشيت المكتوب فقط Updated Sub Test() Dim lr1, lr2 Dim i Application.ScreenUpdating = False Cells(5, 1).CurrentRegion.Offset(1).ClearContents For i = IIf(Range("m3") = "", 1, Range("m3")) To IIf(Range("m3") = "", Sheets.Count, Range("m3")) If Range("m3") <> "" Then i = Range("m3").Value + 1 If Sheets(i).Name <> "ÇáÈÍË" Then lr1 = Cells(Rows.Count, 1).End(xlUp).Row + 1 Sheets(Sheets(i).Name).Range("A3:L1800").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("A2:L3"), CopyToRange:=Range("A" & lr1 & ":L" & lr1) Cells(lr1, 1).Resize(, 12).Delete lr2 = Cells(Rows.Count, 1).End(xlUp).Row + 1 If lr1 <> lr2 Then Range(Range("a" & lr1), Range("a" & lr1).End(xlDown)).Offset(, 12) = Sheets(i).Name End If: End If Next Range("I10").Select Application.ScreenUpdating = True End Sub1 point