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

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      151

    • Posts

      1,227


  2. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      143

    • Posts

      11,590


  3. kkhalifa1960

    kkhalifa1960

    الخبراء


    • نقاط

      92

    • Posts

      1,375


  4. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      59

    • Posts

      1,015


Popular Content

Showing content with the highest reputation since 19 فبر, 2024 in all areas

  1. علم البرمجة 80% ممارسة .. و 20% دراسة نظرية الدراسة النظرية المكثفة مع ممارسة قليلة .. نهايتها النسيان الأشياء التي ترسخ بالذاكرة هي الاشياء التي تكتشفها او تصل اليها بالمحاولة والخطأ منتدى اكسس اوفيسنا هو اكبر صرح تعليمي على مستوى الوطن العربي .. وبالمجان اذا اتبع الشخص طرق التعلم الصحيحة من الصفر .. سوف يصل الى الاحتراف في مدة وجيزة الطريقة .. هي بناء مشروع يكون هو فعلا بحاجته .. او بتكليف من شخص آخر يحتاجه لأن التعلم من اجل التعلم فقط تضعف الهمة فيه غالبا وهذا شيء مجرب .. بسبب فقد الحافز
    8 points
  2. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) لكثرة الطلبات على برنامج إدارة الحضور والإنصراف للموظفين ، وددت مشاركتكم النسخة الأولى الغير مفتوحة المصدر حالياً ، لحين الإنتهاء من التعديلات التي ستتم على البرنامج . دون الإطالة في المقدمة ؛ سأشرح لكم بعض ميزات البرنامج :- أولاً سيتم إضافة الإعدادات الضرورية للبرنامج وهي :- تصنيف الموظفين ( ولكل تصنيف سيتم تحديد عدد أيام الإجازات السنوية له ) . تصنيف الإجازات ( طارئة ، مرضية ، ..... إلخ ) . تحديد وقت بداية ونهاية ساعات العمل الرسمي ، و تحديد مدة السماح للتأخير ( المرونة في العمل ) ، تحديد عدد مرات التأخير ليتم احتساب يوم إجازة في اليوم الأخير من المدة . ثانياً ومن الطبيعي وجود موظفين في قاعدة البيانات ، سيكون قسم لإدخال بيانات الموظفين بشكل بسيط من المعلومات ( ولكم حرية التوسع حسب رغبتكم وحاجتكم كمستخدمين ) ، وطبعاً لكل موظف رقم وظيفي خاص به اعتمد على سلسلة مكونة من التاريخ والوقت الحالي بدون مسافات بهذا التنسيق YYYYMMDDhhmmss ، بحيث لا يكون هناك تكرار نهائي لأي رقم موظف . ثالثاً لوحة تسجيل الحضور والإنصراف عن طريق الرقم الوظيفي ، وتدعم القراءة من الباركود الموجود على باجة الموظف ( طبعاً لاحقاً سيتم إضافة طباعة باجة أو بطاقة للموظف ) ، وفي هذه اللوحة لن تحتاج تحديد الحالة ( حضور أو إنصراف ) فقط أدخل رقم الموظف وسيتم احتساب وقت الحضور وتسجيل مدة التأخير بالدقيقة في الجدول ، وكذلك الأمر للإنصراف . رابعاً لوحة تسجيل الإجازات ، وطبعاً بناءً على المعطيات التي تم إدخالها في نماذج البيانات الأساسية في الإعدادات - سيكون الأمر بسيطاً جداً وتم اعتماد رقم الموظف في المرحلة الأولى من البرنامج وسيتم اعتماد اسم الموظف أيضاً لجلب البيانات لاحقاً . بخطوات بسيطة بعد ادخال رقم الموظف نحدد تاريخ بداية الإجازة ، ثم عدد الأيام المطلوبة كإجازة ، ثم سيتم تلقائياً احتساب يوم نهاية الإجازة ، وطبعاً نوع الإجازة المطلوبة ستقوم باختياره من قائمة نوع الإجازة . خامساً لوحة التقارير ، بحيث سيكون لدينا في المشروع تقرير واحد فقط لكنه سيخدم جميع الطرق التي تريدها كمستخدم ( تقرير للموظفين جميعاً مع وبدون تحديد فترة ، تقرير لموظف واحد مع وبدون تحديد فترة ) . *وطبعاً ما زالت قيد التطوير بشكل خاص ملاحظة:- تم حفظ البرنامج بصيغة Accde كونه قيد التطوير والتعديل حالياً
    6 points
  3. ما فيه .. هذا حمود وهذي عباته لما طلع vb6 من بيتهم القديم وطلع يجدد بيته .. اكسس حل محله وجلس في البيت القديم
    6 points
  4. السلام عليكم ورحمة الله وبركاته أسعد الله أوقاتكم بكل خير وسرور .. وتقبل الله منا ومنكم صالحات الأعمال .. 😊🤲🏻 يطيب لي أن أقدم لكم هذا الهدية المتواضعة بمناسبة هذا الشهر الفضيل 🙂🌼🎁 استبدل الرسائل العادية في أكسس برسائل ذات تصاميم قمة في الإبداع وبمميزات إضافية . من مميزات هذه الرسائل: - تصميم جميل وألوان جذابة. - خاصية ذاتية الاختفاء. - عنوان رئيسي + عنوان فرعي - تحكم بالنص ( عربي - إنجليزي ) ( توسيط - محاذاة على اليمين أو اليسار) - سهلة الاستخدام . الشرح على اليوتيوب : التحميل 🙂 Moosak MsgBox.accdb ولا تنسوني من صالح دعواتكم 😊🌷🌼🌹
    5 points
  5. ادخال معلومات بالاختيار من ليست بوكس للجدول واصدار تقرير متعدد الاختيارات . المرفق متاح ومفتوح المصدر لكل مايريد استخدامه أو استخدا مابه ... DDChoseMulty Items to Report.rar
    5 points
  6. للتوضيح : لاسخراج جميع الاوراق في ملف PDF واحد يتضمن جميع الطلاب ربما يتعين عليك مثلا نسخ جميع الاوراق المطبوعة لورقة اخرى اسفل بعضها البعض لتتمكن من حفظها بعد دالك . وهدا يتطلب اظافة ورقة جديدة للمصنف مع انشاء الكود الخاص بدالك . اما في حالة الرغبة في حفظها مستقلة اليك الكود التالي سيقوم بحفظ كل ورقة لوحدها في مجلد باسم شهادات الطلاب بعد تسمية كل ملف باسم الطالب الخاص به Private Sub CommandButton1_Click() Dim i As Integer, fPath As String, F As String Dim WS As Worksheet: Set WS = Sheet31 'Sheets("Sheet3 (2)") ' اسم ورقة العمل Application.ScreenUpdating = False For i = [AA12] To [AC12] If i <= [AA1] Then [AF2] = 2 * (i - 2) + 3 F = [B8] ' اسم الملف On Error Resume Next With ActiveWorkbook ' قم بتعديل اسم المجلد بما يناسبك fPath = .Path & Application.PathSeparator & "شهادات الطلاب" & Application.PathSeparator If Len(Dir(fPath, vbDirectory)) = 0 Then End If MkDir fPath WS.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fPath & "\" & F & ".pdf", OpenAfterPublish:=False 'طباعة 'WS.PrintOut End With Next i Application.ScreenUpdating = True End Sub 666 PDF.xlsm
    5 points
  7. مشاركة مع اخي الفاضل @kkhalifa1960 التعديل::::: عدم اختيار خمس مواد واذا تم الاختيار يقوم البرنامج بمسح اخر اختيار حفظ الاختيارات في الجدول عند فتح النموذج مرة اخرى تجد نفس الاختيارات موجود ( للتعديل - الالغاء - الاضافة ) في نفس الليست بوكس تعديل التقرير حسب اسم الطالب انظر الصورة ..... tah.accdb
    5 points
  8. تفضل <><><><><><><><> قاعدة بيانات مدرسية.accdb
    4 points
  9. تفضل احذف الكود الخاص بك الموجود في حدث الشيت ثم ضع هذا الكود Private Sub Worksheet_Change(ByVal Target As Range) Dim X As Range Application.EnableEvents = False For Each X In Target If X.Column = 2 Then If X.Value = "" Then X.Resize(, 6).ClearContents Else X.Offset(0, 2) = Date X.Offset(0, 2).NumberFormat = "dddd yyyy/mm/dd" End If End If Next Application.EnableEvents = True Search_SUM End Sub
    4 points
  10. وعليكم السلام ورحمة الله وبركاته اليك الحل ان شاء الله ولكن ياريت في المرات القادمة ارفاق النمطلوب في ملف الإكسل تلوين خلية.xlsx
    4 points
  11. ربما هدا ما تقصده تجربة فرز الرواتب.xlsx
    4 points
  12. وعليكم السلام ورحمة الله وبركاته تفضل اخى تقسيم الاسم على اربعة اعمدة لاول اربعة اسماء تقسيم الاسم الرباعى الى اربعة اسماء منفصلة.xlsm
    4 points
  13. بارك الله فيك ..... انظر الصورة لهذا الموظف قبل التحديث وبعد التحديث ( هل هذا هو المطلوب ) ؟؟؟؟؟؟ جرب المرفق واعلمنا بالنتيجة ..... الغياب والتاخير.accdb
    4 points
  14. ومشاركة مع أستاذنا ابو خليل فصل العدد الكسري.accdb
    4 points
  15. وعليكم السلام ورحمة الله وبركاته تفضل حل متواضع بالمعادلات ويمكن التنفيذ للحل بالأكواد يمكن البحث داخل المنتدى عن استدعاء وترحيل البيانات نموذج أوفيسنا 002.xlsm
    4 points
  16. السلام عليكم عيدكم مبارك بالمرفق كود يقوم نيابة عنك بإكمال البيان الذي تكتبه في عمود معين بورقة عمل استناداً لمجال معين بورقة عمل آخري منفصلة. كيف ؟؟؟؟ الشرح : 1- قم بتدوين البيانات التي تريدها في المجال المسمى AutoCompleteText ضمن العمود A بالورقة المسماة Source data يجب أن تكون البيانات المدخلة غير مكررة . 2- الان انتقل إلى العمود A بالورقة المسماة Test sheet وقم بكتابة الأحرف الأولى المميزة والفريدة لأحد البيانات التي دونتها بالمجال السابق ثم اضغط Enter ،، سيكمل الكود البيان الذي كتبته سلفاً ،،، على سبيل المثال : اكتب حرف Z ثم اضغط Enter ستكون النتيجة في الخلية ZIAD ALI - لأنه النص الوحيد الذي يبدأ بالحرف Z ،،، واذكر بأنه ممكن أن تقوم بزيادة عدد الأعمدة التي ترغب أن يتم فيها عملية استرجاع البيانات بالصفحة المسماة Test sheet عن طريقة التعديل في الكود أرجو أن يكون المرفق مفيد للجميع ،،، ولكم كل الود والتحية. الاكمال التلقائي للبيانات.rar
    4 points
  17. السلام عليكم ورحمة الله وبركاته اخى الفاضل @kkfhvvv تفضل هذا الكود يقوم بتصفية البيانات للثلاث الاعمدة جربه لعله يكون المطلوب Sub RemoveDuplicatesRange() Dim lastRow As Long lastRow = Sheets("البيانات").Cells(Sheets("البيانات").Rows.Count, "O").End(xlUp).Row Sheets("البيانات").Range("O1:Q" & lastRow).Copy Sheets("ارقام").Range("A1").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False lastRow2 = Sheets("ارقام").Cells(Sheets("ارقام").Rows.Count, "A").End(xlUp).Row Sheets("ارقام").Range("$A$2:$C$" & lastRow2).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo End Sub تقبل تحياتى
    4 points
  18. السلام عليكم ورحمة الله وبركاته الحمد لله والشكر لله الأخوة الكرام / حفظكم الله أقدم لكم أكواد للتعامل مع الحافظة (Clipboard) للنواتين 32x و 64x 1- كود لنسخ ولصق النصوص 2- كود لنسخ ولصق الملفات بجميع أنوعها ------------------------------------------------------------------------------------------------------------------ 1- كود لنسخ ولصق النصوص قم بعمل MODULE جديد ثم أنسخ الكود إليه * المصدر {https://www.devhut.net/vba-save-string-to-clipboard-get-string-from-clipboard/} وستجدون في هذا الموقع العديد من الاكواد الاحترافية. Option Explicit #If VBA7 Then Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long Private Declare PtrSafe Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As LongPtr Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long Private Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalSize Lib "kernel32" (ByVal hMem As LongPtr) As Long Private Declare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As Long Private Declare PtrSafe Function lstrcpy Lib "kernel32" Alias "lstrcpyW" (ByVal lpString1 As LongPtr, ByVal lpString2 As LongPtr) As LongPtr #Else Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long 'bug in Microsoft File! #End If Const CF_UNICODETEXT As Long = 13& #If VBA7 Then Public Sub SetClipboard(sUniText As String) Dim iStrPtr As LongPtr Dim iLen As LongPtr Dim iLock As LongPtr Dim iUnlock As LongPtr Const GMEM_MOVEABLE As Long = &H2 Const GMEM_ZEROINIT As Long = &H40 'Const CF_UNICODETEXT As Long = &HD iLen = LenB(sUniText) + 2& iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen) iLock = GlobalLock(iStrPtr) lstrcpy iLock, StrPtr(sUniText) GlobalUnlock iStrPtr OpenClipboard 0& EmptyClipboard SetClipboardData CF_UNICODETEXT, iStrPtr CloseClipboard End Sub Public Function GetClipboard() As String Dim iStrPtr As LongPtr Dim iLen As Long Dim iLock As LongPtr Dim sUniText As String 'Const CF_UNICODETEXT As Long = 13& OpenClipboard 0& If IsClipboardFormatAvailable(CF_UNICODETEXT) Then iStrPtr = GetClipboardData(CF_UNICODETEXT) If iStrPtr Then iLock = GlobalLock(iStrPtr) iLen = GlobalSize(iStrPtr) sUniText = String$(iLen \ 2& - 1&, vbNullChar) lstrcpy StrPtr(sUniText), iLock GlobalUnlock iStrPtr End If GetClipboard = sUniText End If CloseClipboard End Function #Else Public Sub SetClipboard(sUniText As String) Dim iStrPtr As Long Dim iLen As Long Dim iLock As Long Const GMEM_MOVEABLE As Long = &H2 Const GMEM_ZEROINIT As Long = &H40 'Const CF_UNICODETEXT As Long = &HD iLen = LenB(sUniText) + 2& iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen) iLock = GlobalLock(iStrPtr) lstrcpy iLock, StrPtr(sUniText) GlobalUnlock iStrPtr OpenClipboard 0& EmptyClipboard SetClipboardData CF_UNICODETEXT, iStrPtr CloseClipboard End Sub Public Function GetClipboard() As String Dim iStrPtr As Long Dim iLen As Long Dim iLock As Long Dim sUniText As String 'Const CF_UNICODETEXT As Long = 13& OpenClipboard 0& If IsClipboardFormatAvailable(CF_UNICODETEXT) Then iStrPtr = GetClipboardData(CF_UNICODETEXT) If iStrPtr Then iLock = GlobalLock(iStrPtr) iLen = GlobalSize(iStrPtr) sUniText = String$(iLen \ 2& - 1&, vbNullChar) lstrcpy StrPtr(sUniText), iLock GlobalUnlock iStrPtr End If GetClipboard = sUniText End If CloseClipboard End Function #End If مثال للاستخدام حتي تنسخ نص الي الحافظة Call SetClipboard(Me.txt_FirstName) حتي تستخدم النص الموجود بالحافظة Me.txt_FirstName = GetClipboard() 2- كود لنسخ ولصق الملفات بجميع أنوعها قم بعمل MODULE جديد ثم أنسخ الكود إليه وجدت كود يعمل علي 32X وقمت بتعديله "بفضل الله" ليدعم النواتين 32x و 64x * مصدر الكود يدعم 32x فقط {https://learn.microsoft.com/en-us/answers/questions/893207/copy-file-into-clipboard-for-excel-64bit} Option Explicit ' Required data structures Private Type POINTAPI x As Long y As Long End Type #If VBA7 Then ' Clipboard Manager Functions Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hwnd As LongPtr) As Long Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long Private Declare PtrSafe Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As LongPtr) As Long Private Declare PtrSafe Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As LongPtr Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long ' Other required Win32 APIs Private Declare PtrSafe Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As LongPtr, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long Private Declare PtrSafe Function DragQueryPoint Lib "shell32.dll" (ByVal hDrop As LongPtr, lpPoint As POINTAPI) As Long Private Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As LongPtr Private Declare PtrSafe Function GlobalFree Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalUnlock Lib "kernel32" (ByVal hMem As LongPtr) As LongPtr Private Declare PtrSafe Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) #Else ' Clipboard Manager Functions Private Declare Function EmptyClipboard Lib "user32" () As Long Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long Private Declare Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long ' Other required Win32 APIs Private Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal hDrop As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long Private Declare Function DragQueryPoint Lib "shell32.dll" (ByVal hDrop As Long, lpPoint As POINTAPI) As Long Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Function GlobalUnlock Lib "kernel32" (ByVal hMem As Long) As Long Private Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) #End If ' Predefined Clipboard Formats Private Const CF_TEXT = 1 Private Const CF_BITMAP = 2 Private Const CF_METAFILEPICT = 3 Private Const CF_SYLK = 4 Private Const CF_DIF = 5 Private Const CF_TIFF = 6 Private Const CF_OEMTEXT = 7 Private Const CF_DIB = 8 Private Const CF_PALETTE = 9 Private Const CF_PENDATA = 10 Private Const CF_RIFF = 11 Private Const CF_WAVE = 12 Private Const CF_UNICODETEXT = 13 Private Const CF_ENHMETAFILE = 14 Private Const CF_HDROP = 15 Private Const CF_LOCALE = 16 Private Const CF_MAX = 17 ' New shell-oriented clipboard formats Private Const CFSTR_SHELLIDLIST As String = "Shell IDList Array" Private Const CFSTR_SHELLIDLISTOFFSET As String = "Shell Object Offsets" Private Const CFSTR_NETRESOURCES As String = "Net Resource" Private Const CFSTR_FILEDESCRIPTOR As String = "FileGroupDescriptor" Private Const CFSTR_FILECONTENTS As String = "FileContents" Private Const CFSTR_FILENAME As String = "FileName" Private Const CFSTR_PRINTERGROUP As String = "PrinterFriendlyName" Private Const CFSTR_FILENAMEMAP As String = "FileNameMap" ' Global Memory Flags Private Const GMEM_FIXED = &H0 Private Const GMEM_MOVEABLE = &H2 Private Const GMEM_NOCOMPACT = &H10 Private Const GMEM_NODISCARD = &H20 Private Const GMEM_ZEROINIT = &H40 Private Const GMEM_MODIFY = &H80 Private Const GMEM_DISCARDABLE = &H100 Private Const GMEM_NOT_BANKED = &H1000 Private Const GMEM_SHARE = &H2000 Private Const GMEM_DDESHARE = &H2000 Private Const GMEM_NOTIFY = &H4000 Private Const GMEM_LOWER = GMEM_NOT_BANKED Private Const GMEM_VALID_FLAGS = &H7F72 Private Const GMEM_INVALID_HANDLE = &H8000 Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT) Private Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT) Private Type DROPFILES #If VBA7 Then pFiles As LongPtr #Else pFiles As Long #End If pt As POINTAPI fNC As Long fWide As Long End Type Public Function ClipboardCopyFiles(Files() As String) As Boolean Dim data As String Dim df As DROPFILES #If VBA7 Then Dim hGlobal As LongPtr Dim lpGlobal As LongPtr #Else Dim hGlobal As Long Dim lpGlobal As Long #End If Dim i As Long ' Open and clear existing crud off clipboard. If OpenClipboard(0&) Then Call EmptyClipboard ' Build double-null terminated list of files. For i = LBound(Files) To UBound(Files) data = data & Files(i) & vbNullChar Next data = data & vbNullChar ' Allocate and get pointer to global memory, ' then copy file list to it. hGlobal = GlobalAlloc(GHND, Len(df) + Len(data)) If hGlobal Then lpGlobal = GlobalLock(hGlobal) ' Build DROPFILES structure in global memory. df.pFiles = Len(df) Call CopyMem(ByVal lpGlobal, df, Len(df)) Call CopyMem(ByVal (lpGlobal + Len(df)), ByVal data, Len(data)) Call GlobalUnlock(hGlobal) ' Copy data to clipboard, and return success. If SetClipboardData(CF_HDROP, hGlobal) Then ClipboardCopyFiles = True End If End If ' Clean up Call CloseClipboard End If End Function Public Function ClipboardPasteFiles(Files() As String) As Long #If VBA7 Then Dim hDrop As LongPtr #Else Dim hDrop As Long #End If Dim nFiles As Long Dim i As Long Dim desc As String Dim filename As String Dim pt As POINTAPI Const MAX_PATH As Long = 260 ' Insure desired format is there, and open clipboard. If IsClipboardFormatAvailable(CF_HDROP) Then If OpenClipboard(0&) Then ' Get handle to Dropped Filelist data, and number of files. hDrop = GetClipboardData(CF_HDROP) nFiles = DragQueryFile(hDrop, -1&, "", 0) ' Allocate space for return and working variables. ReDim Files(0 To nFiles - 1) As String filename = Space(MAX_PATH) ' Retrieve each filename in Dropped Filelist. For i = 0 To nFiles - 1 Call DragQueryFile(hDrop, i, filename, Len(filename)) Files(i) = TrimNull(filename) Next ' Clean up Call CloseClipboard End If ' Assign return value equal to number of files dropped. ClipboardPasteFiles = nFiles End If End Function Private Function TrimNull(ByVal sTmp As String) As String Dim nNul As Long ' ' Truncate input sTmpg at first Null. ' If no Nulls, perform ordinary Trim. ' nNul = InStr(sTmp, vbNullChar) Select Case nNul Case Is > 1 TrimNull = Left(sTmp, nNul - 1) Case 1 TrimNull = "" Case 0 TrimNull = Trim(sTmp) End Select End Function Public Sub ClearClipboard() ' Open the clipboard If OpenClipboard(0&) Then ' Empty the clipboard Call EmptyClipboard ' Close the clipboard Call CloseClipboard End If End Sub مثال للاستخدام لإضافة ملفات إلي الحافظة يمكنك إضافة ملفات متنوعة من مسارات مختلفة afile(2) الرقم 2 الموجود هنا يمثل إجمالي عدد الملفات - 1 Sub Test_CopyFilesToClipboard() Dim afile(2) As String afile(0) = "C:\Test\File1.jpg" afile(1) = "C:\Test\File2.pdf" afile(2) = "C:\Any\File3.xlsx" Debug.Print ClipboardCopyFiles(afile) End Sub بالتوفيق
    4 points
  19. Private Sub CommandButton4_Click() Dim WS As Worksheet: Set WS = Sheets("Home") Dim dest As Worksheet: Set dest = Sheets("Daily") Dim search As Range, Rng As Range Set search = WS.[F13]: Set Rng = WS.[F4:F13] If Application.WorksheetFunction.CountA(Rng) = 0 Or search = Empty Then MsgBox "المرجوا إدخال البيانات", vbExclamation, "Admin" Exit Sub Else If Application.WorksheetFunction.CountIf(dest.Range("j:j"), search) > 0 Then MsgBox " تم حفظ هذا اليوم مسبقا" & " " & search, vbOKOnly + vbCritical + vbDefaultButton1 + vbApplicationModal, "انتباه": Exit Sub a = Array([F4], [F5], [F6], [F7], [F8], [F9], [F10], [F11], [F12], [F13]) dest.[a65000].End(xlUp).Offset(1).Resize(, 10) = a dest.Range("j4:j" & Rows.Count).NumberFormat = "dd/mm/yyyy" Rng.ClearContents MsgBox "تم حفظ البيانات بنجاح" & " " & search & " " & "بنجاح", _ vbInformation, "Done" End If End Sub تقرير بورتوفيق.xlsm
    4 points
  20. سنشرح الفكرة والأكواد .. بداية قمت بإنشاء متغيرين في أول الأكواد ، هما :- Private Const TimeoutMinutes As Integer = 1 قمت بإنشاء متغير ثابت ( Const ) يسمى ( TimeoutMinutes ) ، ويتم تعيين قيمته إلى 1 تعبيراً عن دقيقة واحدة. ( وطبعاً تستطيع تغييره كما تريد ) سنستخدم هذا المتغير لتحديد المدة الزمنية (بالدقائق) التي يجب أن يمر ولا توجد فيها حركة للماوس حتى يتم اعتبار النموذج في وضع الخمول . Private LastMouseMoveTime As Date هنا سنقوم بإنشاء متغير خاص (Private) يسمى ( LastMouseMoveTime ) ويتم تحديده كنوع ( Date ) لأنه سيتم تخزين قيمة بصيغة وقت . يُستخدم هذا المتغير لتخزين الوقت الأخير الذي حدثت فيه حركة الماوس على النموذج. الآن بدأت في حدث عند التحميل لتثبيت قيمتين ، هما :- أولاً المتغير الخاص لتكون قيمته كمتغير الوقت الذي تم فتح النموذج فيه LastMouseMoveTime = Now ثانياً قمت بتشغيل الأمر كل دقيقة بالسطر التالي Me.TimerInterval = 60000 وفي حدث تحريك الماوس ، قمت بجعله يأخذ قيمة الوقت الحالي مرة أخرى كحدث عند التحميل LastMouseMoveTime = Now وفي حدث الوقت سيتم التحقق من أن الماوس لم يتم تحريكه منذ آخر قيمة تم تسجيلها في المتغير آخر حركة للماوس سابقاً ، بالكود التالي تخطي الخطأ لأنه سيتقوم بمهمة تغيير في النموذج عند مرور الوقت ، فوجب تلافي الخطأ لأنه لن يؤثر على النموذج On Error Resume Next سيتم التحقق من آخر مدة زمنية لتحريك الماوس ما إذا تخطيناها أم لا. If Now - LastMouseMoveTime > TimeValue("00:00:" & TimeoutMinutes * 60) Then اذا تحقق الشرط وكان الوقت المسجل في المتغير أقل بدقيقة من الوقت الحالي فستظهر رسالة ولك حرية حذفها بالمهمة التي تريدها . MsgBox "تم تسجيل الخروج بسبب عدم تحريك الماوس", vbInformation بعد الرسالة سيتم اغلاق آكسيس . طبعاً تستطيع هنا أن تعدل الأحداث كما ترغب . DoCmd.Quit End If
    4 points
  21. جرب هدا الحل بعد اظافة اليوزرفورم هل يناسبك باسوورد 0 الاعمال الجنوبية userform.xlsm
    4 points
  22. تفضل اخى جرب الملف قكت بتعديل كود MajStkProv وكود xx() لتاكيد الحصول على الرصيد الصحيح وتم اضافة هذا الكود الى كود التحويل او الحفظ Dim rng As Range Dim cll As Range Dim cll2 As Range Dim lastRow As Long lastRow = ThisWorkbook.Sheets("Stock").Cells(Rows.Count, "A").End(xlUp).Row Set rng = ThisWorkbook.Sheets("Stock").Range("A4:A" & lastRow) For Each cll In rng If cll.Value = Me.CB_Pièce.Text And cll.Offset(0, 11).Value = Me.ComboBox1.Value Then cll.Offset(0, 3).Value = Val(Me.stocktr.Value) - Val(Me.Quantitetr.Value) Exit For End If Next cll For Each cll2 In rng If cll2.Value = Me.CB_Pièce.Text And cll2.Offset(0, 11).Value = Me.ComboBox2.Value Then cll2.Offset(0, 3).Value = Val(Me.TextBox_Stock_Initial.Value) + Val(Me.Quantitetr.Value) Exit For End If Next cll2 تقبل تحياتى نقل المخزون بين المخازن.xlsm
    3 points
  23. تفضل استاذ @canary2522 محاولتي حسب مافهمت . الشرح والمرفق DDT502.rar
    3 points
  24. السلام عليكم و رحمة الله ضع الكودين الآتيين فى حدث الفورم Private Sub CommandButton1_Click() Dim ws As Worksheet, Knd As String Dim x As Integer, Trgt As Range Set ws = Sheets("ورقة1") If Me.ComboBox1.Value = "" Or Me.TextBox1.Value = "" Then MsgBox "يرجى استكمال البيانات" Exit Sub End If Knd = Me.ComboBox1.Value x = WorksheetFunction.Match(Knd, ws.Range("A1:F1"), 0) Set Trgt = ws.Cells(2, x) Trgt.Value = Trgt.Value + Me.TextBox1.Value Me.ComboBox1.Value = "" Me.TextBox1.Value = "" End Sub Private Sub UserForm_Initialize() For Each c In Range("A1:F1") Me.ComboBox1.AddItem c Next End Sub
    3 points
  25. عملت لك استعلام واحد يستخرج جميع بنودك المطلوبة ... واستعلام آخر بالرصيد تعريف الاستعلام : بالرغم من كونه شقيق الجدول واكثر مرونة منه الا انه نسخة طبق الأصل من نماذج العرض ومن التقارير الفرق بينها في الغالب دوما ان البيانات في التقارير تكون مرتبة على هيئة ورق مثلا A4 ومنسقة وتشتمل على الشعارات والترويسة والتذييل ، والا البيانات هي البيانات والنتائج هي النتائج ونوظف النماذج لخدمة الاستعلامات في الضبط فيما يخص المعايير ، لذا حينما تفتح الاستعلام في المثال سوف يطالبك بكتابة المعايير ( ولن تظهر اذا تم ربط المعيار بالنموذج ) نأتي للاستعلام الشامل الذي تم عمله : المعايير : ( بين تاريخين / بين رقمين للحساب / بين رقمين للصنف ) جرب 1- لا تكتب شيئا عند المطالبة بادخال المعايير .. وانما انقر على موافق فقط .. سوف تظهر جميع البيانات الموجودة في الجدول ، وينطبق هذا ايضا على استعلام الأرصدة 2- جرب ادخل التواريخ فقط او التواريخ والحساب من/الى او ضع رقما واحدا في : من/الى ... وطبق ايضا على الاصناف الذي اريد ان اوصله انه يمكن التصفية بحسابات محددة واصناف محددة وتواريخ محددة في نهاية البرنامج يمكننا جعل هذا الاستعلام او جزء منه مصدرا لتقريرنا جرب وتفحص وزد في البيانات وراقب ووافنا بالنتيجة ملحوظة : ارقام الحسابات والاصناف تبدأ من 101 .. وهذا الرقم سوف يتكفل النموذج بادخاله مستقبلا tables3.rar
    3 points
  26. وهذا تعديل بسيط في الكود حتى لا يقع يوم التاخر في ضمن اطار اجازة الموظف ................ Private Sub Form_BeforeUpdate(Cancel As Integer) Dim rst As dao.Recordset Set rst = CurrentDb.OpenRecordset("SELECT hol.lateday, hol.ck, hol.Rea, hol.[no], hol.ck, hol.Rea, hol.absdate, hol.start_date, hol.end_date " & _ " FROM hol " & _ " WHERE (((hol.[no])=" & [Forms]![late-enter]![no] & ")) " & _ "ORDER BY hol.lateday;") rst.MoveFirst Do Until rst.EOF If rst!lateday = Me![نص15] Then MsgBox " تاريخ التاخر هذا مسجل سابقا لهذا الموظف ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do ElseIf rst!absdate = Me![نص15] Then MsgBox " الموظف غائب اليوم ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do ElseIf Me![نص15] >= rst!start_date And Me![نص15] <= rst!end_date Then MsgBox " التاريخ موجود ضمن فترة إجازة الموظف ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do End If rst.MoveNext Loop rst.Close End Sub
    3 points
  27. استبدل الكود لديك بهذا .......................... Private Sub Form_BeforeUpdate(Cancel As Integer) Dim rst As dao.Recordset Set rst = CurrentDb.OpenRecordset("SELECT hol.lateday, hol.ck, hol.Rea, hol.[no], hol.ck, hol.Rea, hol.absdate, hol.start_date, hol.end_date " & _ " FROM hol " & _ " WHERE (((hol.[no])=" & [Forms]![late-enter]![no] & ")) " & _ "ORDER BY hol.lateday;") rst.MoveFirst Do Until rst.EOF If rst!lateday = Me![نص15] Then MsgBox " تاريخ التأخر مكرر ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do ElseIf rst!absdate = Me![نص15] Then MsgBox " الموظف غائب اليوم ", , " تنبيه" Me.Undo DoCmd.CancelEvent Exit Do End If rst.MoveNext Loop rst.Close End Sub
    3 points
  28. السلام عليكم كان عليك استخدام خاصية البحث بالمنتدى قبل رفع مشاركتك فالمنتدى كنوز -تفضل على الرغم انك لم تقم برفع ملف اكسيل موضح به المطلوب بكل دقة https://www.officena.net/ib/topic/22735-طباعة-الشهادات-المدرسية/ وهذا أيضاً برنامج صانع الشهادات المدرسية https://www.jo-teachers.com/forum/t9644
    3 points
  29. أخي الكريم @عبدالقدوس48 هل تتوقع ان من يجيب هو من يضع الامثلة والمرفق ..... ام السائل هو من يزودنا بالمرفق للتطبيق عليه بعد دراسة طريقته في البرنامج ووضع الحل المناسب لمرفقه .... بارك الله فيك
    3 points
  30. ايضا انا استعجلت في الرد فهو قد عالج مسألة التكرار بنفس الطريقة التي بينتها .. ولكني لم انتبه لتحديثه
    3 points
  31. معلمنا الفاضل هذا من حسن حظي بلا شك لا شك أن ألأستاذ @Barna أنتج عمل جميل وذكي ، إلا أن فكرتي كانت بتوسيع المجال ليس إلا
    3 points
  32. جزيل الشكر لكم اخوتي حل آخر باستخدام بور كويري المصنف1.xlsx
    3 points
  33. من الافضل جعل قيمة القائمة المنسدلة دور ثان فقط بدون له او لها واستخدام الكود التالي Sub Filter_and_copy_with_condition() Dim d, j Dim Search As Range, clé As String, IRow As Long Dim WS As Worksheet: Set WS = Worksheets("control4") Dim F As Worksheet: Set F = Worksheets("saad") d = 9: j = 16: clé = "*" & F.[k1] IRow = WS.Range("U:U").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row With Application .Calculation = xlManual .ScreenUpdating = False If Len([k1].Value) = 0 Then: Exit Sub Set Search = WS.Range("U16:U" & IRow).Find(clé, LookIn:=xlValues, lookat:=xlWhole) If Search Is Nothing Then MsgBox clé & " " & "غير موجود", vbExclamation, "Admin": Exit Sub F.Range("C10:O" & Rows.Count).ClearContents Do Until IsEmpty(WS.Range("U" & j)) If WS.Range("U" & j) Like clé Then d = d + 1 F.Cells(d, 3).Value = WS.Cells(j, 3).Value F.Cells(d, 5).Value = WS.Cells(j, 5).Value F.Cells(d, 6).Value = WS.Cells(j, 6).Value F.Cells(d, 8).Value = WS.Cells(j, 10).Value F.Cells(d, 10).Value = WS.Cells(j, 12).Value F.Cells(d, 11).Value = WS.Cells(j, 13).Value F.Cells(d, 12).Value = WS.Cells(j, 16).Value F.Cells(d, 13).Value = WS.Cells(j, 17).Value F.Cells(d, 14).Value = WS.Cells(j, 18).Value F.Cells(d, 15).Value = WS.Cells(j, 21).Value End If j = j + 1 Loop .Calculation = xlAutomatic .ScreenUpdating = True End With End Sub مصطفي V3.xlsb
    3 points
  34. تفضل ووافينا بالنتيجة Sub Filter_and_copy_with_condition() Dim Rng As Range, Search As Range Dim Col As Variant, a As Variant, MyRng As Variant, clé As Variant Dim i As Long, F As Long, Cpt As Long, Lastrow As Long, Irow As Long, ColStar As Long Dim WS As Worksheet: Set WS = Worksheets("control4") Dim desWS As Worksheet: Set desWS = Worksheets("saad") clé = desWS.[k1]: ColStar = 10 'نطاق البيانات Lastrow = WS.Range("U:U").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Set Rng = WS.Range("C16:U" & Lastrow) Col = Rng.Value2 If Len([k1].Value) = 0 Then: Exit Sub With desWS Set Search = WS.Range("U16:U" & Lastrow).Find(clé, LookIn:=xlValues, lookat:=xlWhole) If Search Is Nothing Then MsgBox clé & " " & "غير موجود", vbExclamation, "Admin": Exit Sub Application.ScreenUpdating = False ' تخزين البيانات القديمة Irow = desWS.Columns("C:AT").Find(What:="*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row For Cpt = ColStar To Irow MyRng = desWS.Range("P10:AT" & Cpt).Value Next ' افراغ البيانات السابقة desWS.Range("C10:O" & Cpt).ClearContents ReDim a(1 To UBound(Col), 1 To UBound(Col, 2)) End With For i = 1 To UBound(Col) ' عند تحقق الشرط If Col(i, 19) = clé Then F = F + 1 a(F, 1) = Col(i, 1): a(F, 3) = Col(i, 3): a(F, 4) = Col(i, 4) a(F, 6) = Col(i, 8): a(F, 8) = Col(i, 10): a(F, 9) = Col(i, 11) a(F, 10) = Col(i, 14): a(F, 11) = Col(i, 15): a(F, 12) = Col(i, 16): a(F, 13) = Col(i, 19) End If Next i [C10].Resize(F, UBound(a, 2)).Value2 = a For Cpt = ColStar To Irow desWS.Range("P10:AT" & Cpt).Value = MyRng Next Application.ScreenUpdating = True End Sub وفي حدث ورقة saad ضع الكود التالي Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("k1")) Is Nothing Then Call Filter_and_copy_with_condition End If End Sub مصطفي V2.xlsb
    3 points
  35. استخدم المعادلة التالية باعتبار أن الرقم القومي في الخلية B3 =DATEDIF(DATE(IF(LEFT(B3;1)*1=3;20;19)&MID(B3;2;2);MID(B3;4;2);MID(B3;6;2));TODAY();"y") حيث يتم تقسيم الرقم القومي إلى شهر وسنة وأيام وبعدها يتم طرحه من اليوم الحالي today واظهار الناتج بالسنة y
    3 points
  36. أستاذ @Ahmed_J ، خليني افهم حبة حبة لأن احياناً استيعابي يكون بطيء حبتين بعد الأكل .. هالحين انت محتاج من تختار من القائمة B يروح يعمل بحث في كل الحقول - حتى لو عددهم 50 - اللي سجلها رقمه يطابق GradeNo في القائمة A . انا عملت الـ GradeNo رقم 8 يساوي كاتب في الحقلين باعتبار وجود أكثر من حقل في الجدول . وعند اختيار رقم 8 من النموذج من A وتختار اي اختيار في B غير كاتب رح تكون النتيجة انه عدم تطابق في البيانات .. ومن تختار كاتب ما رح يظهر رسالة . الحين هذا اللي انا دخت وأنا أشرحه صحيح ولا لا سمح الله غلط . هذا الكود اللي خرجت فيه بالنهاية ، والمرفق أسفله :- Private Sub B_AfterUpdate() Dim db As DAO.Database Dim rs As DAO.Recordset Dim sql As String Dim found As Boolean Dim field As DAO.field found = False Set db = CurrentDb sql = "SELECT * FROM TP2 WHERE GradeNo = " & Me.A Set rs = db.OpenRecordset(sql) If Not rs.EOF Then found = True rs.MoveFirst For Each field In rs.Fields If field.Name <> "GradeNo" And field.Value <> Me.B Then found = False Exit For End If Next field End If rs.Close If found Then MsgBox "بيانات متطابقة", , "" Else 'If Not found Then MsgBox "بيانات غير متطابقة", , "" End If End Sub Test-1.accdb
    3 points
  37. لا ابخل على منتدانا وأخواني والأساتذة أبداً .. آن الأوان يا صديقي 😁😂 الملف مفتوح المصدر ، فقط الدعاء لوالديّ Smart Alarm.zip باب الحوار مفتوح للمناقشة ، والضيافة عند الأستاذ @Moosak
    3 points
  38. تفضل اخى جرب واعلمنى بالنتيجة تم اضافة اعادة ترتيب البيانات تصاعديا حسب التاريخ جرب الكود والملف تعديل جلب التفاصيل.xlsm
    3 points
  39. المرفق بعد اتمته............ جلب صورة من الانترنت وحفظها باسم جديد ومسار جديد بالجدول وحفظها بمجلد بجوار القاعدة . GetImageTest1-2.rar
    3 points
  40. وعليكم السلام ورحمة الله وبركاته تفضل أخي اختصار معلومات لعميل.xlsx
    3 points
  41. نعم هذه هي المتبعة على الطابعات العادية علما ان الطابعة تقوم بالمهمة لوحدها ... كتاب او رسالة جامعية مكونة من 500 ورقه ( وجه واحد ) والصفحات مرقمة 1- اضع 250 ورقة في درج الطابعة 2- اختار من خصائص الطابعة ( طباعة الصفحات الفردية) 3- بعد اكتمال الطباعة اقلب مجموعة الورق ( المحافظة على الترتيب نفسه) 4- اختار من خصائص الطابعة ( طباعة الصفحات الزوجية )
    3 points
  42. جميل جداً .. وبعد أذن أخي الكريم @alaa aboul-ela =DCount("[ID]","Table1")
    3 points
  43. جرب ده كده DCount("id", "tabel1" dcount.rar
    3 points
  44. انا اسف اخى طريقة عرض طلبك يجب ان تبدأ بالسلام عليكم اخوانى وتكتب طلبك ودعم الطلب بملف عموما جرب واخبرنى يمكنك وضع الكود في وحدة VBA في ملف Excel وسيعمل تلقائيًا بمجرد فتح الملف. إليك الخطوات لوضع الكود وجعله يعمل بشكل تلقائي بدون الحاجة لزر: 1. افتح ملف Excel الذي تريد إضافة الكود إليه. 2. اضغط `Alt` + `F11` لفتح محرر VBA. 3. في القائمة، اختر `Insert` > `Module` لإنشاء وحدة VBA جديدة. 4. الصق الكود في وحدة VBA التي تم إنشاؤها. 5. اضغط `Ctrl` + `S` لحفظ الملف. 6. أغلق محرر VBA. 7. أغلق الملف وأعد فتحه. الآن، سيعمل الكود تلقائيًا عند فتح الملف، حيث سيقوم بحفظ وإغلاق الملف تلقائيًا بعد مرور 5 دقائق من الخمول. Dim StartTimer Const IdleTime = 5 ' وقت الخمول بالدقائق Sub ResetTimer() StartTimer = Now End Sub Sub CheckIdleTime() If (Now - StartTimer) * 24 * 60 > IdleTime Then Application.DisplayAlerts = False ' لعدم عرض رسائل التنبيه ThisWorkbook.Save ' حفظ الملف ThisWorkbook.Close ' إغلاق الملف Application.DisplayAlerts = True End If End Sub Private Sub Workbook_Open() StartTimer = Now Application.OnTime Now + TimeValue("00:01:00"), "CheckIdleTime" ' فحص الوقت كل دقيقة End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) ResetTimer End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) ResetTimer End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) ResetTimer End
    3 points
  45. المشاكل من النوع ده بتبقى اختلاف نسخة اوفيس العميل عن نسخة الاوفيس التي قمت بعمل البرنامج عليها انا بريح نفسي وبنزل على جهاز العميل نفس نسخة الاوفيس التي قمت بعمل البرنامج عليها لتلافي اي مشكلات من هذا النوع ..
    3 points
  46. وهذه مشاركتي البسيطة مع الأستاذ خليفة Sleep Mode.accdb
    3 points
  47. تفضل استاذ @Abdelaziz Osman مرفق من مكتبتي . Main_Form Close After 15 minute.rar
    3 points
  48. بارك الله فيك وزادك الله من فضله اللهم اغفر لوالدك وارحمه، وعافه واعف عنه، وأكرم نزله، ووسع مدخله، واغسله بالماء والثلج والبرد، ونقه من الخطايا كما ينقى الثوب الأبيض من الدنس. - اللهم أبدله دارا خيرا من داره، وأهلا خيرا من أهله، وزوجا خيرا من زوجه، وأدخله الجنة، وأعذه من عذاب القبر، ومن عذاب النار
    3 points
×
×
  • اضف...

Important Information