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

Foksh

أوفيسنا
  • Posts

    4015
  • تاريخ الانضمام

  • Days Won

    168

كل منشورات العضو Foksh

  1. فعلاً .. معظم المارين من هنا قد لا يكون لهم اهتمام بهذا الموضوع ومحتواه ، ولكن على الأقل ترك أثر طيب ولو بسيط ، قد يشجع على الإستمرار .. وللأسف ملاحظتي أن هذا ما يحدث فعلاً في بعض المواضيع 😯
  2. أخي الكريم ،، تحت كل إجابة يوجد هذا الزر ، وأعلم أنك عن غير قصد تضغط على الزر بهدف أنه لصاحب الإجابة ، ولكن فكرة الزر هي تعزيز الثقة بين أعضاء المنتدى بتشجيعهم وشكرهم بطريقة ترفع من مستواهم التقييمي ( رغم أنه ليس مقياساً على خبرتهم بكل تأكيد ) . أيضاً كي يتم إعلام من يقرأ ويتابع أن هذا الموضوع قد تم حله ، ولله الحمد . لذا ودون إطالتي .. مستقبلاً تحت كل إجابة في مواضيعك التي تنشرها ، ستجد الزر وعند اختياره ستجد أن المشاركة التي اخترتها تم إحاظتها بمربع أخضر ليدل على أن هذه المشاركة هي الحل الذي اخترته كصاحب الموضوع . مقتبس من قواعد المنتدى :-
  3. العضو الكريم يجب الالتزام بقواعد المشاركة وحيث أنه تكرر هذا التنبيه ، يجب أن يتم منح اختيار الإجابة بـ لصاحب الإجابة ، وليس لصاحب الموضوع .. تم نقل الإجابة الى صاحب الحل شكراً لتعاونك
  4. ولا يهمك ،، الأمر مختلف قليلاً فعلاً ، ولكن ليس بالتعقيد الذي تعتقده للإنتقال لأول قيمة في الليست بوكس :- If Me.Msaneed_List.ListCount > 0 Then Me.Msaneed_List.Value = Me.Msaneed_List.ItemData(0) End If وللإنتقال لآخر قيمة في الليست بوكس :- If Me.Msaneed_List.ListCount > 0 Then Me.Msaneed_List.Value = Me.Msaneed_List.ItemData(Me.Msaneed_List.ListCount - 1) End If
  5. وعليكم السلام ورحمة الله وبركاته ،، ما شاء الله عليك ، أبدعت في تحوير الأفكار لما يتناسب مع مطلبك بما انك ستقوم بتضمين الرقم الفريد في الأكواد ، بدلاً من التسمية للزر . جرب هذا التعديل على المديول ليصبح أبسط قليلاً .. Public Sub SelectByMSNO(frm As Form, listName As String, msno As Long) Dim lb As ListBox Dim i As Long Set lb = frm.Controls(listName) If lb.ListCount = 0 Then MsgBox "القائمة فارغة", vbExclamation + vbMsgBoxRight, "" Exit Sub End If For i = 0 To lb.ListCount - 1 If Nz(lb.Column(0, i), 0) = msno Then lb.Value = lb.ItemData(i) Exit Sub End If Next i MsgBox msno & " :لم يتم العثور على السجل", vbInformation + vbMsgBoxRight, "" End Sub وبنفس الأسلوب ، سيتم الاستدعاء بتمرير النموذج الحالي ، واسم الليست بوكس ، والرقم الفريد فقط ( كما فعلت في فكرتك وتعديلك الجميل SelectByMSNO Me, "Msaneed_List", 786 وما شاء الله عليك ، لن تحتاج لملف مرفق
  6. وعليكم السلام ورحمة الله وبركاته .. بداية لي عدة استفسارات مهمة :- هل يوجد في الليست بوكس قيم قد تتشابه ، يعني لنفترض جدلاً هل القيمة "ابن عباس" قد تتكرر بأكثر من تسميةمختلفة ؟؟؟ الزر مصدر تسميته هل هو متغير ؟ على العموم ، سأقدم لك فكرتين ,, الأولى بسيطة وتتعامل مع السجلات البسيطة إلى حد ما ( بطيئة مع السجلات الكثيرة جداً ) Private Sub Goms5_Click() Dim i As Long Dim searchText As String Dim colIndex As Integer searchText = Me.Goms5.Caption colIndex = 1 For i = 0 To Me.Msaneed_List.ListCount - 1 Me.Msaneed_List.Selected(i) = False Next i For i = 0 To Me.Msaneed_List.ListCount - 1 If InStr(1, Me.Msaneed_List.Column(colIndex, i), searchText, vbTextCompare) > 0 Then Me.Msaneed_List.Selected(i) = True Exit For End If Next i End Sub الثانية تعتمد على اسلوبين + لو كان هناك أكثر من قيمة مطابقة يتم التنقل بينها عند كل نقرة على الزر .. Private Sub Goms5_Click() Static lastIndex As Long Dim s As String, i As Long Dim matches As Collection Set matches = New Collection s = Trim(Nz(Me.Goms5.Caption, "")) If s = "" Then Exit Sub With Me.Msaneed_List For i = 0 To .ListCount - 1 If InStr(1, Nz(.Column(1, i), ""), s, vbTextCompare) > 0 Then matches.Add i End If Next i If matches.Count = 0 Then MsgBox " : لم يتم العثور على" & s, vbInformation + vbMsgBoxRight, "" Exit Sub End If Dim pos As Long pos = 1 If lastIndex > 0 Then For i = 1 To matches.Count If matches(i) = lastIndex Then pos = IIf(i = matches.Count, 1, i + 1) Exit For End If Next i End If .Value = .ItemData(matches(pos)) lastIndex = matches(pos) End With End Sub ويمكن الإستفادة من الفكرة في أكثر من نموذج أو أزرار ضمن نفس النموذج بجعلها دالة عامة يتم استدعائها من خلال تحديد اسم الزر واسم الليست بوكس . بحيث في مديول منفصل ، نستخدم الدالة التالية :- Option Compare Database Option Explicit Private dictLastIndex As Object Public Sub SelectNextMatch(frm As Form, listName As String, searchText As String) Dim lb As ListBox Dim i As Long Dim matches As Collection Dim key As String Dim pos As Long, lastIndex As Long Set lb = frm.Controls(listName) searchText = Trim(Nz(searchText, "")) If searchText = "" Then Exit Sub If dictLastIndex Is Nothing Then Set dictLastIndex = CreateObject("Scripting.Dictionary") End If key = frm.Name & "|" & listName & "|" & searchText Set matches = New Collection For i = 0 To lb.ListCount - 1 If InStr(1, Nz(lb.Column(1, i), ""), searchText, vbTextCompare) > 0 Then matches.Add i End If Next i If matches.Count = 0 Then MsgBox " : لم يتم العثور على" & searchText, vbInformation + vbMsgBoxRight, "" Exit Sub End If pos = 1 If dictLastIndex.Exists(key) Then lastIndex = dictLastIndex(key) For i = 1 To matches.Count If matches(i) = lastIndex Then pos = IIf(i = matches.Count, 1, i + 1) Exit For End If Next i End If ونستدعيها في الزرين على سبيل المثال ضمن نفس النموذج :- Private Sub Goms5_Click() SelectNextMatch Me, "Msaneed_List", Me.Goms5.Caption End Sub Private Sub Goms10_Click() SelectNextMatch Me, "Msaneed_List", Me.Goms10.Caption End Sub الملف يحتوي على الأفكار الثلاثة :- LIST.zip
  7. لمحة عن الإضافات التي تم تطويرها وتحديثها في النسخة الأخيرة .. والنشر خلال فترة قصيرة جداً ( بسبب الإنشغال في مشاريع أخرى )
  8. بارك الله ، وجزاك الله كل الخير
  9. وعليكم السلام ورحمة الله وبركاته .. بدايةً أهلاً وسهلاً بك في عالمنا المتواضع في منتديات أوفيسنا .. أدعوك وكي تحصل على إجابة سريعة وتحقق هدفك وتحل مشكلتك وتجيب عن سؤالك دائماً ، اعتمد على ما يلي :- العنوان يعبر عن عنوان الكتاب ، والشرح الذي ستكتبه سيكون بمثابة محتوى كتابك . حاول أن يكون شرحك أكثر وضوحاً من مجرد سطر واحد في العنوان ( فيما بعد ) . في ملفك المرفق هل هدفك هو فصل أسماء كل طلاب الفصل ذاته في شيت منفصل ؟ إذا كان غير ذلك ، فلا تحرمنا من اسلوبك الراقي في الشرح والتوضيح 🤗😇
  10. السلام عليكم ورحمة الله وبركاته .. يبدو أن الأستاذ @عبدالله بشير عبدالله ، مستهدف في هذه النقطة عند اختيار الإجابة من الأعضاء الأعزاء .. 😅 يسعدنا أنك حصلت على إجابتك الشافية التي حققت طلبك ، ولذا . نرجو منك تصويب إختيارك للإجابة الصحيحة وهي للأستاذ @عبدالله بشير عبدالله مشكوراً على جهوده والإخوة والأساتذة دون استثناء 💐
  11. وعليكم السلام ورحمة الله وبركاته ,, أهلاً وسهلاً بك أخي الكريم وشكراً لك على هذه المشاركة الجميلة ,, علّ أحد الأخوة بأن يزودنا بتجربته ( ممن لديهم ماسح ضوئي )
  12. وإياكم أخي @moho58 .. ولكم مثلما دعيتم بظهر الغيب وأكثر ..
  13. في أصل الكود لديك لا يقوم على استخدام الملف مرتين ويقوم بالإستبدال ، ومنطقياً غير مسموح بحفظ ملفن لهم نفس الاسم والامتداد في مكان واحد ، لذا سيتم تمييز الجديد برقم على سبيل المثال . اذا هذا يناسبك أخبرني . سنتوجه بفكرة وهي انه عندما تختار لاحقاً ملفات لها نفس الاسم في المجلد سيخبرك انه ملفات قديمة بنفس الاسم هل ترغب بإضافتها أو تخطيها ( ما رأيك ؟) وهذا أفضل فعلاً بأن تقوم باستعراض المجلد وليس الملفات كما كانت في فكرتك السابقة .. جرب التعديل التالي لما سبق توضيحة .. baseA1.zip
  14. وعليكم السلام ورحمة الله وبركاته .. جرب هذه الفكرة المتواضعة baseA.zip
  15. وعليكم السلام ورحمة الله وبركاته .. هل قمت بتمكين المحتوى ( مركز التوثيق ) وتفعيل الماكرو في خيارات آكسيس ؟؟؟؟ ثانياً ، انقر فوق ملف آكسيس ( مشروعك ) بالزر الأيمن للفأرة ، واختر خصائص ، وقم بالتعليم على خيار فك الحظر Unblock ( إن كان موجوداً ) طبعاً هذه المقترحات بالإفتراض إن لغة الترميز Unicode مضبوطة على اللغة العربية لبلدك
  16. وعليكم السلام ورحمة الله وبركاته .. اذا كان الليست بوكس أو الكومبوبوكس غير منضم ، فأعتقد انه لا يمكنك ذلك
  17. الأفضل أن يكون موضوعك في قسم الإكسل ، سيتم نقل الموضوع
  18. وعليكم السلام ورحمة الله وبركاته .. كتجربة ولن تخسر شيئاً منها ، ضع جميع ملفاتك في التي تعاني من مشكلتها في مجلد واحد ولنفرض على سطح المكتب . سأفترض ان لديك ويندوز 10 ، ولذا في شريط مسار وعنوان المجلد ، اكتب CMD ، للدخول الى موجه الأوامر لنفس المسار الحالي الذي يحتوي ملفاتك . بعد ان تم فتح موجه الأوامر ، اكتب الجملة التالية :- attrib -r -s *.* وسيتم إزالة الخصائص Read-only و خاصية System كملف نظام . أو للإحتياط ، جرب تابع خطوات الفيديو القصير التالي .. جرب وأخبرنا بالنتيجة ..
  19. يسعدنا أنك حصلت على إجابتك الشافية التي حققت طلبك ، ولذا . نرجو منك تصويب إختيارك للإجابة الصحيحة وهي للأستاذ @عبدالله بشير عبدالله مشكوراً على جهوده والإخوة والأساتذة دون استثناء 💐
  20. ولا يهمك اخي الكريم 😇
  21. يسعدنا أنك حصلت على إجابتك الشافية التي حققت طلبك ، ولذا . نرجو منك تصويب إختيارك للإجابة الصحيحة وهي للأستاذ @عبدالله بشير عبدالله مشكوراً على جهوده والإخوة والأساتذة دون استثناء 💐 شكراً لاهتمامك ورحابة صدرك 😇
  22. إثراؤك للموضوع أثار إعجابي ، وأشكرك نيابة عن صاحب الموضوع لما أثريت
  23. فعلاً كلامك صحيح 100% ، وانا اعتمدت على ان الفكرة لن يكون بها تكرار - بسبب بنية الجدول - ، ففي القطعة الواحدة لن يكون لها مثلاً = كوي مكررة ، وهذا ما دعاني لعدم التطرق لفكرة دمج التكرار
×
×
  • اضف...

Important Information