اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      17

    • Posts

      13578


  2. عبدالله بشير عبدالله
  3. Foksh

    Foksh

    أوفيسنا


    • نقاط

      6

    • Posts

      4389


  4. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      4

    • Posts

      8723


Popular Content

Showing content with the highest reputation since 12/20/25 in all areas

  1. وعليكم السلام ورحمة الله وبركاته جرب الكود في الملف المرفق 1الجرد.xlsm
    3 points
  2. لدي هذا التطبيق يقوم باختبارات ادارية متنوعة ارجو ان تبدو رأيكم فيه مع جزيل الشكر Administrative_Tests.rar
    3 points
  3. ممكن يكون طلبك هنا https://www.youtube.com/watch?v=M1DhpzkT8kA او جرب هذا الكود: Sub Observer_FullSystem() Dim ws As Worksheet, wsReport As Worksheet Dim NamesArr() As Variant Dim UsedRow As Object, UsedCol As Object, UsedAll As Object Dim lrNames As Long, lrRows As Long, lrCols As Long Dim r As Long, c As Long, i As Long Dim Available() As String Dim cnt As Long, MaxAllowed As Long, TotalCells As Long Dim TryCount As Long Dim MainCols As Long: MainCols = 2 ' عدد الأعمدة الأساسية Set ws = ActiveSheet Application.ScreenUpdating = False Randomize ' ===== Backup ===== ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Backup_" & Format(Now, "ddmmyy_hhmmss") ws.Activate ' ===== قراءة الأسماء ===== lrNames = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row NamesArr = ws.Range("B3:B" & lrNames).Value ' ===== حدود الجدول ===== lrRows = ws.Cells(ws.Rows.Count, 3).End(xlUp).Row lrCols = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column ws.Range(ws.Cells(3, 4), ws.Cells(lrRows, lrCols)).ClearContents ' ===== الحد الأقصى ===== TotalCells = (lrRows - 2) * (lrCols - 3) MaxAllowed = Application.WorksheetFunction.RoundUp(TotalCells / (lrNames - 2), 0) Set UsedAll = CreateObject("Scripting.Dictionary") ' ===== التوزيع ===== For r = 3 To lrRows Set UsedRow = CreateObject("Scripting.Dictionary") For c = 4 To lrCols TryCount = 0 RetryCell: TryCount = TryCount + 1 If TryCount > 300 Then GoTo NextCell Set UsedCol = CreateObject("Scripting.Dictionary") For i = 3 To r - 1 If ws.Cells(i, c).Value <> "" Then UsedCol(ws.Cells(i, c).Value) = 1 Next i cnt = 0 ReDim Available(1 To UBound(NamesArr, 1)) For i = 1 To UBound(NamesArr, 1) If Not UsedRow.exists(NamesArr(i, 1)) _ And Not UsedCol.exists(NamesArr(i, 1)) Then If Not UsedAll.exists(NamesArr(i, 1)) _ Or UsedAll(NamesArr(i, 1)) < MaxAllowed Then cnt = cnt + 1 Available(cnt) = NamesArr(i, 1) End If End If Next i If cnt > 0 Then ws.Cells(r, c).Value = Available(Int(Rnd * cnt) + 1) UsedRow(ws.Cells(r, c).Value) = 1 UsedAll(ws.Cells(r, c).Value) = UsedAll(ws.Cells(r, c).Value) + 1 Else GoTo RetryCell End If NextCell: Next c Next r ' ===== تقرير ===== On Error Resume Next Set wsReport = Sheets("تقرير") On Error GoTo 0 If wsReport Is Nothing Then Set wsReport = Sheets.Add wsReport.Name = "تقرير" Else wsReport.Cells.Clear End If wsReport.Range("A1:D1") = Array("الاسم", "الإجمالي", "أساسي", "احتياطي") For i = 3 To lrNames wsReport.Cells(i - 2, 1) = ws.Cells(i, 2) wsReport.Cells(i - 2, 2) = Application.CountIf(ws.Range(ws.Cells(3, 4), ws.Cells(lrRows, lrCols)), ws.Cells(i, 2)) wsReport.Cells(i - 2, 3) = Application.CountIf(ws.Range(ws.Cells(3, 4), ws.Cells(lrRows, 3 + MainCols)), ws.Cells(i, 2)) wsReport.Cells(i - 2, 4) = wsReport.Cells(i - 2, 2) - wsReport.Cells(i - 2, 3) Next i wsReport.Columns.AutoFit Application.ScreenUpdating = True MsgBox "تم التوزيع + إنشاء نسخة احتياطية + تقرير كامل ?", vbInformation End Sub
    3 points
  4. السلام عليكم ورحمة الله وبركاته اقدم لكم شرح مبسط لطريقة بحث احترافيه في شيت اكسل رابط الفيديو لتحميل ملف العمل https://www.mediafire.com/file/4t7skm26bdj2mhk/salloum.xlsx/file
    2 points
  5. اعلم هذا وواضح بالملف وعملت في قطاع التعليم التقني والتوجيه الفني 39 سنة واعلم جيدا كيف عمل اللجان لم يكن الامر يتطلب كل هذا على كل حال عودة للملف اليك الملف بالتعديل الاخير مراقبة_ تحويل اللجان الى أسماء.xlsm
    2 points
  6. اليك ما طلبت بالتنسيق الشرطي aaaa2.xlsm
    2 points
  7. غير صحيح انت لم توفق في التعديل افتح النموذج على التصميم وادخل على مصدر بيانات النموذج من النقاط الثلاث الذي هو الاستعلام الفرعي ثم عدل كما في الصورة
    1 point
  8. من الاشياء التي تم تصحيحها : كان موجود كود يعيد اي تاريخ من هذا الشهر الى اليوم الأول وهذا يعتبر عمل غير موافق للحقيقة .. اذا الادخال في يوم 15 يجب ان يسجل في 15 لذا جعلت الكود يقبل التسديد في اي يوم من الشهر فالعمدة هو الشهر الحالي .. لا فرق بين اوله وآخره
    1 point
  9. حسنا دعني ارى ما يمكنني عمله
    1 point
  10. تفضل تعديل بسيط على الشرط عدم الاقتطاع 5.rar
    1 point
  11. في مرفقي الاخير .. في شرط المتغير تم تصحيح الشرط فعمل معي
    1 point
  12. تفضل استاذ @Emad.85 المرفق بطلبك ووافني بالرد . Emad.85.rar
    1 point
  13. انا لم أقم بتعديل أي شيئ كل ما قمت به هو تصحيح الكود الخاص بك كالتالي السطر الأول كان هكذا Set rstE = db.OpenRecordset("SELECT * FROM Employee WHERE Nr <= 5", dbOpenDynaset) وكان يحتوي الأخطاء التالية - كنت تتعامل مع الحقل Nr في الجدول Employee على أنه حقل رقمي ولكنه حقل نصي - أعتقد أنك تظن أن هذا الحقل يحتفظ برقم الوظيفة إلا أنك مخطئ فهو يحتفظ بإسم الوظيفة والصورة التالية ستوضح لك ما أقصده مما سبق يتضح لنا أنه لن يتم تحقيق معيار التصفية Nr <= 5 لذلك قمت بتعديله إلى السطر التالي Set rstE = db.OpenRecordset("SELECT *,TblDetaché.Nr as NrE FROM Employee INNER JOIN TblDetaché ON Employee.detach = TblDetaché.detach WHERE (((TblDetaché.Nr) <= 5));", dbOpenDynaset) حيث سيتم ربط الجدول Employee مع الجدول TblDetaché وسنأخذ قيمة Nr من الجدول TblDetaché لأنه رقمي وقمنا بتسمية الحقل هذا بإسم NrE أما التعديلات التالية كلها تخص الحقل EmpID فأنت تتعامل معه كحقل نصي وهو حقل رقمي لذلك قمت بإزالة علامة الإقتباس المفردة التي قيل وبعد EmpID فمثلا 'تم تعديل هذه العبارة EmployeeID='" & EmpID & "' 'بهذه العبارة EmployeeID = " & EmpID & " اخر تعديل ونظرا لأنه وكما سبق توضيحه بخصوص الحقل Nr تم تعديل السطر التالي 'إستبدلنا هذا السطر rst!Nr = rstE!Nr 'بهذا السطر rst!Nr = rstE!NrE حتى يتم أخذ قيمة Nr من الحقل الذي قمنا بتسميته بالإسم NrE في جملة Sql أعلاه هذه هي كل التعديلات التي قمت بها فهل هذا سيؤثر على طريقة احتساب القروض؟
    1 point
  14. اخي الكريم ذكرت انظر في الكود في فورم FrmTransfer1 بينما البرنامج يفتح على FrmTransfer والكود cmd_Pay_installments موجود في النموذجين لا اخفيك تهت .. اذا العمل على FrmTransfer1 لماذا FrmTransfer موجود ؟ اذا يوجد ازرار غير مهمة احذفها .. هذا مجرد مثال
    1 point
  15. الخبير الفاضل اعتذر عن ازعاجك بكثرة طلباتى ولكنى اقوم بطلب بسيط واحاول الاستفادة منة وتطبيقة على اكثر من حقل لو نجح الامر تمام لولم ينجح اقوم باكمال طلبى ولكن مافعلته فى انشاء الجدول ابداع غير مسبوق بارك الله لك وفيك شكرا خالص الشكر
    1 point
  16. السلام عليكم اخي طاهر انا ربما اختلف قليلا عن بقية اخوتي الخبراء والاعضاء هنا الغالب هنا يختصرون عليك وعليهم الوقت ويعطونك حل للمشكلة التي تواجهك مباشرة .. ولكن في بعض الاحيان المشكلة اذا لم تعالج من الاصل .. فإنها تولد مشكلات واخطاء تتبعها حينما استعرض مثالك لا يمكنني فهم آلية العمل : خذ ما دار في بالي : اولا لماذا الاقتطاع وتخصيصه شهري 3 و 7 فقط ... يجب ان نفهم لماذا؟ يجب ان يكون الجواب مقنع علما انه ومن خلال الجدول يوجد اقتطاعات في اشهر اخرى لا يخفى عليك . معظم .. بل كل .. عمليات القروض التي تخص العاملين والموظفين في كل الأنظمة يتم اقتطاعها من المرتب شهريا .. الى ان يتم تسديد كامل القرض مثلا اذا الموظف مطالب بتسديد 3000 دينار سنويا .. ستكون الحصة الشهرية 250 دينار تخصم من مرتبه آليا حتى لو هناك قروض اخرى يضاف استحقاقها الشهري في عمود يخصها .. والنتيجة ان الموظف يستلم مرتب شهري صافي بعد اقتطاع المستحق هنا العملية تكون انسيابية ولسنا بحاجة الى اكواد فقط استعلام واحد يقوم بالمهمة . ثانيا لاحظت ان نوع الوظيفة او رقمها يختلف من موظف الى آخر .. الى هنا صحيح ولكن حالاات الموظف تختلف فمسمى الوظيفة يجب ان يكون ثابتا ولا يتغير الا في حال الترقية .. وغالبا مسمى الوظيفة يرتبط فقط في المرتب الاساسي والعلاوات وانت جعلت الوظيفة حالاات يجب ان تكون الحالة في حقل منفصل لا دخل للوظيفة بها مثلا مدير توفي يبقى المسمى مدير ولكن الحالة متوفى وهنا تطبق المزايا والضوابط على الحالة وليس على مسمى الوظيفة ظهر لي هذا الخلل عندما غيرت الرقم في Nr من 1 الى 15 تحولت جميع السجلات الى 15 وهذا ايضا خطأ لأن الواجب ان ما سبق تسديده وقت حياته لا يتغير
    1 point
  17. السلام عليكم انجاز عظيم بارك الله بجهودك استاذي الفاضل فعلا اداة رهيبة استعملت كل الخيارات فيها ولتهت بنتائج مبهرة بامتياز جعله الله في ميزان حسناتك استاذي الكريم
    1 point
  18. شكرا كبير يا استاتنا الفاضل يارب اجعل هذا العمل في ميزان حسنات استاذ الفاضل kkhalifa1960
    1 point
  19. تفضل استاذ @محمد حسن2 محاولتي اليك الشرح والمرفق . بعد اختيار المرفقات واختيار اسم الفولدر ومسار الحفظ والضغط على الزر نسخ بيعمل لك فولدران بالمسار الذي اختارته واسمه . فولدر به كل الملفات المختارة والثاني نفس الفولدر مضغوط وبنهاية البروجرسبار بيفتح جوجل درايف ز والتكملة بالفيديو التالي . BackUpTest.rar
    1 point
  20. جزيت خيرا مؤكد لن نعدم فائدة .. فجزاك الله خيرا سوف نتصفحه و نقتبس اجمل ما فيه .. وندعوا لك ولن نستغني عن تفاعلك ومشاركتك معنا
    1 point
  21. البرنامج ممتاز ... ولكن عند تشغيلة يظهر بهذه الصورة زاحفا نحو اليسار الى الاسفل يبدو بسبب هذا الكود عند الفتح Private Sub Form_Current() Me.Form.InsideHeight = 9000 Me.Form.InsideWidth = 17000 CenterFormOnScreen "frm-UserLogon" End Sub
    1 point
  22. تجسيداً لفكرة التعامل مع التقرير .. هذه الفكرة المبدأية لشكل التقرير عند فتحه بعد حفظ التصميم ، وتصديره الى ملف PDF .. مسارات ومواضع العناصر في الفيديو تم تجربتها مسبقاً . لذلك هي معروفة لي .
    1 point
  23. معلمى الفاضل Foksh خالص الشكر ابدعت انتهت كل مشاكل الاحتمال الاول
    1 point
  24. السلام عليكم عند ادخال رقم التسجيل والضغط على زر البحث يظهر معلومات الموظف وفي حالة ادخال رقم التسجيل خطاء تظهر رسالة تنبيه بعدم وجود هذا الرقم ولدي زر اخر اسمه اضافة وهذا عند ادخال رقم التسجيل وتظهر المعلومات اريد عند الظغط على زر اضافة يتم الحاق المعلومات في النموذج الفرعي البرنامج2025.rar
    1 point
  25. مـــــبدع مهندســـنا الطيب , جزاك الله خير الجزاء
    1 point
  26. تم عمل التعديلات على النحو التالي : - اضافة جدول وسيط يحمل درجة الاجابة - تغيير كود الحاق الاجابة واستبداله باستعلام الحاق - اضافة بعض الضوابط مثل : الاغلاق بعد الحفظ منع اعادة الاختبار ( آلية مرنة يمكن للمسؤول تمكينه من اعادة الاختبار حيث اضفت حقل نعم/لا يمكن التحكم من خلاله) بعض اللمسات على نموذج الاجابة ....................................................... لترتيب هذا العمل .. مهم جدا العمل على آخر مثال تم التعديل عليه من قبل الاخوة الكرام وحبذا يراعى في الامثلة الترتيب الرقمي .. فالمرفق الجديد سميته Exam1 فيا ليت يكون التالي Exam2 .. وهكذا ... انتظر منكم الملاحظات او اي تعديلات قبل الانتقال للخطوة والمطلب التالي Exam1.rar
    1 point
  27. شكرا استاذ عمر على المشاركة الجميلة تحقق من الخطوة الأولى 1- ضبط الوقت .. وغلق النموذج عند انتهائه 2- حفظ الاجابة في جدول tbl_Answers 3- عمل جدول اعدادات عامة ملاحظة : بعد التجربة اتضح لي وجوب ايجاد جدول وسيط لرصد الاجابة المبدئية في الوضع الحالي سيتم حفظ الفقرة الأخيرة اي اجابة سؤال واحد فقط انتظروني سأعمل على ذلك
    1 point
  28. هل الملف كان يعمل ثم فجأة توقف؟ ارسل الملف للاصلاح .
    1 point
  29. احسنت وانت الصادق .... بل كل من يمر بالموضوع يشارك معنا .... لن اتأخر اذا سمح لي وقتي ابدااااااااااا لأننا جميعا مساهماتنا في المنتدى من اجل كسب الثواب .... جزاك الله خيرا وكتب اجرك ...
    1 point
  30. اهلا اخي العزيز صاحب الموضوع مشغول .. ولا اخفيك الفكرة راقت لي .. وعملت اضافات .. منها دالة لاختيار رقم عشوائي لذا دعنا نعمل عليه انت وأنا كبرنامج اختبار وقياس قابل لأكثر من رغبة سوف افتح موضوعا جديدا واطرح آخر تعديل ثم انتظر اضافاتك ولمساتك وهكذا حتى يخرج بثوب مناسب ما رأيك ؟
    1 point
  31. يعني استمر في التعديل على هذه النسخة وبالطريقة التي ذكرتها
    1 point
  32. وعليكم السلام ورحمة الله وبركاته أخي الكريم .. مشاركة مع مهندسنا الغالي .. فكرتي تتلخص بالعمل على حدث On Paint لقسم التفاصيل . قم بإضافة مربع نص غير منضم ، ولا تحدد له لون خلفية أو لون حدود وسميه مثلاً FokshTXT ، و طبق ما يلي :- Private Sub تفصيل_Paint() If IsNull(Me.External_lab) Or Me.External_lab = "" Then Me.FokshTxT.BackStyle = 1 Me.FokshTxT.BackColor = RGB(255, 230, 250) Else Me.FokshTxT.BackStyle = 0 End If End Sub حيث وللتوضيح ، اللون [RGB(255, 230, 250)] هو لون الخلفية المستخدم في النموذج . فقط تحكمنا بتلوين خلفية مربع النص ، كما في الصورة التالية :- وملفك بعد التعديل :- JO_Lab.zip
    1 point
  33. دائما لك نكهة خاصة مميزة 😋👌🌹 إبداع وإمتاع
    1 point
  34. رائع جدا هذه صورة لعملية الاعداد الجميل والشكل النهائي اتمنى اخي ان يتاح الاخراج عبر تقرير .. لما له من المزايا العديدة المفيدة
    1 point
  35. وعليكم السلام ورحمة الله وبركاته جرب هذا تسلسل ملئ بيانات الفورم1.xlsm
    1 point
  36. هذه الصور تبين النتيجة تصميم ثم عرض .. العرض يتم لجميع الطلاب
    1 point
  37. ممتاز جدا جدا وانا قمت بتجربة كود جلب الخطوط العربية فقط من النظام وسوف ادمج بينه وبين طريقتى لتمكين المطور او المستخدم من تحديد خطوط معينه ان اراد ذلك فى المستقبل وهذا الكود المنقح Option Compare Database Option Explicit '=== تعريف LOGFONT === Private Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName(0 To 31) As Byte End Type Private Const ARABIC_CHARSET As Byte = 178 Private Const DEFAULT_CHARSET As Byte = 1 '=== الـ API Declarations === #If VBA7 Then Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As LongPtr, ByVal hdc As LongPtr) As Long Private Declare PtrSafe Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" _ (ByVal hdc As LongPtr, lpLogFont As LOGFONT, ByVal lpEnumFontProc As LongPtr, _ ByVal lParam As LongPtr, ByVal dwFlags As Long) As Long #Else Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long Private Declare Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" _ (ByVal hdc As Long, lpLogFont As LOGFONT, ByVal lpEnumFontProc As Long, _ ByVal lParam As Long, ByVal dwFlags As Long) As Long #End If Private m_FontList As Collection '=== الدالة الرئيسية === Public Sub LoadArabicFonts(cbo As Control, Optional IncludeNonArabic As Boolean = False) On Error GoTo ErrorHandler ' التحقق من صحة الـ Control If cbo Is Nothing Then Err.Raise 91, , "Control غير صالح" ' تهيئة القائمة بأمان SafeClearCombo cbo cbo.RowSourceType = "Value List" ' تحميل الخطوط Set m_FontList = New Collection If LoadSystemArabicFonts(IncludeNonArabic) Then PopulateComboBox cbo Else SafeAddItem cbo, "خطوط غير متوفرة" End If Exit Sub ErrorHandler: SafeClearCombo cbo SafeAddItem cbo, "خطأ في تحميل الخطوط" Debug.Print "LoadArabicFonts Error: " & Err.Number & " - " & Err.Description End Sub '=== وظائف مساعدة آمنة === Private Sub SafeClearCombo(cbo As Control) On Error Resume Next cbo.Clear On Error GoTo 0 End Sub Private Sub SafeAddItem(cbo As Control, itemText As String) On Error Resume Next cbo.AddItem itemText On Error GoTo 0 End Sub '=== تحميل الخطوط من النظام === Private Function LoadSystemArabicFonts(IncludeNonArabic As Boolean) As Boolean Dim hdc As LongPtr Dim lf As LOGFONT ' إعداد LOGFONT للخطوط العربية lf.lfCharSet = IIf(IncludeNonArabic, DEFAULT_CHARSET, ARABIC_CHARSET) ' الحصول على Device Context #If VBA7 Then hdc = GetDC(0) #Else hdc = GetDC(0&) #End If If hdc = 0 Then Exit Function On Error GoTo Cleanup EnumFontFamiliesEx hdc, lf, AddressOf EnumFontProc, 0, 0 Cleanup: LoadSystemArabicFonts = (m_FontList.Count > 0) #If VBA7 Then ReleaseDC 0, hdc #Else ReleaseDC 0&, hdc #End If On Error GoTo 0 End Function '=== Callback للخطوط === #If VBA7 Then Private Function EnumFontProc(lpelf As LOGFONT, ByVal lpntm As LongPtr, _ ByVal FontType As Long, ByVal lParam As LongPtr) As Long #Else Private Function EnumFontProc(lpelf As LOGFONT, ByVal lpntm As Long, _ ByVal FontType As Long, ByVal lParam As Long) As Long #End If On Error Resume Next Dim fName As String fName = StrConv(lpelf.lfFaceName, vbUnicode) fName = Left$(fName, InStr(fName, ChrW(0)) - 1) fName = Trim$(fName) ' فلتر TrueType فقط + تجنب التكرار If Len(fName) > 2 And (FontType And 4) = 4 And Not FontExists(fName) Then m_FontList.Add fName, fName ' Debug.Print "Font added: " & fName ' للاختبار End If EnumFontProc = 1 End Function '=== فحص وجود الخط === Private Function FontExists(fontName As String) As Boolean Dim f As Variant On Error Resume Next Set f = m_FontList(fontName) FontExists = (Err.Number = 0) On Error GoTo 0 End Function '=== ملء القائمة مع الترتيب === Private Sub PopulateComboBox(cbo As Control) Dim arr() As String Dim i As Long If m_FontList.Count = 0 Then Exit Sub ' تحويل Collection إلى Array ReDim arr(1 To m_FontList.Count) For i = 1 To m_FontList.Count arr(i) = m_FontList(i) Next i ' ترتيب سريع QuickSort arr, LBound(arr), UBound(arr) ' إضافة للـ ComboBox For i = LBound(arr) To UBound(arr) cbo.AddItem arr(i) Next i End Sub '=== Sort === Private Sub QuickSort(arr() As String, ByVal low As Long, ByVal high As Long) Dim pivot As String, i As Long, j As Long, temp As String If low < high Then pivot = arr((low + high) \ 2) i = low: j = high Do While StrComp(arr(i), pivot, vbTextCompare) < 0: i = i + 1: Wend While StrComp(arr(j), pivot, vbTextCompare) > 0: j = j - 1: Wend If i <= j Then temp = arr(i): arr(i) = arr(j): arr(j) = temp i = i + 1: j = j - 1 End If Loop While i <= j If low < j Then QuickSort arr, low, j If i < high Then QuickSort arr, i, high End If End Sub '=== وظيفة اختبار === Public Function GetArabicFontsCount() As Long Set m_FontList = New Collection LoadSystemArabicFonts False GetArabicFontsCount = m_FontList.Count End Function
    1 point
  38. ما شاء الله تبارك الرحمن 🙂 جميل جدا تنوع الأفكار في نفس المجال 😊👌 وأنا أيضا لدي برنامج خاص بتصميم الشهادات وتنسيقها وتوليد الشهادات لمجموعة كبيرة من الطلاب أو المتدربين أو المستلمين بشكل عام ، وكذلك يقوم بإرسال الشهادات بالبريد الإلكتروني لكل المستهدفين ( كل متدرب أو طالب يستلم شهادته) ، وأيضا يقوم بحفظ جميع الشهادات على شكل Pdf دفعة واحدة .. 🙂 مع إمكانيات تنسيق النص ( الخطوط والألوان ) بشكل حر ، وإضافة التواقيع ، وتغيير إطارات البرنامج .. إلخ تصميم وتنسيق النصوص بكل أريحية إضافة المتدربين دفعة واحدة بعدد لا محدود معاينة بشكل مباشر اواجهة البرنامج مع خيارات البحث وعرض تقارير وإحصائيات لتحميل البرنامج : تنصيب برنامج صانع الشهادات الإصدار الثالث 3.0.zip
    1 point
  39. الله .. الله .. الله .. ما هذا !! لا يهمني العمل الآن .. يكفيني النص المكتوب .. اخجلتني يارجل .. لحظة تعال ... معرف جديد + خبرة فائقة .. وخطاب يمثل المنتدى .. اني لأشم ريح يوسف
    1 point
  40. وعليكم السلام ورحمة الله وبركاته .. أعجبتني الفكرة كثيراً بان يكون هناك مرونة وليونة في نص محتوى الشهادة .. فخطر ببالي فكرة أود مشاركتكم ثمارها في الصورة الموضحة تالياً قبل ارفاق الملف .
    1 point
  41. وعليكم السلام ورحمة الله وبركاته .. بدايةً اسم الحقل = "id_pers" وليس "رقم التسجيل" صحيح ؟؟ اعتقد انك تستطيع استعمال الدالة DMAX كقيمة افتراضية لمربع النص داخل النموذج . كمثال ، اجعل القيمة الإفتراضية لمربع النص id_pers تساوي الجملة التالية وجرب بعد أن تقوم بحذف السجل الموجود في جدولك :- =Nz(DMax("id_pers","tbl_personne1"),19020999)+1 ملفك بعد التعديل :- IsertImages.zip
    1 point
  42. اليك الملف بعد اضافة المعادلة تحياتي كشف لمن غاب اكثر من 3.xlsm
    1 point
  43. السلام عليكم تم التعديل على ملف أخي سليم بإضافة كل الشهور في شيت واحد مع إضافة كود لإظهار الشهر المعني فقط وهذا لأجل الإحصائيات السنوية... يمكن إضافة التعديلات الأخرى الجديدة على هذا الملف... بالنسبة لأيام العطل الأخرى (غير عطلة نهاية الأسبوع) يكفي أن لا نسجل فيها الغيابات... والله أعلم أرجو أن تسهل هذه التعديلات العمل على الملف... أخوكم بن علية كشف hben.xlsm
    1 point
  44. ممكن ذلك شاهد هذا الملف (العملية تتم عند كبسة اليمين وليس دوبل كليك في نطاق محدد ) كله قابل للتغيير حسب المطلوب Right_Click.xlsm
    1 point
  45. ملف جيد و الى الامام لكن ارجو تقبل بعض الملاحظات: 1- لا ضرورة لتحميل ملف كبير بهذا الشكل يكفي ملف صغير مختصر 20 الى 30 صف (نموذج ) والذي يريد اضافة معلومات يكون الامر متاحاً له 2- لا ضرورى لادراج التواريخ يدوياً في كل صفحة من صفحات الشهور (يكفي عمل نسخات (12 نسخة) عن الورقة Salim من هذا الملف واختيار الشهر والسنة و بوم العطلة في كل نسخة) ثم تسمية هذه الصفحات باسماء الشهور اذا اردت ليقوم اكسل بادراج التواريخ ألياً (كما في الصفحة Salim) مع حساب الشهر 28و29و30 أو 31 و تاوين يوم العطلة كما تحدده في الخلية A3 3 -هذه الورقة صالحة لكل الاعوام الدراسية (يكفي تغيير السنة فقط من الخلية A1) في كل صفحة من صفحات الشهور الملف (كنموذج) مرفق كشف Salim.xlsm
    1 point
  46. نسخة من الملف بتنسبق 2003 protect non empty data with Pass word.xls
    1 point
  47. السلام عليكم هذا فديو يشرح التصفية المتقدمة التى تتميز بإمكانية نقل البيانات المفلترة إلى شيت آخر كما تمكننا من مميزات أخرى ========== الفديو ========== وقتا ممتعا الملف المستخدم بالشرح بالمرفقات الجزء الثانى التصفية المتقدمة شرح.zip
    1 point
  48. اولاً الف مليون شكر للاستاذ مصطفى على حله الرائع ثانيا اخي محمود المرفق فيه المطلوب (الحل بالتصفية المتقدمة) ابواحمد محمود علاء.rar
    1 point
×
×
  • اضف...

Important Information