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

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

  1. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      27

    • Posts

      11645


  2. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      11

    • Posts

      13470


  3. Foksh

    Foksh

    أوفيسنا


    • نقاط

      10

    • Posts

      4306


  4. Debug Ace

    Debug Ace

    عضو جديد 01


    • نقاط

      4

    • Posts

      14


Popular Content

Showing content with the highest reputation on 12/02/25 in مشاركات

  1. السلام عليكم بفضل الله تمكنت من ايجاد طريقة ممتازة ومحكمة للتعامل مع توقيع الحضور والانصراف للفترة المسائية الممتدة الى ما بعد منتصف الليل ودخول يوم جديد انتظروني بعض الوقت كي اجري تجاربي النهائية على العمليات وعلى المخرجات .
    3 points
  2. بارك الله فيكم وينكم من زمان هذا الموضوع طرحته اليوم بعد وصولي لنتيجة صحيحة مرضية بل محكمة هذا الوصول سبقه موضوع تجاوزت المشاركات فيه الــــ 100 لن اتنازل عن اكوادي التي صنعتها .. مادام العمل سليم .. لاني تعبت من التجربة والتكرار والبحث عن الطريقة السليمة ..... ولكن ستبقى هذه الأكواد التي تفضلتم بها مرجعا مهما لي ولغيري لمن اراد بناء برنامج حضور كي يستنير بها حفظكم الله من كل سوء وزادكم علما ورفعة
    2 points
  3. رداً على هذه النقطة ، وحيث أنه سبق تنفيذها سابقاً .. جرب المرفق نفسه بعد التعديل بحيث سيتم فقط عرض الخطوط العربية ( أو التي تتعامل مع الكاركتر العربي ) في الكومبوبوكس . مع إضافة الفرز التصاعدي للأسماء :- Db3.zip
    2 points
  4. وانا عند وعدى هذه مشاركتى 1- بعد فك الضغط انقل الصور الى المجلد : TempResources 2- قم بفتح قاعدة البيانات 3- فى المستقبل فقط اضف اى صور الى المجلد : TempResources فى جزء لم انته منه بعد حفظ الاعدادت كقوالب او حفظ الاعدادت لكل شهادة ان اردنا ان تكون كقاعدة بيانات للاحتفاظ بالبيانت وليس مجرد موديولر لعمل الشهادات ويتبقى الجزء الاخير انا افكر فى الطباعة من النموذج الفرعى بشكل مباشر بدون اى تقارير الى لقاء قريب بعد ان اعرف ارائكم فى التطبيق والافكار البسيطة المتواضعة
    2 points
  5. 2 points
  6. بل اعجبني المشهد .. سلمت اناملك يا سلام .. زاد حماسي .. احب المفاجآت في مثل هذه المواضيع
    2 points
  7. وعليكم السلام ورحمة الله وبركاته .. أعجبتني الفكرة كثيراً بان يكون هناك مرونة وليونة في نص محتوى الشهادة .. فخطر ببالي فكرة أود مشاركتكم ثمارها في الصورة الموضحة تالياً قبل ارفاق الملف .
    2 points
  8. السلام عليكم ورحمة الله وبركاته هذه دعوة كريمة لتجربة الأداة الجديدة والفريدة من نوعها : دكتور ال VBA وضائف الأداة : 1- تحويل الكود إلى صيغة متوافقة مع النواتين 32 و 64 بت. 2- تصحيح الأخطاء البرمجية في الكود. 3- تنسيق وترتيب الكود شكليا. 4- كتابة التعليقات وشرح للكود باللغتين العربية والإنجليزية. 5- إضافة صائد الأخطاء للكود وذلك لتعقب الأخطاء البرمجية. 6- إضافة ترقيم لأسطر الكود. يمكنك اختيار واحد من هذه الوظائف أو تختار من بينها ما تريده. الأداة مخصصة لأكواد ال VBA وتعتمد على قدرات الذكاء الاصطناعي لإعطاء نتائج دقيقة ومبهرة .. 😁✌🏻 اختصر على نفسك الوقت والجهد واعمل بذكاء 😉👌🏻 رابط الأداة : https://vba-code-doctor-471932697586.us-west1.run.app/ يمكنك فتحها في الهاتف أو الحاسوب على راحتك 😎🌷 جربوها وعطوني رأيكم 😇✌🏻
    1 point
  9. سأوافيك بها غدا بحول الله
    1 point
  10. وعليكم السلام ورحمة الله وبركاته .. تم تعديل المديول ليصبح :- Option Compare Database Option Explicit Function PartOfName(InName As String, NumberOfPart As Byte) As String Dim parts() As String Dim tempName As String Dim i As Integer Dim currentIndex As Integer Dim normalizedParts() As String Dim j As Integer tempName = Trim(InName) PartOfName = "" If tempName = "" Then Exit Function tempName = Replace(tempName, " -", " - ") tempName = Replace(tempName, "- ", " - ") tempName = Replace(tempName, " ", " ") parts = Split(tempName, " - ") currentIndex = 0 ReDim normalizedParts(0 To 0) For i = 0 To UBound(parts) If Trim(parts(i)) <> "" Then normalizedParts(currentIndex) = Trim(parts(i)) If i < UBound(parts) Then ReDim Preserve normalizedParts(0 To currentIndex + 1) currentIndex = currentIndex + 1 End If End If Next i If UBound(normalizedParts) > 0 Then If NumberOfPart - 1 <= UBound(normalizedParts) Then PartOfName = Trim(normalizedParts(NumberOfPart - 1)) End If Else Dim words() As String words = Split(tempName, " ") If NumberOfPart - 1 <= UBound(words) Then PartOfName = Trim(words(NumberOfPart - 1)) End If End If End Function Function NoSpaces(InName As String) As String Dim NewName As String Dim i As Integer Dim TheStr As String Dim ThePrevStr As String InName = Trim(InName) For i = 1 To Len(InName) TheStr = Mid(InName, i, 1) If TheStr = " " And ThePrevStr = " " Then TheStr = "" If TheStr <> "" Then ThePrevStr = TheStr NewName = NewName & TheStr Next NoSpaces = NewName End Function وتم تعديل الإستعلام ليصبح :- SELECT Table1.Name, PartOfName([Name],1) AS Firstname, PartOfName([Name],2) AS Secondname, PartOfName([Name],3) AS Thirdname, PartOfName([Name],4) AS Forthname, PartOfName([Name],5) AS SubFamily, PartOfName([Name],6) AS Family, [SubFamily] & " " & [Family] AS Familyname FROM Table1 WITH OWNERACCESS OPTION; ملفك بعد التعديل :- فصل ماقبل المطة.zip
    1 point
  11. اجدت وأفدت مع ان ما قدمه اخونا Debug Ace رائع لا يقاوم .. لوجود ميزات متقدمة الا انني يبدو سأعتمد نسختك هذه لعدة اسباب : - تحقق عرض الخطوط العربية فقط من وندوز - التعامل مع التقرير مباشرة وحفظ آخر نسخة لتصبح دائمة - جلب الخلفية مفتوح وغير مقيد كل هذه قريبة من عملي تقريبا .. مع بعض التعديلات اللازمة جزاكم الله خيرا .. جميعا واجزل لكم الثواب
    1 point
  12. الفا مليون شكر الاساتذة الكرام
    1 point
  13. ما شاء الله تبارك الرحمن 🙂 جميل جدا تنوع الأفكار في نفس المجال 😊👌 وأنا أيضا لدي برنامج خاص بتصميم الشهادات وتنسيقها وتوليد الشهادات لمجموعة كبيرة من الطلاب أو المتدربين أو المستلمين بشكل عام ، وكذلك يقوم بإرسال الشهادات بالبريد الإلكتروني لكل المستهدفين ( كل متدرب أو طالب يستلم شهادته) ، وأيضا يقوم بحفظ جميع الشهادات على شكل Pdf دفعة واحدة .. 🙂 مع إمكانيات تنسيق النص ( الخطوط والألوان ) بشكل حر ، وإضافة التواقيع ، وتغيير إطارات البرنامج .. إلخ تصميم وتنسيق النصوص بكل أريحية إضافة المتدربين دفعة واحدة بعدد لا محدود معاينة بشكل مباشر اواجهة البرنامج مع خيارات البحث وعرض تقارير وإحصائيات لتحميل البرنامج : تنصيب برنامج صانع الشهادات الإصدار الثالث 3.0.zip
    1 point
  14. الله .. الله .. الله .. ما هذا !! لا يهمني العمل الآن .. يكفيني النص المكتوب .. اخجلتني يارجل .. لحظة تعال ... معرف جديد + خبرة فائقة .. وخطاب يمثل المنتدى .. اني لأشم ريح يوسف
    1 point
  15. نعم .. تماما السر في هذه الدالة التي حلت المشكلة الدالة تتحدث وليست بحاجة الى شرح .. حيث تفحص الوقت الحالي هل هو في مساء اليوم ام لا Dim startTime As Date Dim endTime As Date Dim currentTime As Date Dim i As Integer startTime = TimeValue("12:01:00") endTime = TimeValue("23:59:59") currentTime = Time() If currentTime > startTime And currentTime < endTime Then i = 1 Else i = 2 End If CheckTimeBetween = i وكان السبب الرئيس في المشكلة هو دالة توقيت المساء سواء الحضور او الانصراف لأنه عند دخول اليوم التالي يعتبر الدخول المسائي ضمن مساء الغد لهذا تم تعديل دالتي التوقيت المسائي وفقا لهذه الدالة اعلاه انظروا كيف تتعامل الدالتان ادناه الشرط يقول : اذا الوقت الحالي داخل في شرط الدالة وصحيح .. اي =1 فالتاريخ تاريخ اليوم وإلا فإن التاريخ هو تاريخ الأمس Public Function funFirstTimeB_in() Dim z As Integer Dim i As Date, ii As Date, jj As Date z = Nz(DLookup("free2_in", "tblTimeCtrl"), 0) If CheckTimeBetween() = 1 Then i = DLookup("fatrah2_In", "tblTimeCtrl") & " " & Date ii = DateAdd("n", -z, i) Else jj = DateAdd("d", -1, Date) i = DLookup("fatrah2_In", "tblTimeCtrl") & " " & jj ii = DateAdd("n", -z, i) End If funFirstTimeB_in = ii End Function Public Function funLastTimeB_Out() Dim z As Integer Dim x As Integer, xx As Integer Dim i As Date, ii As Date, jj As Date z = Nz(DLookup("free2_out", "tblTimeCtrl"), 0) x = Nz(DLookup("hours_Work2", "tblTimeCtrl"), 0) xx = (x * 60) + z If CheckTimeBetween() = 1 Then i = DLookup("fatrah2_In", "tblTimeCtrl") & " " & Date ii = DateAdd("n", xx, i) Else jj = DateAdd("d", -1, Date) i = DLookup("fatrah2_In", "tblTimeCtrl") & " " & jj ii = DateAdd("n", xx, i) End If funLastTimeB_Out = ii End Function للتجربة والتأكد ان كل شيء تمام جعلت عند التوقيع في الفترتين كليهما .. تظهر رسالتان الاولى لبداية التوقيع والثانية لنهايته اذا الامور تمام يمكنك تعطيل وايقاف هذه الرسائل بداية التوقيع = وقت الدخول الرسمي - الوقت المتاح قبل نهاية التوقيع = وقت الدخول الرسمي + عدد ساعات العمل + الوقت المتاح بعد جعلت الاوقات المتاحة بالدقائق من اجل دقة الاختيار
    1 point
  16. 1 point
  17. هذه تفيد بأن أحد المكتبات ناقصة أو مفقودة أو احد الاكواد يعمل عل 32 بت وانت نقلتها على جهاز يعمل على 64 بت . وللاسف انا كما قلت لك انا حولت الملف فقط والباقي عند الاستاذ @Foksh . هو صاحب الموضوع .................... تحياتي لك .
    1 point
  18. طيب سوف تكون مشاركتى بعدك مباشرة سوف تكون مشاركتى مفاجأه إستعد
    1 point
  19. فضلت ابحث فى المنتدى عن موضوع صفحة رئيسية لاستاذ ابو جودي الى ان وجدت الموضوع طيب المرفق الاول على طريقة ابو جودي والمرفق الثانى من هذا الموضوع والذى يخص الاستاذ Foksh قمت بتعديل بسيط واضافة بسيطة جدا قائمة جانبية على طريقة ابو جودى.zip قائمة جانبية على طريقة الاستاذ Foksh.zip
    1 point
  20. استكملت على الكود السابق لاستاذ @Foksh 😇 Private Sub BMenu1_Click(): ToggleSubMenu "1": Set_Background: Set_Selected_Button_1: End Sub Private Sub BMenu2_Click(): ToggleSubMenu "2": Set_Background: Set_Selected_Button_2: End Sub Private Sub BMenu3_Click(): ToggleSubMenu "3": Set_Background: Set_Selected_Button_3: End Sub Private Sub BMenu4_Click(): ToggleSubMenu "4": Set_Background: Set_Selected_Button_4: End Sub لجعل قائمة الجانبية متلاصقه نوع ما مع اضافة واجهة ويجب تأخير تنقل ل SubForm لون الابيض يكون مخفي بمعدل ثانية يظهر حتى لا تأثر زغللة عين او حل آخر في الامكان تغير المتفرع من الازرار باي تصميم زر بتدريج بكود بسيط مع تفاعل الازرار تحميل المرفق https://www.mediafire.com/file/b6bnzkccf19k8y4/Menu+Navigations.rar/file
    1 point
  21. وكمعلومة إضافية في مثال الاخ @محمد التميمي يمكنك الحصول على رقم أي قرص غير الـ C بإستبدال الحرف C بالحرف المطلوب SerialNumber = CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber تحياتي
    1 point
  22. وعليكم السلام ورحمة الله وبركاته .. لدي دالة تجلب جميع أرقام الهارد ديسك ( القرص الصلب ) حتى لو كان لديك أكثر من هارد موصول على نفس الكمبيوتر .. Public Function GetAllHardDiskSerials() As String On Error GoTo ErrorHandler Dim objWMIService As Object Dim colDisks As Object Dim objDisk As Object Dim result As String Dim i As Integer Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colDisks = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive") i = 1 For Each objDisk In colDisks If Not IsNull(objDisk.SerialNumber) Then Dim serial As String serial = Trim(objDisk.SerialNumber) If serial <> "" Then result = result & "Disk " & i & ": " & serial & vbCrLf i = i + 1 End If End If Next If result = "" Then GetAllHardDiskSerials = "No serial numbers found" Else GetAllHardDiskSerials = result End If CleanUp: Set objDisk = Nothing Set colDisks = Nothing Set objWMIService = Nothing Exit Function ErrorHandler: GetAllHardDiskSerials = "Error" Resume CleanUp End Function أو هذه الدالة البسيطة أيضاً التي تجلب رقم الهارد الذي تم تثبيت نظام التشغيل ويندوز عليه :- Public Function GetHardDiskSerial2() As String On Error GoTo ErrorHandler Dim objWMIService As Object Dim colDisks As Object Dim objDisk As Object Dim strSerial As String Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") Set colDisks = objWMIService.ExecQuery("SELECT * FROM Win32_DiskDrive") For Each objDisk In colDisks If Not IsNull(objDisk.SerialNumber) Then strSerial = Trim(objDisk.SerialNumber) If strSerial <> "" Then GetHardDiskSerial2 = strSerial Exit For End If End If Next If GetHardDiskSerial2 = "" Then GetHardDiskSerial2 = "Not Found" End If CleanUp: Set objDisk = Nothing Set colDisks = Nothing Set objWMIService = Nothing Exit Function ErrorHandler: Resume CleanUp End Function والإستدعاء فقط في أي مربع نص = اسم الدالة فقط ، كما في الملف المرفق للتوضيح . HD Serial.zip
    1 point
  23. مشاركة مع تنفيذ فكرة أستاذنا @kkhalifa1960 ، وبدلاً من الإعتماد على نموذج فرعي للقائمة الفرعية ، هذا تعديل على الفكرة التي تم طرحها سابقاً ، بحيث تم تطبيقها وكأنها Navigation Form .. الملف المرفق :- Menu Navigations.zip
    1 point
  24. وعليكم السلام نعم يمكنك فمثلا على افتراض ان هذا الحرف موجود بهذا النطاق (A2:H10) فستكون المعادلة كالتالى : =COUNTA(A2:H10)
    1 point
  25. بارك الله فيك استاذ مجدى وجزاك الله خير الثواب
    1 point
  26. استاذ romeo4 الأمر بسيط وسهل عليك بتعديل اعدادات اللغة العربية لديك من لوحة التحكم
    1 point
  27. أحسنت استاذنا الكبير برنامج رائع بارك الله فيك وزادك الله من فضله
    1 point
  28. عودا حميدا استاذنا الكريم ضاحى -أحسنت موضوع فى غاية الأهمية بارك الله فيك وزادك الله من فضله
    1 point
  29. 1 point
  30. وعليكم السلام-تفضل لك ما طلبت بهذه المعادلة =IFERROR(DGET($B$4:$G$12,B4,$C$17:$D$18),"") صفحة 1.xlsx
    1 point
  31. بارك الله فيك وزادك الله من فضله
    1 point
  32. بارك الله فيك وزادك الله من فضله ورحم الله والديك
    1 point
  33. أستاذ Sera ألم تلاحظ ما كتبته لك بكل دقة -قلت لك تم التعديل على الملف السابق لأنى دائما لا اريد اجابات كثيرة فى المشاركة حتى لا تشتت من يدخل مستقبلا على هذه المشاركات فدائما اضع الإجابات المطلوبة فقط واقوم بحذف الباقى
    1 point
  34. اخى ابو اسيل-بعد اذن استاذنا حسين فى اعتقادى ان مشكلتك الأن قد توضحت وتبينت وهى ربما قمت بلصق هذا الملف داخل تسطيب الأوفيس فى جهازك ,ويكمن حل هذه المشكلة فى الأتى : عليك بالدخول الى بارتشن c ثم بعد ذلك الدخول الى Programe Files (X86) ثم الذهاب الى Microsoft Office ثم Office 14 واخيراً عليك بفتح فولدر اسمه XLSTART ستجد هذا الملف به عليك بحذفه
    1 point
  35. طبعا لو هناك عدة شروط -بس كان عليك من البداية لعدم اهدار الوقت رفع الملف مدعوم بشرح كافى ووافى عن طلبك
    1 point
  36. وعليكم السلام-يمكنك تجربة هذا كيف اجعل صفحة اكسل تتحول لصفحة نت تفاعلية في موقعي وهنا ايضا كيفية ربط جداول ومخططات إكسل ببرنامج بوربوينت كيف تربط جداول ومخططات إكسل ببرنامج بوربوينت
    1 point
  37. بعد اذن استاذنا ابو اسيل -فقط عليك استخدام هذه المعادلة لتحقيق طلبك =SUMIF($C$2:$C$6,"<>"&"مفصول",$D$2:$D$6)
    1 point
  38. وعليكم السلام الخطأ كان منك انت فى المعادلة-تم ضبط معادلات جميع صفحات الملف الاجازة2.xlsx
    1 point
  39. فتح الله عليك وزادك الله من فضله
    1 point
  40. بارك الله فيك استاذ ابو اشرف وهذا من شيم الرجال العطاء دائما بمقدار ما تعلموا وتلقوا من العلم وعدم نكران الجميل لهذا المنتدى دائما وابدا وفى اعلى الدرجات والرقى والسمو لمنتدانا الكريم ولنا جميعا فقد تعلمنا واستفدنا منه كثيرا جزاك الله خير الثواب وزادك الله من فضله ووسع الله فى رزقك ورحم الله والدين واكرم الله واحسن اليك والى ابنائك
    1 point
  41. وعليكم السلام-تفضل قائمة منسدلة 1مطاطية.xlsx
    1 point
  42. ألف الف مبروك استاذنا الكريم عن جدارة واستحقاق ان شاء الله ,وأعانهم الله على المسئوليات الجديدة والى التفوق والنجاح دائما
    1 point
  43. 1 point
  44. تفضل لك ما طلبت-طبعا بعد اذن استاذ ابو ايسل الاجازة.xlsx
    1 point
×
×
  • اضف...

Important Information