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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      6

    • Posts

      9,814


  2. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      2

    • Posts

      11,630


  3. قصي

    قصي

    05 عضو ذهبي


    • نقاط

      2

    • Posts

      1,337


  4. ابراهيم الحداد

    • نقاط

      2

    • Posts

      1,252


Popular Content

Showing content with the highest reputation on 14 أبر, 2019 in all areas

  1. السلام عليكم ورحمة الله وبركاته الاستعلام يُعتبر العمود الفقري لقواعد البيانات ، وكلما زادت معرفتنا به ، كلما يصبح البرنامج افضل واسرع 🙂 البحث/التصفية في الاستعلام من الطرق المهمة ، ولكن وللأسف الشديد ، ارى الكثير من المبرمجين لا يعرفون الطريقة الصحيحة في عملها ، فالطريقة الغير صحيحة قد تعطيك النتائج ولكن على حساب وقت تنفيذ الاستعلام 😞 الامثله هنا تقوم على انه يوجد لدينا نموذج اسمه frm_Main ، وبه حقل الاسم fName ، وحقل التاريخ:من Date_From ، وحقل التاريخ:الى Date_To ، والحقول في الاستعلام ، حقل الاسم fName ، وحقل التاريخ DateX . 1. اذا اردنا البحث عن اسم كامل (وليس جزء من اسم) ، فيجب ان يكون المعيار في الاستعلام: [forms]![frm_Main]![fName] 2. واذا كان حقل الاسم فارغا في النموذج ، ونريد ان نرى جميع الاسماء ، فالمعيار يصبح: iif(len([forms]![frm_Main]![fName] & '')=0,[fName],[forms]![frm_Main]![fName]) والشرح للتأكد بأن الحقل فارغ في النموذج، بدل ان نكتب IsNull([forms]![frm_Main]![fName]) or [forms]![frm_Main]![fName]=0 فإننا نختصر هذين الشرطين بشرط واحد len([forms]![frm_Main]![fName] & '')=0 iif(كان الحقل فارغ في النموذج,[fName] اعطنا جميع بيانات الحقل,[forms]![frm_Main]![fName]واذا كان الحقل به قيمة فاستعمل هذه القيمة) . 3. اذا اردنا البحث عن جزء من الاسم Like IIf(Len([forms]![frm_Main]![fName] & '')=0,"*","*" & [forms]![frm_Main]![fName] & "*") والشرح IIf(Len([forms]![frm_Main]![fName] & '')=0 نعم Like "*" لا Like "*" & [forms]![frm_Main]![fName] & "*") . 4. اذا اردنا البحث بين تاريخين بدون سجلات التاريخ الفارغة Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) والشرح Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) مع سجلات التاريخ الفارغة Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) Or [DateX] Is Null والشرح Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) Or [DateX] Is Null او طريقة استاذنا واخونا العود ابو خليل Between nz([forms]![frm_main]![Date_From];"01/01/1900") And nz([forms]![frm_main]![Date_To];"01/01/2100") . جعفر
    2 points
  2. السلام عليكم ورحمة الله اجعل الكود هكذا Sub Circles1() Dim C As Range Dim MyRng As Range, V As Shape Dim X As Integer, G As Integer, R As Integer, D As Integer '================================================ G = 2 ' عمود رقم الجلوس R = 13 ' صف الدرجات Set MyRng = Range("W14:W1013,AF14:AF1013,AO14:AO1013,BA14:BA1013,BM14:BM1013,BQ14:BQ1013,BU14:BU1013,CF14:CF1013,CO14:CO1013,DA14:DA1013") ' نطاق الخلايا الذي تريد اضافة الدوائر فيها '================================================ X = ActiveWindow.Zoom Application.ScreenUpdating = False ActiveWindow.Zoom = 100 For Each C In MyRng If Cells(C.Row, G) = 0 Then GoTo 1 If C.Value = "" Then GoTo 1 On Error Resume Next If IsNumeric(Cells(R, C.Column)) And Not IsEmpty(Cells(R, C.Column)) And (C.Value < Cells(R, C.Column) _ Or C.Offset(0, -1).Value < Cells(R, C.Column - 1) Or C.Offset(0, -3).Value < Cells(R, C.Column - 3) _ Or C.Offset(0, -3).Value Or C.Offset(0, -3).Value = "" Or C.Value = "غ" Or C.Value = "غـ" Or C.Value = "صفر") Then Set V = ActiveSheet.Shapes.AddShape(msoShapeOval, C.Left + 2, C.Top + 2, C.Width - 4, C.Height - 4) V.Fill.Visible = msoFalse V.Line.ForeColor.SchemeColor = 10 V.Line.Weight = 1.5 D = D + 1 End If 1 Next Set MyRng = Range("BV14:BV1013") ' نطاق الخلايا الذي تريد اضافة الدوائر فيها '================================================ For Each C In MyRng If Cells(C.Row, G) = 0 Then GoTo 2 If C.Value = "" Then GoTo 2 If IsNumeric(Cells(R, C.Column)) And Not IsEmpty(Cells(R, C.Column)) And (C.Value < Cells(R, C.Column) Or C.Offset(0, -1).Value < Cells(R, C.Column - 1) Or C.Offset(0, -2).Value < Cells(R, C.Column - 2) Or C.Value = "غ" Or C.Value = "غـ" Or C.Value = "صفر") Then Set V = ActiveSheet.Shapes.AddShape(msoShapeOval, C.Left + 2, C.Top + 2, C.Width - 4, C.Height - 4) V.Fill.Visible = msoFalse V.Line.ForeColor.SchemeColor = 10 V.Line.Weight = 1.5 D = D + 1 End If 2 Next Set MyRng = Range("AX14:AX1013,bj14:bj1013,CX14:CX1013") ' نطاق الخلايا الذي تريد اضافة الدوائر فيها '================================================ For Each C In MyRng If Cells(C.Row, G) = 0 Then GoTo 3 If C.Value = "" Then GoTo 3 If IsNumeric(Cells(R, C.Column)) And Not IsEmpty(Cells(R, C.Column)) And (C.Value < Cells(R, C.Column) Or C.Value = "غ" Or C.Value = "غـ" Or C.Value = "صفر") Then Set V = ActiveSheet.Shapes.AddShape(msoShapeOval, C.Left + 2, C.Top + 2, C.Width - 4, C.Height - 4) V.Fill.Visible = msoFalse V.Line.ForeColor.SchemeColor = 10 V.Line.Weight = 1.5 D = D + 1 End If 3 Next ActiveWindow.Zoom = X Application.ScreenUpdating = True MsgBox "تم إضافة " & D & " دائرة بنجاح", vbMsgBoxRtlReading, "الحمدلله" End Sub
    2 points
  3. السلام عليكم ورحمة الله وبركاته الصلاة والسلام علي رسول الله سيدنا محمد النبي الامي أما بعد اسطوانة موسوعة الخطوط العربية الحديثة 2013 للتحميل AIO Arabic Fonts Pack 2013 برابط مباشر صاروخى اسطوانة تجميعية هامة جدا لكل مصمم أو مستخدم للبرامج المكتبية أو حتى أى نوع من أنواع التصميم والكتابات والطباعات اسطوانة بها أجمل وأحدث الخطوط العربية بجميع أنواعها الاسطوانة بواجهة واحدة فقط لسهولة الاستخدام مقسمة إلى عدة أقسام لتتمكن من إضافة ما تفضل من الخطوط دون إجبارك على تحميل كل الخطوط على الويندوز وأنت فى الغالب لا تستخدم إلا ما يعد على أصابع اليد الواحدة فقط فى الغالب الاسطوانة من تصميم أخى أمين ( هيرو سوفت ) ـ الخط الفارسي (19 خط) ـ الخط المغربي (10 خط) ـ خطوط الإعلان (198 خط) ـ الخط المطور (50 خط) ـ الخط البسيط (96 خط) ـ خطوط الديوان (31 خط) ـ خطوط الرقعة (28 خط) ـ خطوط النسخ (66 خط) ـ خطوط الحر (82 خط) ـ خطوط مربعية (46 خط) ـ الخط الكوفي (163 خط) ـ خطوط (54 خط) -------------------------- الاسطوانة مرفوعة على رابط واحد فقط بمساحة 50 ميجا تقريبا الارشيف ميديافاير منقول للفائده بارك الله في كل من له بصمه في هذا العمل
    1 point
  4. اخترت أسلوبين لتحليل البيانات لشرحهما والمقارنة بنيهما، والأسلوبين هما التجميع Clustering والتصنيف Classification، والسبب لاختياري هذين الأسلوبين أنني كنت محتار تماما في الفرق بينهما، وبالتالي قرأت عنهما الكثير وتوصلت لفهم بسيط لكل منهما والفرق الأساسي بينهما، ولكي أشرحهما سأقوم باستعراض مثال بسيط معكم. تخيل أنك لا تعرف شيء عن المركبات أو السيارات، وتم إعطائك مجموعة كبيرة من البيانات Big Data عن المركبات التي تسير في شوارع مدينتك، وكانت هذه البيانات في صورة جدول يتضمن سعة المحرك باللتر، والزمن الذي تستغرقه المركبة للوصول إلى سرعة 100 كيلومتر/الساعة بالثانية، كما يوضح الرسم البياني أدناه تذكر أنك لا تعرف شيء عن المركبات، ولا تستطيع أن تحدد نوع المركبة، أو حجمها من البيانات المتاحة، ولكن مطلوب منك تحليل البيانات ومحاولة إيجاد علاقات منطقية بينها. هل تستخدم التجميع Clustering أم التصنيف Classification ؟ من المنطقي في هذه الحالة ألا تحاول استخدام التصنيف، فأنت لا تعرف الأصناف الموجودة ومواصفات كل منها، وهذه هي نفس المشكلة التي سيواجهها جهاز الحاسب الآلي الذي يستطيع معالجة البيانات بسرعة ولكن ليس لديه فهم مسبق عن ماهية البيانات. وبالتالي يصبح حتميا استخدام التجميع Clustering، وهو عبارة عن تجميع البيانات القريبة من بعضها البعض في مجموعة واحدة Cluster، وإيجاد المتوسط الحسابي لها بحيث تكون النقاط المشمولة في المجموعة أقرب للمتوسط الحسابي للمجموعة الخاصة بها من المتوسط الحسابي لأي مجموعة أخرى، كما يوضح الشكل أدناه. والسؤال الآن، ما الذي استفدناه من هذا التجميع؟ دعونا أولا نسجل بعض الملاحظات عن المجموعات الأربعة التي ظهرت لدينا: - المجموعة 1 تتضمن أكبر عدد من النقاط وتتميز بانخفاض سعة المحرك وارتفاع زمن الوصول إلى 100 كيلومتر/الساعة (أي انخفاض القدرة على التسارع) - المجموعة 2 تتضمن تقريبا أقل عدد من النقاط وتتميز بارتفاع سعة المحرك وانخفاض زمن الوصول إلى 100 كيلومتر/الساعة (أي ارتفاع القدرة على التسارع) - المجموعة 3 تتضمن عدد قليل من النقاط وتتميز بانخفاض سعة المحرك وانخفاض زمن الوصول إلى 100 كيلومتر/الساعة (أي ارتفاع القدرة على التسارع) - المجموعة 4 تتضمن عدد متوسط من النقاط وتتميز بارتفاع سعة المحرك وارتفاع زمن الوصول إلى 100 كيلومتر/الساعة (أي انخفاض القدرة على التسارع) دعونا نقوم بتحليل هذه النتائج من وجهة النظر المنطقية: نفترض الآن أنك تريد أن تفهم أسباب منطقية وعدم منطقية النتائج، طبعا ستلجأ لصديق يفهم جيدا في أنواع المركبات وأصنافها، وسيكون رده في الغالب كما يلي: · المجموعة 1 ذات سعة المحرك المنخفضة والتسارع المنخفض هي السيارات العادية Passenger Vehicles · المجموعة 2 ذات سعة المحرك المرتفعة والتسارع المرتفع هي السيارات الرياضية Sports Cars · المجموعة 3 ذات سعة المحرك المنخفضة والتسارع المرتفعة هي الدراجات النارية Motor Cycles · المجموعة 4 ذات سعة المحرك المرتفعة والتسارع المنخفض هي الشاحنات Trucks إذن التجميع لا يبدأ بتصنيفات محددة ولكنه يصل إلى الأصناف من خلال التجميع والتحليل، وطبعا في هذا المثال لم نصل إلى أي اكتشافات أو أنماط جديدة لأننا تطرقنا إلى موضوع مفهوم مسبقا وتصنيفاته معروفة، ولكن فائدة التجميع تظهر في تحليل البيانات غير محددة التصنيف. فعلى سبيل المثال لو توفرت لديك معلومات عن أعمار المتسوقين وأنواع المشروبات التي يشترونها، يمكنك تجميعها في مجموعات تحدد من خلالها إذا ما كان العمر يؤثر على اختيار المشروب، ونوعية المشروب المفضل لفئات عمرية محددة، وبالتالي يتم توجيه المواد الإعلانية للأشخاص طبقا لاختياراتهم المسبقة. دعونا الآن نتطرق إلى التصنيف، وسنستخدم نفس مثال المركبات، في هذه الحالة قبل أن تبدأ في تحليل البيانات ستسأل صديقك خبير المركبات عن الأصناف المختلفة للمركبات، وفي الغالب سيعطيك جدول بالأصناف المختلفة كما يلي: وستقوم بناء على هذه الجدول تصنيف المركبات إلى الأصناف الأربعة كما يوضح الرسم التالي: أو بمعني آخر العيب الرئيسي للتصنيف أنه قد يمنعك من اكتشاف علاقات جديدة بين البيانات أرجو أن أكون قد تمكنت من توضيح الفرق بين التجميع والتصنيف، والله ولي التوفيق دائما
    1 point
  5. الاخوة الزملاء السلام عليكم ورحمة الله وبركاتة برنامج مجاني علي الاكسيل لاقرار ضريبة القيمة المضافة برنامج سهل وبسيط خصائص البرنامج غلق جميع الخلايا التي تحتوي علي معادلات حفظ البيانات بمجرد الخروج العودة للقائمة الرئيسية في كل مرة يتم فتح البرنامج فيها استخدام اوامر الطباعه في الشيت الخاص بالاقرار التقارير إقرار ضريبة القيمة المضافة نموذج10 الخاص بكل شهر التحليل الشهري لفواتير المبيعات والمشتريات تفريغ الاقرارات user : How To Excel password: hte إقرار ضريبة القيمة المضاف 2.0.rar
    1 point
  6. السلام عليكم ورحمة الله وبركاته فى استعراضى لطرح موضوع ورشة العمل لبرنامج الارشفة الاليكترونية تحدث هن وضع القاعدة الحلفية على جهاز محدد على الشبكة سيكون بمسابة السيرفر لباقى الاجهزة كنت اهتم بجلب الوقت والتاريخ منه منعا للاخطاء الغير مقصودة او حتى التلاعب عن عمد وقت ادهال البيانات بهذا الوضع فكرت اننا سنواجه مشكلتين بقثد الاتصال - عند فقد الاتصال لاى سبب واقصد الشبكة المحليةوليس الانترنت اولا لن نستطيع جلب الوقت وهنا يحدث مشكلة -وقطعا عدم القدرى على معالجة البيانات اعتقد فى وهنا قطعا مع هذه المشاكل يحدث انهيار تام لقاعدة البيانات الحمد للع هدانى الله تعالى الى هذا الحل بهذة الافكار لتفادى كل ذلك رجاء لتجربة المرفق تسجيل رقم ip اولا فى الجدول انتظر تجربتكم ان شاء الله ورارئكم طبعا قد تكون هناك اقكار افضل وطرق اسهل ولكن اشارككم ثمار افكارى واسعد بنقضكم التحقق من الاتصال بالشبكة(001).rar
    1 point
  7. تحويل اللغة تلقائيآ من العربية الى الانكليزية أو العكس بعد الخروج من مربع النص راجيآ القبول و الدعاء لي في ظهر الغيب .. تغيير اللغة تلقائيآ.accdb
    1 point
  8. هممم طريقة غير متعودين عليها ، ولكن هذا حال قواعد البيانات ، وخصوصا اذا جابوا البيانات من الاكسل ، حيث يخلطون البيانات 🙂 بيانات الجدول ، الاستعلام qry_1 ، ولاحظ كيف ننادي الوحدة النمطية Isolate ونخبرها شو التصفية اللي نريدها (عربي ، انجليزي ، ارقام ، علامات) ، ونرسل لها قيمة الحقل ، وبما اننا عملنا حقل لكل لغة ، فتعطينا كل قيمة في حقلها ، بينما الاستعلام qry_2 ، يأخذ تصفيتة من الحقل cmb_Lang من النموذج Form1 ، ويعطينا فقط تصفية الحقل Name . والتجربة . الطريقة اللي جاءت على بالي ، هي استعمال Ascii كل حرف من حروف الخط ، وهو رقم الحرف ، وهي ارقام ثابته بغض النظر عن نوع الخط المستعمل ، هذا الجدول الاصل لجميع حروف وحركات اللاتينية/الانجليزي، وهنا قيمة Asc موجودة في العمود Dec . وهذا جدول الحروف العربية ، من https://www.aivosto.com/articles/stringopt3.html . الوحدة النمطية Isolate : تقوم الوحدة النمطية ، وعلى اساس اللغة المطلوبة (والتي يتم ارسالها من الاستعلام ، مع القيمة) ، بقراءة كل حرف من القيمة ، وعلى اساس اللفة و الحرف ، يتم اخذ قيمته الـ Asc للحرف (وقد يكون من الافضل استعمال AscW ، كون القيمة تحتوي على حروف UTF-8 او Unicode) ، ويقوم بجمعها ، ورد القيمة الى الاستعلام: Public Function Isolate(Lang As String, str As String) As String 'Lang = "E" = "English" 'Lang = "N" = "Numbers" 'Lang = "C" = "Characters" 'Lang = "A" = "Arabic" Dim i As Integer Dim curAsc As Integer Dim curChr As String Dim con As String For i = 1 To Len(str) curChr = Mid(str, i, 1) 'one character at a time curAsc = Asc(curChr) 'Asc of that character If Lang = "E" And ((curAsc > 64 And curAsc < 91) Or (curAsc > 96 And curAsc < 123)) Then '65 to 90 capital letters, 97 to 122 small letters con = con & curChr ElseIf Lang = "N" And (curAsc > 47 And curAsc < 58) Then '48 to 57 capital letters con = con & curChr ElseIf Lang = "C" And ((curAsc > 31 And curAsc < 48) Or _ (curAsc > 57 And curAsc < 65) Or _ (curAsc > 90 And curAsc < 97) Or _ (curAsc > 122 And curAsc < 127)) Then '32 to 47, 58 to 64, 91 to 96, 123 to 126 con = con & curChr ElseIf Lang = "A" And curAsc > 127 Then 'Extended Ascii , > 127 con = con & curChr End If Next i Isolate = con End Function جعفر 1034.Filter.accdb.zip
    1 point
  9. جميل جدا عزيزي. خصوصا استعمالك لدوال NetRemoteTOD و NetApiBufferFree وانا اشجع جميع المبرمجين ان يجعلوا winAPI في اولويات اهتماماتهم لانها طبعا الاسرع والاقوى تنفيذا في الذاكرة. لمن يحب الاطلاع اكثر، اضغط على اسم الدالة لعرض تفاصيلها. لديك خطأ في Form_Main احذف منه End Function واستبدلها بـ End Sub ثانياً: بدل ان تجعل المستخدم يقوم بكتابة الايبي يدوياً اجعل العملية تتم اوتوماتيكياً، استخدم هذا الفنكشن Public Function GET_LOCAL_IP_ADDRESS() 'recoded semo.pa3x Dim objWMIService As Object Dim colItems As Object Dim itm As Object Set objWMIService = GetObject("winmgmts:\root\cimv2") Set colItems = objWMIService.ExecQuery _ ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") For Each itm In colItems GET_LOCAL_IP_ADDRESS = GET_LOCAL_IP_ADDRESS & itm.Properties_("IPAddress")(0) & vbCrLf Next GET_LOCAL_IP_ADDRESS = Split(GET_LOCAL_IP_ADDRESS, vbCrLf)(1) End Function استبدل السطر الاتي: strPcIP = DLookup("[ip]", "tblSecurityIP") استبدله بـ strPcIP = GET_LOCAL_IP_ADDRESS موفق عزيزي.
    1 point
  10. عليكم السلام حين يتم تعيين خصيصة الحقل : مطلوب = نعم فنحن لا نسمح بترك الحقل خاليا وحين يتم تعين : السماح بطول صفري = لا فنحن لا نسمح بوجود قيمة فارغة في الحقل سيقول السائل وما الفرق بين ا لقيمة الخالية والقيمة الفارغة الاجابة : الخالي اي لا يوجد بيانات مطلقا والقيمة الفارغة اي يوجد قيمة ولكنها فارغة ويعبر عنها بعلامتي تنصيص متلاصقتين وعمليا يمكننا ملاحظة الفرق حين نستخدم علامتي التنصيص كمعيار في الاستعلام او الكود وحين نستخدم NULL
    1 point
  11. السلام عليكم ورحمة الله وبركاته اللي يعتقد بأننا نستخدم الاكسس في الحسابات فقط ، فاليلقي نظرة على برنامج القافية هذا برنامج عملته في 2007 ، لإختيار الكلمات من بين حوالي 618 الف كلمة ، لأعمل قافية لأبيات الشعر الواجهة: 1. اكتب الحرف/الحروف التي تريد ان تكون عليها القافية (اي ان تنتهي الكلمة بهذا الحرف/الحروف) ، 2. اكتب الحرف/الحروف التي تبدأ الكلمة بهذا ، 8. كلمات البحث في #1 و #2 تظهر هنا ، 3. عند كتابة الحروف في #1 او #2 ، فالبحث يكون عن طريق هذا الزر ، (وتستطيع الكتابة في #1 او #2 ، و رقم 4) ، 4. اكتب الكلمة التي تريدها ، وستظهر لك الكلمات المرادفه لها ، 5. للبحث للرقم 4 ، 9. كلمات البحث في #4 تظهر هنا ، 6. لحذف جميع كلمات البحث ، بالاضافة الى انه يمكن النقر مرتين على #1 او #2 او #4 لحذف الكلمة/الحرف/الحروف من الحقل ، 7. نريد ان نختار من الكلمات الموجودة في #8 ، فننقر على #7 لحفظها مؤقتا في نموذج جديد . البحث في الكلمات التي تنتهي بالحروف ليل . وعند النقر على الزر A فتنتقل الكلمة الى النموذج هذا . البحث في الكلمات التي تبدأ بالحروف خل . البحث عن الكلمات المرادفة لكلمة شجاع . البحث عن الكلمات المرادفة لكلمة شجاع ، والتي تنتهي بالحرف ت . وعند الانتهاء من اختيار الكلمات ، وعند النقر على زر Copy to Notepad ، سيتم حفظها في ملف باسم Poem.txt في نفس مجلد البرنامج ، . المربع الاحمر: الكلمات في النموذج اعلاه يتم البحث عنها في الحقل #2 ، وإظهار نتائج الحقل #1 ، ومعاني الكلمات موجودة في الحقل #3 ، المربع الازرق: الكلمة في #4 هي عكس الكلمة في الحقل #2 ، والحقل #5 فيه معنى هذه الكلمة . بدأت بأخذ كلمات القرآن الكريم ، ثم بكسر الحماية من ملف الكلمات/القاموس في برنامج Ms Word واخذ كلماته ، فأصبح عندي حوالي 48 الف كلمة ، ولكن لم تكن الكلمات كاملة ، فأنزلت من الانترنت جميع القواميس العربية ومعانيها ، وادخلتها جميعا في البرنامج ، فوصل عدد الكلمات الى حوالي 618 الف كلمة ، عملت عدة كودات (والتي تركتها في البرنامج للذي يريد ان يستفيد منها) لتصفية الكلمات و اكواد اخرى للتعامل مع MS Word ، حيث ارسل الكلمة للوورد ، ثم آخذ المعاني منها ، وكذلك لمعرفة مقلوب الكلمة ، اذا كان لها معنى ، وإلا فلم اكتب الكلمة. ارجوا ان تستفيدوا من البرنامج ، مثل ما انا استفدت منه يوما ما ونظرا لكبر حجم البرنامج ، فهو موجود في الرابط التالي: جعفر
    1 point
  12. 1 point
  13. السلام عليكم جرب المرفق لعل فيه ما تريد... بن علية حاجي المستمسك.rar
    1 point
  14. السلام عليكم اخوي بوحسين 🙂 خلينا من الاكروبات ، واخبرنا شو اللي تريد تعمله ، وبالتفصيل لوسمحت 🙂 جعفر
    1 point
  15. المنتدي الكبير.. مهما ابعدتنا المسافات.. ومهما ابعدتنا الأيام.. سيظل حبكِ ساكناً في قلبي.. ممسكاً بكل مشاعري. عطائك ابهرني.. كلماتكِ الصادقة جعلتني احبكِ اكثر فأكثر. اوفسينا كبير القيمة والقامةو الحبيب.. مهما كانت المسافات بعيدة.. فصورتكِ ساكنة في قلبي.. وعقلي لن تخرج منهما.. مهما الأيام كانت قاسية علينا وأبعدتنا عن بعضنا.. فأنتِ بلسم لجروحي وان كنتِ بعيدة.. انتِ نجمتي المضيئة دائماً وإن كنتِ بعيدة عني. .. كلامكِ وعطائك الرائع الذي علمنا الكثير علي ايدي افضل واحسن الخبراء من اعضاء ومسئولين في هذا المنتدي الشيق جعلة الله في ميزان حسناتكم ويارب ترو اولادكم كما تحب اعينكم ومتقدمين علما وخلقا امين يارب العالمين بارك الله لكم وعليكم وزادكم علما ونورا يضي لنا الطريق شكرين افضالكم وعطائكم المستمر شكرين تقديركم لنا وكل من يحتار في ايجاد حل لسوالة فيجدة في هذا المنتدي الكبير في العلم وعظيم العطاء شكرا لكم
    1 point
  16. من باب حفظ حقوق النشر والملكية الفكرية كان يجب ان تذكر واضع الدالة (المعرفة) التي قمت باستعمالها ()OrdeUP100 تحت طائلة عدم الرد على المشاركة مع امكانية جذفها يمكن أن يكون المطلوب في هذا الملف Tartib_all.xlsm
    1 point
  17. كيف ما اصير صياد اذا كنت انت معلمي تعلمت منك الكثير ومازلت اتعلم وسأضل اتعلم Tx = DCount("*", "Table1", "[txt]='" & Me.txt & "' AND[nb]=" & Me.nb & " and [Tdate]=" & DateFormat(Me.Tdate)) النتيجة ممتازة شكرا لك ومبروك على الترقية مع الاسف اخي ابو ياسين النتيجة ليست كما يجب لاجديد طبعا يقال بحقك دائماً مبدع تعددت الحلول من اساتذة كبار وهذي ينطبق على مقولة استاذي @jjafferr في اعتقادي ، مشاركة أكثر من شخص في الرد على السؤال ، يفتق الاذهان ويدمج التجارب ويبلور الافكار وفائدة للجميع ، فمنه نتعلم الطرق الاخرى للإجابة على السؤال شكرا لكم جميعا ‏‏dcountData - 2.accdb
    1 point
  18. السلام عليكم تستطيع دائما تفكيك اي معادلة لفهمها لاحظ أن نظام الجهاز عندي يضع بالمعادلة علامة (,) بدلا من (;) المعادلة السابقة بعد تفكيكها تكون كالتالي =IFERROR(A,) حيث نستعيض بالمعامل A عن المعادلة SUMPRODUCT((INDEX(ACH.!$B$3:$AP$9999,MATCH(A3,ACH.!$A$3:$A$9999,),)>0)*COUNTIF(INDEX(IP!$C$4:$N$44,,IFERROR(MATCH(C3,IP!$E$2:$N$2,)+2,MATCH(E3,IP!$C$3:$D$3,))),ACH.!$B$1:$AP$1)) ومعني المعادلة الأولي أن في حالة حدوث خطأ من المعادلة A فلا تكتب النتيجة خطأ والآن إلي المعادلة A بنفس الطريقة نبسطها كالتالي A= SUMPRODUCT(B*C) حيث B=(INDEX(ACH.!$B$3:$AP$9999,MATCH(A3,ACH.!$A$3:$A$9999,),)>0) ، C=COUNTIF(INDEX(IP!$C$4:$N$44,,IFERROR(MATCH(C3,IP!$E$2:$N$2,)+2,MATCH(E3,IP!$C$3:$D$3,))),ACH.!$B$1:$AP$1) ومعني ذلك ببساطة أن A تساوي حاصل ضرب مصفوفتين B,C مشروطتين والمصفوفة B هي أيضا يمكن تبسيطها هكذا B=(INDEX(B1,B2,)>0) حيث B1 هي المجال ACH.!$B$3:$AP$9999 ، B2 هي المعامل الناتج عن MATCH(A3,ACH.!$A$3:$A$9999,) و لإيجاد المعامل B2 نذهب للورقة ACH في المجال A3:A9999 والذي يبدأ بالخلية A3 لتبحث عن كود العميل والموجود بالخلية A3 بالورقة QSC ، إذن ستجد أنه في الصف الثامن (إذا بدأت العد من الخلية A3 ) أي أن : الجزء الأخير من المصفوفة B والذي أسميناه B2 سيأتي بالرقم 8 إذن المصفوفة B هي عنصر ناتج من المجال B1 (أي المجال B3:AP9999 في الورقة ACH) وهو العنصر الثامن وحيث أن رقم العمود لم يذكر فيكون الناتج هو كامل الصف الثامن من المجال B3:AP9999 في الورقة ACH وبما أن وحيث المجال B3:AP9999 يحتوي علي 41 عمود من (B) إلي (AP) إذن نتوقع أن يكون العنصر الثامن هذا هو محتوي 41 خلية وبالرجوع لها تجدها (1 , 0 , 1 , 0 , 1 , 1 , 0 , 6.25 , 1 , 2 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0) بالترتيب حيث يعتبر الخلايا الفارغة أصفار باقي معني أخير بالمصفوفة B وهي مقارنة العناصر الناتجة بالرقم 0 (حيث آخر مقطع منها هو >0) فالناتج النهائي لها سيكون 41 عنصرا كل منها يحتوي علي 1 إذا كان الأصلي أكبر من 0 ويحتوي علي 0 إذا كان الأصلي ليس أكبر من 0 الناتج النهائي لها سيكون هكذا (1 , , 1 , , 1 , 1 , , 1 , 1 , 1 , 1 , , , , , , , , , , , , , 1 , 1 , , 1 , , , , , 1 , , , , , , , , , ) والمعني الطبيعي لهذا هو جعل الإكسل ينتقي عدد المرات (الأصناف) التي أخذها هذا العميل والآن : المصفوفة C هي ..... هكذا بنفس الوسيلة تجد أنها أيضا تنتج 41 عنصرا من الورقة الأخيرة IP وهذه العناصر رأسية (SKU CODE) ولابد أن تتساوي في العدد مع عناصر المصفوفة الأولي أي 41 عنصرا حقيقة أنا لا أعلم ماذا يعني SKU CODE ولكن تقاطع المصفوفتين سينتج 1 عند التقاطعات المملؤة أي التي بها 1 في المصفوفتين أعتقد أن المعني لهذا هو جعل الإكسل ينتقي عدد المرات (الأصناف) التي أخذها هذا العميل وفي نفس الوقت تتطابق مع هذا ال SKU CODE
    1 point
  19. السلام عليكم أهل المنتدى الكرام أقدم لكم اليوم ملف به كود يقوم بفتح صفحات جديدة بمجرد كتابة اسم الشيت فى العمود C من صفحة Main تقبلوا منى بارك الله فيكم وجزيتم خيرا اكسل vba فتح شيت جديد بمجرد ادخال الاسم فى الخلية.xlsm
    1 point
  20. جزاك الله كل خير اخى الكريم الأستاذ محمد هذا فيديو بالشرح : وعليكم السلام اخى سليم دائما نصيحتك أستفاد منها كثيرا -جزاك الله كل خير وهذا ما كان ينقص هذا الكود دائما تكمل لنا النقصان بارك الله فيك وجعله دائما فى ميزان حسناتك وادخلك فسيح جناته
    1 point
  21. السلام عليكم 1. من المعروف ان تنسيق النص في مربع القائمة ListBox هو من اليسار الى اليمين ، مشكلة كانت تصادفني دائما ، وهو تنسيق القيم في مربع القائمة لتكون من اليمين الى اليسار بالنسبة للغة العربية (طريقة تغيير مربع القائمة الى مربع تحرير ونص ، ثم عمل التنسيق عليه من اليمين الى اليسار ، ثم اعادته الى مربع قائمة لا يعمل معظم الوقت) ، موقع http://www.lebans.com والذي يحتوي على مالذ وطاب عنده طريقه لهذا التنسيق: http://www.lebans.com/justicombo.htm كذلك. 2. ونفس المشكلة مع موضوع تنسيق الشجرة TreeView من اليمين الى اليسار. النتيجة: و وطريقة العمل ، يوضع هذا الكود في وحدة نمطية: Option Compare Database Option Explicit #If VBA7 And Win64 Then '64 bits Public Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long) As Long Public Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare PtrSafe Function InvalidateRect Lib "user32" (ByVal hwnd As LongPtr, lpRect As Long, ByVal bErase As Long) As Long Public Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr Public Declare PtrSafe Function GetFocus Lib "user32" () As LongPtr Public Declare PtrSafe Function GetWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal wCmd As Long) As LongPtr Dim hwnd As LongPtr #Else '32 bits Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Long, ByVal bErase As Long) As Long Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Public Declare Function GetFocus Lib "user32" () As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Dim hwnd As Long #End If Public Const GW_CHILD = 5 Public Const WS_EX_LAYOUTRTL = &H400000 Public Const GWL_EXSTYLE = (-20) Function RTL_Set(frm As Form, ctl As Control) Dim varHwnd As Variant Dim OldLong As Long frm.SetFocus ctl.SetFocus varHwnd = GetFocus() OldLong = GetWindowLong(varHwnd, GWL_EXSTYLE) SetWindowLong varHwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL InvalidateRect hwnd, 0, False End Function Function RTL_SetTree(frm As Form, ctl As Control) Dim OldLong As Long OldLong = GetWindowLong(ctl.hwnd, GWL_EXSTYLE) SetWindowLong ctl.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL InvalidateRect hwnd, 0, False End Function ' ' From http://www.microsoft.com/middleeast/msdn/faq.aspx ' 'Place OnLoad of the Form ' Dim OldLong As Long 'For Form ' OldLong = GetWindowLong(Me.hwnd, GWL_EXSTYLE) ' SetWindowLong Me.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False 'For List ' OldLong = GetWindowLong(List1.hwnd, GWL_EXSTYLE) ' SetWindowLong List1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False 'For The StatusBar ' OldLong = GetWindowLong(StatusBar1.hwnd, GWL_EXSTYLE) ' SetWindowLong StatusBar1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False 'For TreeView ' Dim nodX As Node ' Set nodX = TreeView1.Nodes.Add(, , "R", "Root") ' Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C1", "Child 1") ' Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C2", "Child 2") ' Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C3", "Child 3") ' Set nodX = TreeView1.Nodes.Add("R", tvwChild, "C4", "Child 4") ' nodX.EnsureVisible ' OldLong = GetWindowLong(TreeView1.hwnd, GWL_EXSTYLE) ' SetWindowLong TreeView1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False 'For ListView ' OldLong = GetWindowLong(ListView1.hwnd, GWL_EXSTYLE) ' SetWindowLong ListView1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False 'For ProgressBar ' ProgressBar1.Value = 50 ' OldLong = GetWindowLong(ProgressBar1.hwnd, GWL_EXSTYLE) ' SetWindowLong ProgressBar1.hwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False 'For ToolBar ' mhwnd = GetWindow(Toolbar1.hwnd, GW_CHILD) ' OldLong = GetWindowLong(mhwnd, GWL_EXSTYLE) ' SetWindowLong mhwnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL ' InvalidateRect hwnd, 0, False في اسفل الكود انا تركت الكود لبقية الاشياء اللي يمكن عملها من اليمين الى اليسار. اما تنفيذ التنسيق لمربع القائمة ، فهو وضع هذا الكود عند تحميل النموذج الذي يحتوي على هذا المربع (وهنا اسم حقل مربع القائمة هو List0_RTL ) : 'ListBox RTL Call RTL_Set(Me, List0_RTL) وتنسيق الشجرة ، فهو وضع هذا الكود عند تحميل النموذج الذي يحتوي على الشجرة (وهنا اسم الشجرة هو TreeView1) : 'TreeView RTL Call RTL_SetTree(Me, TreeView1) وللأمانة العلمية ، فاني استخدم قاعدة البيانات التي وضعها الاخ محمد في الرابط: http://www.officena.net/ib/index.php?showtopic=60781 جعفر تعديل 1: 18-11-2021 ، جعل البرنامج يعمل على النواتين 32بت و 64 بت 54.RTL_TreeView_ListBox_32bits_n_64bits.accdb.zip
    1 point
  22. هذه الاسطوانه بها ميزة تمكنك من إضافة ما تفضل من الخطوط دون إجبارك على تحميل كل الخطوط على الويندوز وأنت فى الغالب لا تستخدم إلا ما يعد على أصابع اليد الواحدة فقط
    1 point
×
×
  • اضف...

Important Information