نجوم المشاركات
Popular Content
Showing content with the highest reputation since 12/01/25 in all areas
-
اعرض الملف بهذه الأداة سيتم تخصيص طريقة عرض وطباعة التقارير {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم أداة أعتقد أن الجميع يحتاجها والحقيقة أن هذه الأداة هي في الأصل عبارة عن أداتين كلا منها يؤدي وظيفة مستقلة لكنهما يتكاملان مع بعضهما لتقومان بجميع الوظائف المرتبطة بتخصيص طرق عرض وطباعة التقارير من حيث تخصيص حجم الورق وإتجاه الورقة ونوع الطابعة ومربع حوار الطباعة .... إلخ وظيفة الأداة الأولى - إنشاء قائمة مختصرة لطباعة التقارير - إظهار مربع حوار مخصص للطباعة وظيفة الأداة الثانية - إنشاء مايشبه القوالب الخاصة بمعاينة وطباعة التقارير بحيث يتم ربط كل تقرير بحجم الورق والطابعة وطريقة العرض الخاصة به - سيتم الإستغناء عن أمر معاينة وطباعة التقارير فبدلاً عن هذه الصيغة DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, OpenArgs سيتم إستخدام هذا الصيغة MyOpenReport "ReportName", ViewMode, ReportTypeID, strCriteria, OpenArgs, NoMargins حيث نلاحظ أن الصيغتين لها نفس المعلمات مع إضافة معلنتين إضافينين هما - ReportTypeID وتمثل رقم السجل الخاص بالقالب في جدول القوالب - NoMargins معلمة خاصة بتجاهل الهوامش (سيتم توضيح عملها ضمن المثال التوضيحي) أخيراً مرفق لكم مجلد يحتوي على مايلي 1- مثال عملي شامل يوضح عمل الأداتين معاً 2- مجلد فرعي خاص بكل أداة يشمل مثال توضيحي لطريقة الإستفادة من الأداة وقالب يحتوي على الكائنات الأساسية لكل أداة في الأخير أتمنى من الجميع تجربة الأداة وإبداء إي ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 12/06/25 الاقسام قسم الأكسيس3 points
-
السلام عليكم بفضل الله تمكنت من ايجاد طريقة ممتازة ومحكمة للتعامل مع توقيع الحضور والانصراف للفترة المسائية الممتدة الى ما بعد منتصف الليل ودخول يوم جديد انتظروني بعض الوقت كي اجري تجاربي النهائية على العمليات وعلى المخرجات .3 points
-
وعليكم السلام ورحمة الله وبركاته .. أخي بلال أنت عضو فضي ( نتمنى لك المزيد من الدرجات ) ، وما زلت - متأسفاً منك - لا تهتم لأي ملاحظات يتم طرحها خلال المشاركات أو قوانين المنتدى . العنوان :- نكتشف أن مقصده ومعناه مختلف عما تريده أنت . الشرح :- تبخل على أخوانك في المنتدى بالشرح وتكتفي بكلمات لا تتعدى أصابع اليد . إرفاق ملف :- برأيك هل الصورة و 8 كلمات كافيات لتوصيل ما تفكر به لمن يقرأ الموضوع دون ارفاق ملف !!! شكراً لك على رحابة صدرك مراراً وتكراراً في تقبل الملاحظات التي ليس لها هدف إلا أن تحظى بطريق سليم لتوصيل معلومتك2 points
-
تفضل Sub ToggleColumns() Dim action As String Dim colsInput As String Dim colArray() As String Dim colItem As Variant Dim answer As VbMsgBoxResult Dim invalidInput As Boolean ' مربع حوار لتحديد الإجراء (إخفاء أو إظهار) answer = MsgBox("هل تريد إخفاء الأعمدة؟" & vbCrLf & vbCrLf & "اضغط 'Yes' للإخفاء، 'No' للإظهار.", vbYesNoCancel + vbQuestion, "تحديد الإجراء") If answer = vbCancel Then Exit Sub ' الخروج إذا ضغط المستخدم على "Cancel" ElseIf answer = vbYes Then action = "إخفاء" Else action = "إظهار" End If ' مربع إدخال لطلب الأعمدة من المستخدم colsInput = InputBox("الرجاء إدخال الأعمدة التي تريد " & action & "ها." & vbCrLf & vbCrLf & "أمثلة:" & vbCrLf & "عمود واحد: B" & vbCrLf & "أعمدة متجاورة: B:D" & vbCrLf & "أعمدة متفرقة: B,D,F", "تحديد الأعمدة") ' الخروج إذا كان الإدخال فارغًا If colsInput = "" Then Exit Sub ' إزالة أي مسافات زائدة وتقسيم الإدخال عند الفاصلة colArray = Split(Replace(colsInput, " ", ""), ",") invalidInput = False On Error Resume Next ' تجاهل الأخطاء مؤقتًا للتحقق من صحة الإدخال ' المرور على كل عنصر أدخله المستخدم For Each colItem In colArray If colItem <> "" Then ' التحقق من أن كل جزء من الإدخال يمثل نطاقًا صالحًا If Columns(colItem).Count = 0 Then invalidInput = True Exit For End If End If Next colItem On Error GoTo 0 ' إعادة تفعيل معالجة الأخطاء ' إذا كان هناك إدخال غير صالح، أظهر رسالة خطأ If invalidInput Then MsgBox "الإدخال '" & colItem & "' غير صالح. الرجاء التأكد من إدخال أسماء أعمدة صحيحة.", vbCritical, "خطأ في الإدخال" Exit Sub End If ' تنفيذ الإجراء على كل عمود أو نطاق For Each colItem In colArray If colItem <> "" Then If action = "إخفاء" Then Columns(colItem).Hidden = True Else Columns(colItem).Hidden = False End If End If Next colItem MsgBox "تم " & action & " الأعمدة بنجاح!", vbInformation, "اكتمل الإجراء" End Sub2 points
-
السلام عليكم ورحمة الله جرب تطبيق هذا التنسيق على التاريخ لعله يفي بالغرض : [$-ar-DZ,201]dddd yyyy/mm/dd2 points
-
بعد إذن مهندسنا الغالي .. إذا كان ملفك بصيغة Accde فلن تصل للأكواد أبداً .2 points
-
2 points
-
تفضل التعديل التالي .. جربه وأخبرني بالنتيجة . 123452025.zip2 points
-
بارك الله فيكم وينكم من زمان هذا الموضوع طرحته اليوم بعد وصولي لنتيجة صحيحة مرضية بل محكمة هذا الوصول سبقه موضوع تجاوزت المشاركات فيه الــــ 100 لن اتنازل عن اكوادي التي صنعتها .. مادام العمل سليم .. لاني تعبت من التجربة والتكرار والبحث عن الطريقة السليمة ..... ولكن ستبقى هذه الأكواد التي تفضلتم بها مرجعا مهما لي ولغيري لمن اراد بناء برنامج حضور كي يستنير بها حفظكم الله من كل سوء وزادكم علما ورفعة2 points
-
رداً على هذه النقطة ، وحيث أنه سبق تنفيذها سابقاً .. جرب المرفق نفسه بعد التعديل بحيث سيتم فقط عرض الخطوط العربية ( أو التي تتعامل مع الكاركتر العربي ) في الكومبوبوكس . مع إضافة الفرز التصاعدي للأسماء :- Db3.zip2 points
-
ما شاء الله تبارك الرحمن 🙂 جميل جدا تنوع الأفكار في نفس المجال 😊👌 وأنا أيضا لدي برنامج خاص بتصميم الشهادات وتنسيقها وتوليد الشهادات لمجموعة كبيرة من الطلاب أو المتدربين أو المستلمين بشكل عام ، وكذلك يقوم بإرسال الشهادات بالبريد الإلكتروني لكل المستهدفين ( كل متدرب أو طالب يستلم شهادته) ، وأيضا يقوم بحفظ جميع الشهادات على شكل Pdf دفعة واحدة .. 🙂 مع إمكانيات تنسيق النص ( الخطوط والألوان ) بشكل حر ، وإضافة التواقيع ، وتغيير إطارات البرنامج .. إلخ تصميم وتنسيق النصوص بكل أريحية إضافة المتدربين دفعة واحدة بعدد لا محدود معاينة بشكل مباشر اواجهة البرنامج مع خيارات البحث وعرض تقارير وإحصائيات لتحميل البرنامج : تنصيب برنامج صانع الشهادات الإصدار الثالث 3.0.zip2 points
-
وانا عند وعدى هذه مشاركتى 1- بعد فك الضغط انقل الصور الى المجلد : TempResources 2- قم بفتح قاعدة البيانات 3- فى المستقبل فقط اضف اى صور الى المجلد : TempResources فى جزء لم انته منه بعد حفظ الاعدادت كقوالب او حفظ الاعدادت لكل شهادة ان اردنا ان تكون كقاعدة بيانات للاحتفاظ بالبيانت وليس مجرد موديولر لعمل الشهادات ويتبقى الجزء الاخير انا افكر فى الطباعة من النموذج الفرعى بشكل مباشر بدون اى تقارير الى لقاء قريب بعد ان اعرف ارائكم فى التطبيق والافكار البسيطة المتواضعة2 points
-
2 points
-
بل اعجبني المشهد .. سلمت اناملك يا سلام .. زاد حماسي .. احب المفاجآت في مثل هذه المواضيع2 points
-
2 points
-
فضلت ابحث فى المنتدى عن موضوع صفحة رئيسية لاستاذ ابو جودي الى ان وجدت الموضوع طيب المرفق الاول على طريقة ابو جودي والمرفق الثانى من هذا الموضوع والذى يخص الاستاذ Foksh قمت بتعديل بسيط واضافة بسيطة جدا قائمة جانبية على طريقة ابو جودى.zip قائمة جانبية على طريقة الاستاذ Foksh.zip2 points
-
2 points
-
مداخلة صغيره كانت هذه فكرة استاذي @ابو جودي لانه كان من مناصرين فكرة (كل شئ يكون اوفلاين) وقد نجح هو فى تنفيذ هذا الامر مع التشفير بحيث رمز التفعيل يحمل المده وبصمة البرنامج وتاريخ البداية وتاريخ النهاية ويتعامل مع تمديد الفترات بالاضافة للفتره الحالية بشكل تلقائى وتجنب تكرار استخدام نفس التفعيل مره اخري وكان الموضوع معقد شوي وكان امامي الطريقين ووجدت ان ايسرهم هو الطريق الثاني (اونلاين) لانه جنبني تعقيد الاكواد الى حد ما لان التفعيل اون لاين وخاصه اذا كان لديك دومين مدفوع او دومين مستقر <وهي هنا ممكن استخدام تطبيقات مختلفه لعمل سيرفر محلي "لم اجربها لاني فضلت السيرفرات الخارجيه لانها اكثر ضمان للاتصال"> فالتفعيل اون لاين يكفي فقط كود فك التشفير (اذا كانت مشفر بيانات التفعيل) وكود التحقق من مطابقة بصمة التفعيل مع التفعيل الحالي وبصمة الجهاز وقد كان هذا الامر بمساعدة اخي الحبيب @Foksh وتوجيهي لاصل الفكره للطرق المجانيه وعلى الرغم من تناقض كلامي التالي فى رغبتي فى استخدام طريقة معلمي @ابو جودي لانها فيها شغل عالي واكثر فاعليه واضمن لعدم حاجتها للانترنت وبخلاف انها تشعرك انك تقوم بشئ كبير وايضا توسع مداركك لفهم الامور المتعلقه بالحمايه والنظر فى طرق التلاعب المختلفه واغلاق هذه الثغرات الا اني فى الاخير استخدمت الاون لاين لعدة امور مختلفه ومستقبلية ومنها وهي اهمها (امكانية الغاء الاشتراك)1 point
-
سلمت يمينك استاذ @kkhalifa1960 ممنونه منك جعلها ربي في ميزان حسناتك1 point
-
اضافة الى ما تفضل به اخي @Foksh آمل ان تأخذ هذه التوجيهات والملاحظات بصدر رحب .. لأنها تصب في صالحك اولا : هذا المنتدى تعليمي برمجي يلجأ اليه الأعضاء عندما يواجهون مشكلة في تنفيذ فكرة ما برمجية ايضا هو منتدى تعليمي لمن اراد التعلم و زيادة خبرته في كيفية انشاء مشاريع اكسس اذا الطالب الحريص يبدأ من اول درجات السلم ويعمل بجد حتى يرى نفسه متقنا للصنعة مشاريع اكسس تبدأ من : 1- الجداول // دراستها والطرق الصحيحة العلمية لإنشائها قبل الشروع في اعداد الجداول يجب تحليل بيانات المشروع وتصور ابعاده( المدخلات بانواعها / المخرجات بانواعها ) عند الاحاطة بابعاد المشروع (على اعتبار انه يعمل على الارض وعلى الورق) يمكن تحديد الجداول المطلوب انشاءها هذه الخطوات الاولية تعتبر اساس ومخ المشروع .. اذا تم اعداده بطرق سليمة فقد انهيت 75% الى 80% من القاعدة الأساسية للمشروع وحينها سيصبح استكمال بقية المشروع ممتعا للمبرمج ____________________________ لذا ان كنت جادا في التعلم فاعرض موضوعك بطريقة اخرى وعلى مراحل كثيرة : اول مرحلة : تفتح موضوعا جديدا تعرض فيه فكرة البرنامج وبتفاصيل دقيقة وتطلب رأي الخبراء عن الجداول الاساسية التي يجب عملها حين تعمل هذه الجداول حسب التوجيه تعرضها مرة اخرى للتصحيح والمتابعة استمر بعملك هذا خطوة خطوة .. بعد فترة قصيرة ستجد نفسك على المسار الصحيح .. وتسعى للاحتراف1 point
-
وعليكم السلام ورحمة الله وبركاته ليست هناك اي مشكلة ComboBox المزايا: يعرض قائمة جاهزة من القيم (مثل التواريخ الفريدة من العمود B). يمنع الأخطاء الإملائية أو إدخال صيغة خاطئة للتاريخ. المستخدم يختار فقط من القائمة → أسرع وأدق. عملي جدًا إذا كانت البيانات محدودة أو متكررة (تواريخ، أسماء، أصناف) TextBox عرضة للأخطاء (مثلاً كتابة التاريخ بصيغة خاطئة). يحتاج تحقق إضافي بالكود للتأكد أن القيمة صحيحة الملف المرفق به الخياران التكستبكس والكمبوبكس لك الخيار ما يتاسب عملك تحياتي ليست بوكس2.xlsm1 point
-
اخي الكريم ، وعليكم السلام ورحمة الله وبركاته ... ارجو منك الإهتمام بتنسيق موضوعك ليسهل قراءته لمن يمر به ويحاول مساعدتك .. المطلوب غير واضح حتى من خلال الصور. ثم انك تستخدم مسميات عربية + من عدة مقاطع ..... إلخ ، وهذا لا يشجع البعض على المساهمة في المساعدة ، لأن التعامل مع المسميات العربية للعناصر والمكونات له تبعات مزعجة ومتعبة في الحلول . شكراً لك1 point
-
حسب التجربة المشكلة بالمنتدى شكرا لمتابعتك واهتمامك الافاضل حسونة حسين Foksh1 point
-
السلام عليكم ورحمة الله وبركاته تم استبدال TextBox1 بـ COMOBOX1 يتم فيه تجميع التواريخ من العمود B التواريخ في العمود B بالنظام الفرنسى جعلتها بالنظام dd/mm/yyyy عند التعديل استخدم زر خفظ التعديل اليك الملف ليست بوكس1.xlsm1 point
-
1 point
-
1 point
-
الكود في مشاركتي الاخيرة وافي وكافي ... فقط تضاف هذه الجملة عند اغلاق البرنامج لمن اراد حذف الملف FilePath = CurrentProject.Path & "\" & "soccer.png" Result = Dir(FilePath) If Result <> "" Then Kill FilePath End if وهذا يعني انك لم تفهم عني ما اريد راجع نقاشي مع اخونا فادي1 point
-
الدالة تصبح Function RelinkIsIco() As String Dim rs As DAO.Recordset Dim rsA As DAO.Recordset2 Dim fPath As String Dim tempPath As String ' فتح السجل Set rs = CurrentDb.OpenRecordset("SELECT progIcon FROM tblEnDc") If Not (rs.EOF And rs.BOF) Then Set rsA = rs.Fields("progIcon").Value ' Recordset خاص بالمرفقات If rsA.RecordCount > 0 Then rsA.MoveFirst ' تحديد مسار مؤقت في Windows Temp tempPath = Environ$("TEMP") & "\" & rsA!FileName ' استخراج الملف من المرفقات إلى المسار المؤقت rsA!FileData.SaveToFile tempPath RelinkIsIco = tempPath End If rsA.Close End If rs.Close Set rs = Nothing End Function واستدعاؤها Private Sub cmdShar_Click() Me.img1.Picture = RelinkIsIco() End Sub1 point
-
اعتذر عن التأخير .. تفضل هذا الملف المرفق ، حيث يحتوي الدالة البسيطة :- Public Sub SetTableHiddenState(ByVal strTableName As String, ByVal hide As Boolean) On Error GoTo ErrHandler Dim db As DAO.Database Dim tdf As DAO.TableDef Set db = CurrentDb db.TableDefs.Refresh Dim t As DAO.TableDef Dim found As Boolean: found = False For Each t In db.TableDefs If t.Name = strTableName Then found = True Exit For End If Next t If Not found Then MsgBox "حدثت مشكلة أثناء تأمين المكونات", vbExclamation + vbMsgBoxRight, "" Exit Sub End If Set tdf = db.TableDefs(strTableName) If hide = True Then tdf.Attributes = tdf.Attributes Or dbSystemObject Or dbHiddenObject Else tdf.Attributes = tdf.Attributes And Not (dbSystemObject Or dbHiddenObject) End If Application.RefreshDatabaseWindow Exit Sub ErrHandler: MsgBox "حدث خطأ أثناء تأمين مكونات البرنامج" & Err.Description, vbCritical + vbMsgBoxRight, "خطأ" End Sub * الدالة جزء من مشروع سابق . الملف المرفق :- Hide TBL.accdb1 point
-
1 point
-
هذا حسابي الاخر من العمل اشكرك معلمنا الغالي @Foksh تم حل المشكلة لما ارجع ع البيت مساءا سأضع اجابة صحيحه1 point
-
1 point
-
1 point
-
الله .. الله .. الله .. ما هذا !! لا يهمني العمل الآن .. يكفيني النص المكتوب .. اخجلتني يارجل .. لحظة تعال ... معرف جديد + خبرة فائقة .. وخطاب يمثل المنتدى .. اني لأشم ريح يوسف1 point
-
أفتح البرنامج عن طريق الضغط على زر الشفت Shift لكي تصل إلى الأكواد .. وبعدها قم بتحويل الأكواد وأعد تشغيل البرنامج 🙂1 point
-
االرجاء الانتظار الى الانتهاء من باقى التعديلات CertificateCustomization.zip1 point
-
هذه تفيد بأن أحد المكتبات ناقصة أو مفقودة أو احد الاكواد يعمل عل 32 بت وانت نقلتها على جهاز يعمل على 64 بت . وللاسف انا كما قلت لك انا حولت الملف فقط والباقي عند الاستاذ @Foksh . هو صاحب الموضوع .................... تحياتي لك .1 point
-
1 point
-
وسعة المرفق تصحيح بسيط في تكبير حجم نموذج واضافة 3 انماط تفاعلية في الامكان التوسع التفريع بنفس المرفق انسخ النموذج لاي نمط تحت الزر مع تعريف الحجم اعلى النموذج السابق للتوسيع النموذج سيضم تفريع 3 و4 وتكرار لتشعب التفريعات في الزر مثال الى 9 و10 في زر واحد من قائمة الجانبية فكرة بسيطة واذا حاب نغير وتحدد الالوان مع تنزيل ايكون في خلفية الزر بدل من حفظ الصور في الجدول واستعمال الصور من ملفات خارجية ومن غير تحديث استعلام ولا وميض ولا ترميش 😇 اشرايك استاذ @Foksh عندك كود لتبسيط التفريعات في الزر مرفق اسفل الفيديو تحميل المرفق https://www.mediafire.com/file/jrahtllbz0xmgdj/Menu+Navigations_V1.rar/file1 point
-
نعم هذا هو المفترض في جميع الانظمة المتعارف عليها .. التوقيع الأول = حضور سواء جاء اول الوقت او آخره الأصل ان البرنامج يجب ان يعرفهم واحدا واحدا ، ويعرف اوقاتهم المتاح لهم التوقيع فيها . انا صنعت ذلك باحكام .. ولكن طلب الاخ محمد فيما لو تجاوز الوقت اليوم الحالي الى ما بعد منتصف الليل ودخول يوم جديد هنا المعيار الاساسي يكون حجر عثرة ويجب ازالته والبحث عن بديل .. وهنا جاءت الثغرات ...................... بعد كل المحاولات اتضح لي انه من اجل الضبط المحكم ( ما يخرش المية ) يجب اضافة فترة جديدة تخص اليوم التالي هنا يصبح لدينا ثلاث فترات على الأقل .. ويمكن زيادة عدد الفترات عن 3 لمن اراد .. وكل ذلك خلال 24 ساعة تبدأ من الساعة 12:01 صباحا وتنتهي في 11:59 مساء .. حسب تقسيم كل فترة بداية/نهاية ان وافقني على هذا المقترح سوف اقوم باعداده سواء على طريقة تصميم حقلين في الجدول حضور/انصراف //// او طريقة الحقل الواحد والمعرف1 point
-
بالفعل مثل ما تفضل الاستاذ : Foksh المشكلة دي مش من Access نفسه قد ما هي من تعريف الطابعة + إعدادات الصفحة المختلفين بين الجهازين وخصوصا مع الهوامش 0 وصورة كاملة صفحة ليه التصميم بيخرب بين الجهازين؟ كل تقرير في Access بيتضبط على خصائص الطابعة الافتراضية وقت التصميم لذلك أي اختلاف في تعريف الطابعة أو نوع الورق/الهوامش يخلي التقرير يعيد حساب المقاسات وتمركز الصورة والكنترولز أغلب تعريفات الطابعات أصلا لا تسمح بهوامش 0 حقيقية فتجبر هامش أدنى (مثلا 3–5 مم من كل جانب) وده اللي يخلي الصورة تتصغر أو تتزحزح ويظهر كأن فيه هوامش رغم إنها 0 في التقرير على ويندوز 7 غالبا تعريف الطابعة مختلف أو إعدادات الـ Page Setup غير اللي على ويندوز 10 ماذا تفعل على كل جهاز افتح التقرير في معاينة قبل الطباعةثم اختر إعداد الصفحة Page Setup تأكد أن: حجم الورقة A4 الهوامش Manual وليست إعدادات خاصة بالطابعة (لو 0 عمل مشاكل استخدم 0.25 سم مثلا واضبط حجم الصورة بحيث تملأ المساحة داخل الهامش) ثبت نفس تعريف الطابعة ونفس الإعداد كـ Default على الجهازين قدر الإمكان Access يعتمد على تعريف الطابعة في حساب عرض وارتفاع التقرير لو حابب يمكن ضبط التقرير بحيث: حجم التقرير نفسه يساوي A4 ناقص أقل هامش تدعمه الطابعة (مثلا عرض 19.7 سم بدل 21 سم) والصورة تمتد داخل هذا المقاس كده هتاخد شكل فول بليد تقريبا على كل الأجهزة بدون ما يتلخبط التخطيط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
-
وعليكم السلام تفضل هذا الملف ربما يفيدك ويكون به المطلوب ان شاء الله وبالتوفيق المحطة.xlsm1 point
-
تفضل استاذ @RAIANESAMI طلبك حسب ما فهمت بالمرفق . ووافني بالرد . DDFinding Differences.rar1 point
-
1 point
-
بعد اذن استاذنا ابو اسيل -فقط عليك استخدام هذه المعادلة لتحقيق طلبك =SUMIF($C$2:$C$6,"<>"&"مفصول",$D$2:$D$6)1 point
-
بارك الله فيك استاذ مجدى وزادك الله من فضله1 point
-
1 point
-
1 point