بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 12/02/25 in مشاركات
-
السلام عليكم بفضل الله تمكنت من ايجاد طريقة ممتازة ومحكمة للتعامل مع توقيع الحضور والانصراف للفترة المسائية الممتدة الى ما بعد منتصف الليل ودخول يوم جديد انتظروني بعض الوقت كي اجري تجاربي النهائية على العمليات وعلى المخرجات .3 points
-
بارك الله فيكم وينكم من زمان هذا الموضوع طرحته اليوم بعد وصولي لنتيجة صحيحة مرضية بل محكمة هذا الوصول سبقه موضوع تجاوزت المشاركات فيه الــــ 100 لن اتنازل عن اكوادي التي صنعتها .. مادام العمل سليم .. لاني تعبت من التجربة والتكرار والبحث عن الطريقة السليمة ..... ولكن ستبقى هذه الأكواد التي تفضلتم بها مرجعا مهما لي ولغيري لمن اراد بناء برنامج حضور كي يستنير بها حفظكم الله من كل سوء وزادكم علما ورفعة2 points
-
رداً على هذه النقطة ، وحيث أنه سبق تنفيذها سابقاً .. جرب المرفق نفسه بعد التعديل بحيث سيتم فقط عرض الخطوط العربية ( أو التي تتعامل مع الكاركتر العربي ) في الكومبوبوكس . مع إضافة الفرز التصاعدي للأسماء :- Db3.zip2 points
-
وانا عند وعدى هذه مشاركتى 1- بعد فك الضغط انقل الصور الى المجلد : TempResources 2- قم بفتح قاعدة البيانات 3- فى المستقبل فقط اضف اى صور الى المجلد : TempResources فى جزء لم انته منه بعد حفظ الاعدادت كقوالب او حفظ الاعدادت لكل شهادة ان اردنا ان تكون كقاعدة بيانات للاحتفاظ بالبيانت وليس مجرد موديولر لعمل الشهادات ويتبقى الجزء الاخير انا افكر فى الطباعة من النموذج الفرعى بشكل مباشر بدون اى تقارير الى لقاء قريب بعد ان اعرف ارائكم فى التطبيق والافكار البسيطة المتواضعة2 points
-
2 points
-
بل اعجبني المشهد .. سلمت اناملك يا سلام .. زاد حماسي .. احب المفاجآت في مثل هذه المواضيع2 points
-
2 points
-
السلام عليكم ورحمة الله وبركاته هذه دعوة كريمة لتجربة الأداة الجديدة والفريدة من نوعها : دكتور ال VBA وضائف الأداة : 1- تحويل الكود إلى صيغة متوافقة مع النواتين 32 و 64 بت. 2- تصحيح الأخطاء البرمجية في الكود. 3- تنسيق وترتيب الكود شكليا. 4- كتابة التعليقات وشرح للكود باللغتين العربية والإنجليزية. 5- إضافة صائد الأخطاء للكود وذلك لتعقب الأخطاء البرمجية. 6- إضافة ترقيم لأسطر الكود. يمكنك اختيار واحد من هذه الوظائف أو تختار من بينها ما تريده. الأداة مخصصة لأكواد ال VBA وتعتمد على قدرات الذكاء الاصطناعي لإعطاء نتائج دقيقة ومبهرة .. 😁✌🏻 اختصر على نفسك الوقت والجهد واعمل بذكاء 😉👌🏻 رابط الأداة : https://vba-code-doctor-471932697586.us-west1.run.app/ يمكنك فتحها في الهاتف أو الحاسوب على راحتك 😎🌷 جربوها وعطوني رأيكم 😇✌🏻1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته .. تم تعديل المديول ليصبح :- 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; ملفك بعد التعديل :- فصل ماقبل المطة.zip1 point
-
اجدت وأفدت مع ان ما قدمه اخونا Debug Ace رائع لا يقاوم .. لوجود ميزات متقدمة الا انني يبدو سأعتمد نسختك هذه لعدة اسباب : - تحقق عرض الخطوط العربية فقط من وندوز - التعامل مع التقرير مباشرة وحفظ آخر نسخة لتصبح دائمة - جلب الخلفية مفتوح وغير مقيد كل هذه قريبة من عملي تقريبا .. مع بعض التعديلات اللازمة جزاكم الله خيرا .. جميعا واجزل لكم الثواب1 point
-
1 point
-
ما شاء الله تبارك الرحمن 🙂 جميل جدا تنوع الأفكار في نفس المجال 😊👌 وأنا أيضا لدي برنامج خاص بتصميم الشهادات وتنسيقها وتوليد الشهادات لمجموعة كبيرة من الطلاب أو المتدربين أو المستلمين بشكل عام ، وكذلك يقوم بإرسال الشهادات بالبريد الإلكتروني لكل المستهدفين ( كل متدرب أو طالب يستلم شهادته) ، وأيضا يقوم بحفظ جميع الشهادات على شكل Pdf دفعة واحدة .. 🙂 مع إمكانيات تنسيق النص ( الخطوط والألوان ) بشكل حر ، وإضافة التواقيع ، وتغيير إطارات البرنامج .. إلخ تصميم وتنسيق النصوص بكل أريحية إضافة المتدربين دفعة واحدة بعدد لا محدود معاينة بشكل مباشر اواجهة البرنامج مع خيارات البحث وعرض تقارير وإحصائيات لتحميل البرنامج : تنصيب برنامج صانع الشهادات الإصدار الثالث 3.0.zip1 point
-
الله .. الله .. الله .. ما هذا !! لا يهمني العمل الآن .. يكفيني النص المكتوب .. اخجلتني يارجل .. لحظة تعال ... معرف جديد + خبرة فائقة .. وخطاب يمثل المنتدى .. اني لأشم ريح يوسف1 point
-
نسيت كلمات المرور للدخول عام = 1 مدير= 21 point
-
نعم .. تماما السر في هذه الدالة التي حلت المشكلة الدالة تتحدث وليست بحاجة الى شرح .. حيث تفحص الوقت الحالي هل هو في مساء اليوم ام لا 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
-
1 point
-
هذه تفيد بأن أحد المكتبات ناقصة أو مفقودة أو احد الاكواد يعمل عل 32 بت وانت نقلتها على جهاز يعمل على 64 بت . وللاسف انا كما قلت لك انا حولت الملف فقط والباقي عند الاستاذ @Foksh . هو صاحب الموضوع .................... تحياتي لك .1 point
-
1 point
-
1 point
-
فضلت ابحث فى المنتدى عن موضوع صفحة رئيسية لاستاذ ابو جودي الى ان وجدت الموضوع طيب المرفق الاول على طريقة ابو جودي والمرفق الثانى من هذا الموضوع والذى يخص الاستاذ Foksh قمت بتعديل بسيط واضافة بسيطة جدا قائمة جانبية على طريقة ابو جودى.zip قائمة جانبية على طريقة الاستاذ Foksh.zip1 point
-
استكملت على الكود السابق لاستاذ @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/file1 point
-
وكمعلومة إضافية في مثال الاخ @محمد التميمي يمكنك الحصول على رقم أي قرص غير الـ C بإستبدال الحرف C بالحرف المطلوب SerialNumber = CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber تحياتي1 point
-
وعليكم السلام ورحمة الله وبركاته .. لدي دالة تجلب جميع أرقام الهارد ديسك ( القرص الصلب ) حتى لو كان لديك أكثر من هارد موصول على نفس الكمبيوتر .. 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.zip1 point
-
1 point
-
وعليكم السلام نعم يمكنك فمثلا على افتراض ان هذا الحرف موجود بهذا النطاق (A2:H10) فستكون المعادلة كالتالى : =COUNTA(A2:H10)1 point
-
1 point
-
1 point
-
أحسنت استاذنا الكبير برنامج رائع بارك الله فيك وزادك الله من فضله1 point
-
عودا حميدا استاذنا الكريم ضاحى -أحسنت موضوع فى غاية الأهمية بارك الله فيك وزادك الله من فضله1 point
-
بارك الله فيك وزادك الله من فضله كلها اعمال رائعة1 point
-
وعليكم السلام-تفضل لك ما طلبت بهذه المعادلة =IFERROR(DGET($B$4:$G$12,B4,$C$17:$D$18),"") صفحة 1.xlsx1 point
-
1 point
-
1 point
-
1 point
-
بارك الله فيك وزادك الله من فضله ورحم الله والديك1 point
-
أستاذ Sera ألم تلاحظ ما كتبته لك بكل دقة -قلت لك تم التعديل على الملف السابق لأنى دائما لا اريد اجابات كثيرة فى المشاركة حتى لا تشتت من يدخل مستقبلا على هذه المشاركات فدائما اضع الإجابات المطلوبة فقط واقوم بحذف الباقى1 point
-
اخى ابو اسيل-بعد اذن استاذنا حسين فى اعتقادى ان مشكلتك الأن قد توضحت وتبينت وهى ربما قمت بلصق هذا الملف داخل تسطيب الأوفيس فى جهازك ,ويكمن حل هذه المشكلة فى الأتى : عليك بالدخول الى بارتشن c ثم بعد ذلك الدخول الى Programe Files (X86) ثم الذهاب الى Microsoft Office ثم Office 14 واخيراً عليك بفتح فولدر اسمه XLSTART ستجد هذا الملف به عليك بحذفه1 point
-
بارك الله فيك استاذ مجدى وزادك الله من فضله1 point
-
طبعا لو هناك عدة شروط -بس كان عليك من البداية لعدم اهدار الوقت رفع الملف مدعوم بشرح كافى ووافى عن طلبك1 point
-
وعليكم السلام-يمكنك تجربة هذا كيف اجعل صفحة اكسل تتحول لصفحة نت تفاعلية في موقعي وهنا ايضا كيفية ربط جداول ومخططات إكسل ببرنامج بوربوينت كيف تربط جداول ومخططات إكسل ببرنامج بوربوينت1 point
-
بعد اذن استاذنا ابو اسيل -فقط عليك استخدام هذه المعادلة لتحقيق طلبك =SUMIF($C$2:$C$6,"<>"&"مفصول",$D$2:$D$6)1 point
-
وعليكم السلام الخطأ كان منك انت فى المعادلة-تم ضبط معادلات جميع صفحات الملف الاجازة2.xlsx1 point
-
1 point
-
بارك الله فيك استاذ مجدى وزادك الله من فضله1 point
-
بارك الله فيك استاذ ابو اشرف وهذا من شيم الرجال العطاء دائما بمقدار ما تعلموا وتلقوا من العلم وعدم نكران الجميل لهذا المنتدى دائما وابدا وفى اعلى الدرجات والرقى والسمو لمنتدانا الكريم ولنا جميعا فقد تعلمنا واستفدنا منه كثيرا جزاك الله خير الثواب وزادك الله من فضله ووسع الله فى رزقك ورحم الله والدين واكرم الله واحسن اليك والى ابنائك1 point
-
1 point
-
ألف الف مبروك استاذنا الكريم عن جدارة واستحقاق ان شاء الله ,وأعانهم الله على المسئوليات الجديدة والى التفوق والنجاح دائما1 point
-
وعليكم السلام-تفضل طريقة تصميم فورم بحث عن طريق لست بوكس5.xlsm1 point
-
تفضل لك ما طلبت-طبعا بعد اذن استاذ ابو ايسل الاجازة.xlsx1 point