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

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

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

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


    • نقاط

      41

    • Posts

      13165


  2. محمد الريفى

    محمد الريفى

    الخبراء


    • نقاط

      8

    • Posts

      1492


  3. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      8

    • Posts

      10007


  4. الصـقر

    الصـقر

    الخبراء


    • نقاط

      8

    • Posts

      1836


Popular Content

Showing content with the highest reputation on 04/05/16 in all areas

  1. السلام عليكم ورحمة الله وبركاته إخواني واحبابي في الله منذ ما يقرب من الستة أشهر وأنا أبحث عن كود أو دالة لايجاد الرقم التسلسلي للوحة الأم ، حيث يمكن استخدام الرقم التسلسلي لربطه بالمصنف كنوع من أنواع الحماية ... بحثت كثيراً وتجولت كثيراً ولم أيأس إلى أن وفقني الله عزوجل للحصول على دالة معرفة بعد معاناة كبيرة جداً في البحث .. وها أنا أقدمها لكم على طبق من ذهب .. ها هي الدالة المعرفة Function MBSerialNumber(Optional strComputer As String = ".") As String Dim V, vName, vUUID With GetObject("winmgmts:\\" & strComputer & "\root\cimv2") For Each V In .ExecQuery("SELECT * FROM Win32_ComputerSystemProduct", , 48) vName = V.Name vUUID = V.UUID Next V End With MBSerialNumber = vName & ", " & vUUID End Function ويمكن استخدامها من خلال ورقة العمل أو من خلال إجراء فرعي آخر بالنسبة لورقة العمل في أي خلية ضع المعادلة التالية =MBSerialNumber() وأخيراً إليكم الملف المرفق .. (يمكنك عدم التحميل ونسخ الدالة المقدمة ووضعها في موديول ... ولكن إذا أعجبك الموضوع فلا تبخل بالتحميل ، ولن يكلفك التحميل سوى دقيقتين فقط .. ولا تنسى أنني ظللت أبحث لمدة ستة أشهر) حمل الملف من هنا تقبلوا وافر تقديري واحترامي
    6 points
  2. السلام عليكم ورحمة الله وبركاته إخواني الكرام في موضوع للأخ الحبيب محمد حسن أبو يوسف ، قمت بعمل تصفية للبيانات بناءً على مربع نص ، إلا أنه في مشاركة للأخ الغالي رشراش علي أن الكود لا بعمل مع الأرقام ولا يعطي نتيجة ، كما أن الأخ أحمد أبو زيزو طلب مني شرح خطوات العمل فيما يتعلق بهذا الموضوع رابط الموضوع وبناءً على طلب إخواني ، وهم يدركون أنني لا أتأخر عليهم أبداً أقدم لكم موضوع اليوم فارتأيت (حلوة ارتأيت دي ... ) أن أخصص موضوع لهذا الأمر ، نظراً للطلب عليه ، ونظراً للفائدة المرجوة منه ، حيث أنه يسهل عملية البحث من خلال تصفية البيانات المطلوبة. يعتمد الملف المرفق على مثال بسيط للتطبيق ، تم إدراج مربع نص TextBox من خلال التبويب Developer ثم من Insert اختر مربع نص TextBox من القسم ActiveX Controls والبيانات المراد التعامل معها تبدأ من الخلية C3 وحتى آخر خلية بها بيانات... إليكم إخواني الكود مع شرح مبسط للأسطر عله يفيدكم Private Sub TextBox1_Change() 'يقوم الكود بالبحث في نطاق من خلال مربع نص ، وتصفية النتائج طبقاً للنص المدخل '[Insert] ثم من قائمة [Developer] من خلال التبويب [TextBox] قم بإدراج مربع نص 'ثم قم بإدراجه على ورقة العمل [ActiveX Controls] قم بالنقر على مربع النص الموجود في '-------------------------------------------------------------------------- 'تعريف المتغيرات والثوابت Dim LastRow As Long, RngFiltered As Range, I As Long, Arr Static Rng As Range 'إلغاء خاصية اهتزاز الشاشة Application.ScreenUpdating = False 'إلغاء الفلترة في ورقة العمل النشطة ActiveSheet.AutoFilterMode = False 'قيمة تظهر كل الصفوف لهذا النطاق [Static] إذا لم يكن للثابت المسمى If Not Rng Is Nothing Then Rng.EntireRow.Hidden = False 'تحديد آخر صف به بيانات في العمود الثالث LastRow = Range("C1000").End(xlUp).Row 'أي الخلية التي تسبق أول البيانات [C2] تعيين قيمة النطاق بداية من الخلية Set Rng = Range("C2:C" & LastRow) 'تعيين قيمة للمتغير من النوع مصفوفة ليساوي كل قيم النطاق Arr = Rng.Value 'إذا كان طول السلسلة النصية في مربع النص أكبر من صفر If Len(TextBox1.Text) > Then 'حلقة تكرارية لصفوف النطاق For I = 1 To UBound(Arr, 1) '[']إذا كان العنصر داخل المصفوفة رقمي يتم وضع علامة If IsNumeric(Arr(I, 1)) Then Arr(I, 1) = "'" & Arr(I, 1) Next I 'قيم النطاق تساوي القيم الجديدة في المصفوفة Rng.Value = Arr 'تصفية النطاق بشرط النص المدخل في مربع النص Rng.AutoFilter Field:=1, Criteria1:="=" & TextBox1.Text & "*" End If 'تعيين المتغير ليساوي الخلايا الظاهرة في النطاق Set RngFiltered = Rng.SpecialCells(xlCellTypeVisible) 'إلغاء الفلترة في ورقة العمل النشطة ActiveSheet.AutoFilterMode = False 'حلقة تكرارية لإعادة الأرقام للحالة الأولى بدون العلامة البادئة For I = 1 To UBound(Arr, 1) If Left(Arr(I, 1), 1) = "'" Then Arr(I, 1) = Mid(Arr(I, 1), 2) End If Next I Rng.Value = Arr 'إخفاء الصفوف للنطاق Rng.EntireRow.Hidden = True 'إظهار الصفوف للنطاق الذي تمت عملية التصفية على أساسه RngFiltered.EntireRow.Hidden = False 'إعادة تفعيل خاصية اهتزاز الشاشة Application.ScreenUpdating = True End Sub أترككم مع الملف المرفق .. قوموا بتجربة الملف .. تم إدراج بيانات مختلفة نصوص باللغة العربية وباللغة الإنجليزية وأرقام ... حمل الملف من هنا تقبلوا تحياتي أخوكم ياسر خليل أبو البراء
    3 points
  3. جزاكم الله خيرا يا ابوالبراء كنت لسه ارفق لك الرابط لقيتك وصلت له جزاكم الله خيرا تقبل تحياتى
    3 points
  4. كلامك صحيح .. https://support.office.com/en-us/article/TEXTJOIN-function-357b449a-ec91-49d0-80c3-0e8fc845691c دا رابط فيه شرح للدالة .. بس الغريب النسخة اللي عندي متحدثة ..!! هراجع النسخة إن شاء الله بارك الله فيك وجزاك الله كل خير
    3 points
  5. شكرا أستاذ ياسر خليل ماشاء الله , اللهم زد وبارك فعلا , يمكن ربطها بالمصنف كنوع من الحماية وهذه النتيجة التي حصلت عليها بعد تطبيق الدالة : Latitude D620 , 4C4C4544-0038-4710-8058-B7Y0433334A وقد لفت انتباهي في الكود كلمة UUID وهي اختصار لكلمة Universal Unique Identifier المعرف الفريد العالمي والذي يهدف إلى أعطاء رقم خاص (كالمبين أعلاه) لكل جهاز من أجهزة الحاسوب حول العالم مهما اختلفت الشركات المصنعة لها مريدا من المعلومات على الرابط الآتي : https://en.wikipedia.org/wiki/Universally_unique_identifier
    3 points
  6. السلام عليكم ورحمة الله وبركاته ارجو ان نقدم جميعا حلولا متنوعه لهذه الحالة " المطلوب ربط الخلايا بعلامة / وترك او تخطى الخلايا الفارغة " بمعادلات او اكواد او اى طريقة حل
    2 points
  7. اعتذر يا ابو اسيل عن التاخر فى وضع المثال الاخير بعد الشرح ولكن لبعض الظروف الخارجه عن ارادتى وان شاء الله ربنا يعينى بكره اخلصه وارفعه علشان تصحح اخطائى جزاك الله خيرا يا ابو اسيل وجعله الله فى ميزان حسناتك اخوانى الافاضل ابوالبراء وعبدالعزيز وابويوسف هل قمت بتحميل البرنامج يا ابوالبراء لنتابع سويا الدروس جميل اخى عبدالعزيز الاله الحاسبه تصميم انيق ابويوسف الن تكمل معنا المشوار ؟ تقبلوا تحياتى
    2 points
  8. وعليكم السلام أخوي ابوحاتم 1. أضفت معيار حقل Class1 للنموذج Table1 ، الى الاستعلام الالحاقي: . 2. عملت الكود التالي على حدث "بعد التحديث للحقل Class1 في النموذج Table1 ، وياريت تتبع تفاصيله: Private Sub Class1_AfterUpdate() 'تأكد ان الحقل فيه رقم If Len(Me.Class1 & "") <> 0 Then 'هل هناك سجل في الجدول لهذا الرقم If DCount("*", "Table2", "[Class1]=" & Me.Class1) > Then 'لا تعطي رسائل تنبيه بالموافقة على الحاق سجلات DoCmd.SetWarnings False 'شغل الاستعلام الالحاقي DoCmd.OpenQuery "Table2 Query" 'اعطي رسائل تنبيه للاسطر التاليه DoCmd.SetWarnings True 'اطلب البيانات من الجدول من جديد للنموذج الفرعي Me.Table2_Subform.Requery 'اختر النموذج الفرعي Me.Table2_Subform.SetFocus 'اذهب الى آخر سجل ، والذي المفروض ان يكون السجل الجدي DoCmd.GoToRecord , , acLast End If 'Dcount End If 'Len End Sub . 3. اطلبك باقلة ودهن جعفر 351.d12003.2.mdb.zip
    2 points
  9. السلام عليكم ورحمة الله وبركاته ...شرف عظيم أن يكون لتلميذ صغير اسم في قائمة مليئة بالقامات العالية في البحث العلمي وتطوير البرمجيات ... شرف كبير لي أن تكتب أخي الحبيب جلال الجمال أبو أدهم بأناملك الطيبة اسمي ...فعملك هذا - لا أقول لا يقل أهمية - بل أقول هو أهم أو من الأهمية بمكان لحفظ فهرسة رائعة لمدونات وأعمال أساتذتنا الكرام ...وبذلك لا يطويها النسيان ...بل لها مفاتيح ضخمة عند أخينا العزيز أبو أدهم جزاكم الله خيراً وأحسن إليكم وجعل كل ذلك بميزان حسناتكم ...آمين والصلاة والسلام على سيد المرسلين والحمد لله ربّ العالمين. والسلام عليكم ورحمة الله وبركاته.
    2 points
  10. بارك الله فيك اخى حسام وواحشنى جدا والله واستاذى واخى فى الله ابوالبراء اما عن الدالة textjion فى دالة موجوده فى اصدار اوفيس 365 فقط وليس موجوده فى اى اصدارات اخرى ايضا قامت ميكرسوفت بعمل 2 تحديث للاكسيل فى 2016 تحديث فى اواحر يناير وتحديث فى شهر مارس وواضح ان ميكروسوفت هتعمل تحديثات بشكل مستمر ومش هتدى نسح كامله زى زمان يعنى تغيير فى سياستها هيخنوقنا علشان نجبر ونشترى البرنامج بس ده بعينهم وبالنسبة للدالة textjion فانها لم تقم بالمطلوب فى نفس المثال لانها لن تستطيع تخطى الفراغات تقبل منى خالص التحية والاحترام
    2 points
  11. اخى الحبيب ابوالبراء الداله موجوده فى اوفيس 2016 وليست معرفه اعمل تحديث يا ابوالبراء من خيارات الاكسيل تقبل تحياتى
    2 points
  12. أخي الحبيب حسام أنا أعمل على أوفيس 2016 والدالة التي ذكرتها غير موجودة ربما تكون دالة معرفة .... بارك الله فيك وجزيت خيراً على التفاعل في الموضوع
    2 points
  13. استبدل الرقم 183 في السطر For i = 2 To 183 بـ 284 اليك الكود التالي الذي يقوم بنفس العمل و اسرع بكثير حيث انه يقوم بتجميع كل الاعمدة المطلوبة وحذفها دفعة واحدة Sub Delete_Zero() Dim rg_to_del As Range, i As Integer Application.ScreenUpdating = False For i = 2 To 284 If Cells(284, i) = 0 Then If rg_to_del Is Nothing Then Set rg_to_del = Cells(284, i) Else Set rg_to_del = Union(Cells(284, i), rg_to_del) End If End If Next i rg_to_del.EntireColumn.Delete Application.ScreenUpdating = True End Sub
    2 points
  14. وعليكم السلام الخطأ في الكود انك عاملت الحقل namee على اساس انه رقم ، بينما هو نص فيصبح الكود: If DCount("*", "Table1", "[id]=" & Me![List0].Column(1) & " And [namee]='" & Me![List0].Column(2) & "'") > Then وفي نفس الوقت كانت هناك مشكله في مكان العلامة " للمعيار لذا انا دائما اقسم الكود اى مجموعة اسطر ، سطر لكل معيار ، عليه هكذا تكون الاسطر: A = "[id]=" & Me![List0].Column(1) A = A & " And [namee]='" & Me![List0].Column(2) & "'" If DCount("*", "Table1", A) > Then جعفر
    2 points
  15. تفضل حبيبي الاخطاء وكان يوجد اكواد متبدله يعني زر= كان فيه كود المسح مثلا وزر 16 مكرر مرتين وطبعا لسه انت مكملتش القائمة يوجد بندين ناقصين وهما copy & Exit في القائمة File غير كدا كله تمام مجرد ترتيب اكواد فقط كل كود في الزر الخاص به يفضل الضغط على الزر من الخارج مرتين للدخول على الحدث الخاص به ووضع الكود بداخله لضمان وضع الاكواد في مكانها الصحيح بس تصميم رائع تقبل تحياتي WindowsApplication5.rar
    2 points
  16. اخي الغالي الفريم مش لازم يبقي اسمها فريم ممكن الاسم يكون قريب من وظيفتها ادي صورتها وموضوع الاخطاء هشوف المرفق وأرد عليك تقبل تحياتي
    2 points
  17. اخى واستاذى الحبيب محمد الريفى جزاكم الله خيرا على كل ما تقدمه خدمه لاخوانك فى الوطن العربى وبخصوص الموضوع فى داله جديده من دوال اوفيس 2016 وهى TextJoin هى داله حديثه يمكن من خلالها عمل ذالك لكن للاسف ما عندى نسخه 2016م معرفه على جهازى لكى ارفق لك مثال تطبيقى اعتقد الداله هتكون بهذا الشكل =textjoin( "/";;A1:E1) ارجوا من الاخوة اللى عندهم 2016 يجرب ويعلمنى بالنتائج تقبلوا تحياتى
    2 points
  18. بسم الله ماشاء الله ربنا يبارك فيكم ويجزيكم خير حلول رائعه من اساتذه المنتدى سامحنى استاذى ابوالبراء فاننى (احبط ) احيانا نتيجة لعدم التفاعل -------. واليكم فهذه حلول متواضعه بجانب حلولكم والحقيقة كان هذا سؤال من احد الناس فوجدت انه يستاهل التفكير فاحببت ان اطرحه واشاركه معكم حتى نبدع جميعا واتمنى من الجميع تقديم المزيد والمزيد من الحلول الحل الاول =IF(MID(CONCATENATE(A1,IF(B1<>"","/",""),B1,IF(C1<>"","/",""),C1,IF(D1<>"","/",""),D1,IF(E1<>"","/",""),E1),1,1)="/", REPLACE(CONCATENATE(A1,IF(B1<>"","/",""),B1,IF(C1<>"","/",""),C1,IF(D1<>"","/",""),D1,IF(E1<>"","/",""),E1),1,1,""), CONCATENATE(A1,IF(B1<>"","/",""),B1,IF(C1<>"","/",""),C1,IF(D1<>"","/",""),D1,IF(E1<>"","/",""),E1)) الحل الثانى =A1& IF(AND(A1<>"",COUNTA(B1:E1)),"/","")& B1 & IF(AND(B1<>"",COUNTA(C1:E1)),"/","") & C1 & IF(AND(C1<>"",COUNTA(D1:E1)),"/","") & D1 & IF(AND(D1<>"",COUNTA(E1)),"/","") & E1 الحل الثالث دالة UDF وليست من اعدادى بل منقوله =ConcatRange(A1:F1,"/") Option Explicit Function ConcatRange(R As Range, Optional sDelim As String = " ") As String 'If no delimiter specified, delimiter will be a space Dim C As Range Dim V As Variant Dim COL As Collection Dim I As Long Set COL = New Collection For Each C In R If C <> "" Then COL.Add C.Text Next C ReDim V(0 To COL.Count - 1) For I = 0 To UBound(V) V(I) = COL(I + 1) Next I ConcatRange = Join(V, sDelim) End Function Concatenate%20formula.rar
    2 points
  19. (بارك الله بك اخي ياسر على هذه المعادلة الرائعة والتي لم تخطر على بالي (و انا بخبط راسي كي ابتدع حلاً مناسبا على كل حال هذا حل اخر بالكود (الصفحة My_sheet) Rifi_Salim 1.rar
    2 points
  20. أخي الحبيب محمد الريفي نشتاق لموضوعاتك الجديدة بشكل دائم ولتواجدك فيما بيننا لدي دالة معرفة تقوم بالأمر ولكني سأكتفي بهذه المعادلة البسيطة لتؤدي الغرض =SUBSTITUTE(TRIM(A1&" "&B1&" "&C1&" "&D1&" "&E1)," ","/") تقبل تحياتي
    2 points
  21. 2 points
  22. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله في أحد الموضوعات لأحد الأخوة الأعضاء كان قد طلب كيفية إرسال رسالة بريد إلكتروني (إيميل Email) باستخدام ملف إكسيل واليوم أقدم لكم الطريقة بالتفصيل من الألف إلى الياء ... وإن شاء الله تكون الطريقة ناجحة ومفيدة للجميع الخطوات اللازمة لعمل المطلوب : فتح حساب جديد على الـ Gmail إذا لم يكن لديك حساب وكيفية إنشاء حساب جديد مشروحة بالصور : نقوم بفتح برنامج الـ Outlook من قائمة Start ثم All Programs وندخل بيانات الحساب الذي أنشيء على الـ Gmail .. بهذا الشكل : وأخيراً وبعد عملية إنشاء الحساب وربط برنامج الـ Outlook بحساب الـ Gmail .. نقوم بفتح ملف إكسيل وفي العمود الأول ندخل الإيميلات المراد إرسال بريد إلكتروني لها .. وفي العمود الثاني نكتب اسم صاحب الايميل (اختياري) وفي العمود الثالث نكتب محتوى الرسالة المراد إرسالها .. وهذا هو الكود الذي سيقوم بمهمة إرسال رسائل البريد الالكتروني دفعة واحدة لكل الإيميلات المسجلة لديك .. ملحوظة مهمة جداً : من خلال محرر الأكواد يتم إضافة المكتبة التالية Microsoft Outlook Object Library من القائمة Tools ثم References .. Sub Mail_To_Friends() Dim SendTo As String Dim ToMSg As String Dim I As Integer For I = 2 To Cells(Rows.Count, 1).End(xlUp).Row SendTo = ThisWorkbook.Sheets(1).Cells(I, 1) If SendTo <> "" Then ToMSg = ThisWorkbook.Sheets(1).Cells(I, 3) Send_Mail SendTo, ToMSg End If Next I MsgBox "Done ...", 64 End Sub Sub Send_Mail(SendTo As String, ToMSg As String) Dim OutlookApp As Object Dim OutlookMail As Object Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = SendTo .CC = "" .BCC = "" .Subject = "Hello Officena" .Body = ToMSg .Send End With Set OutlookMail = Nothing Set OutlookApp = Nothing End Sub وأخيراً إليكم الملف المرفق مطبق فيه الكود وفيه نموذج لشكل ورقة العمل .. ويوجد زر أمر لعملية الإرسال .. وهذا هو الملف تقبلوا وافر تقديري واحترامي كان معكم أخوكم أبو البراء من منتدى أوفيسنا Send Mass Emails Through Outlook Using Excel VBA YasserKhalil Officena.rar
    1 point
  23. السلام عليكم ورحمة الله وبركاته إخواني الكرام .. قد يكون موضوع الكسر موضوع شائك وفيه خلاف ، ولكن ربما يكون مفيد لصاحب العمل نفسه ، حيث أنه معرض لنسيان الباسورد الذي تم وضعه على محرر الأكواد .. الموضوع مميز لأنه يقوم بكسر الحماية بدون برامج على الإطلاق ..وبدون AddIns وبدون الاستعانة بأية برامج مجانية أو مدفوعة !! كسر محرر الأكواد بالأكواد نفسها (قنبلة الموسم) وعلى رأي المثل : علمته رمي السهام فلما اشتد ساعده رماني .. الكود قليل الأصل !! محفظش الجميل للبيئة اللي هو منها ، لأنه كسر بيئة محرر الأكواد !!! Sub HackVBA() Open "C:\Users\Future\Desktop\Test.xls" For Binary As #1 Put #1, 1, Replace(Input(LOF(1), 1), "DPB=", "DPX=", , 1) Close Workbooks.Open "C:\Users\Future\Desktop\Test.xls" End Sub المطلوب فقط أن تغير مسار الملف المراد كسره داخل الكود ، والمسار يوضع بين أقواس تنصيص .. أترككم مع الفيديو عله ينال إعجابكم وتستفيدوا منه إن شاء المولى .. ولا تنسونا من اللايكات على اليوتيوب !!!!! ....أكرر اللايكات على اليوتيوب ..فضلاً لا أمراً تقبلوا تحيات أخوكم أبو البراء
    1 point
  24. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله مع التحديث الجديد .. للأسف لم أجد التوجيهات التي تم وضعها من قبل ، وهذه القواعد والأسس هامة جداً ليدرك الأعضاء كيفية التعامل مع المنتدى طبعاً الموضوع سيكون متجدد .. سيتم وضع القواعد مرة أخرى فالرجاء الرجاء أن تساعدوني في اتمام الأمر .. كل عضو يذكرني بتوجيه من هذه التوجيهات ليتم إرساء القواعد ، إذ أن نجاح أي مؤسسة يعتمد في المقام الأول على قواعد ومنهج ثابت للسير على دربه التوجيهات والقواعد التي يجب مراعاتها التوجيه الأول : قبل طرح موضوع جديد يتعلق بطلب محدد يرجى استخدام خاصية البحث أولاً ، فإذا لم يجد طارح الموضوع بغيته ، فعليه أن يقوم بطرح موضوع جديد ، وفي هذه الحالة على طارح الموضوع أن يعلم أن حسن السؤال شطر الإجابة ، فاللباقة واللياقة والكياسة من الصفات التي يجب أن يتحلى بها طالب العلم. التوجيه الثاني : عند طرح موضوع جديد ، يتم وضع عنوان مناسب للطلب بحيث يفهم الطلب قبل الإطلاع عليه ، وعلى طارح الموضوع أن يبتعد عن العناوين الغير مجدية مثل : ( طلب مساعدة - الرجاء المساعدة - ساعدوني من فضلكم - عاجل وهام - الحقوني - نداء للعباقرة - نداء للعمالقة - إلى آخر تلك العناوين ...) ، وأمر آخر ألا يكون العنوان على شكل سؤال أو طلب .. نبتعد عن كلمة "طلب" مثال تطبيقي : نفترض أنني أريد معادلة تجمع القيم في عمودين العنوان المناسب للطلب يكون بهذا الشكل : معادلة جمع القيم في عمودين والنتائج في عمود آخر التوجيه الثالث : أن يتم توضيح المطلوب بالموضوع بشكل يزال معه أي لبس ، وفي نفس الوقت يراعى الإجمال في الطلب ، فأقصر الخطوط هو الخط المستقيم ، بمعنى "لا إطالة مملة ولا اختصار مخل" ، أي لا يكون طرح الموضوع مختصر للغاية بل يجب أن يستوفي جميع العناصر المطلوبة ، ومن ضمنها أن يحدد طارح الموضوع هل الحل المطلوب بالمعادلات أم بالأكواد أم بكلاهما لتكون الأمور واضحة بالنسبة لمن يريد تقديم المساعدة ، وأن يقوم صاحب الموضوع بإرفاق ملف به بيانات وهمية لتوضيح طلبه وللوصول إلى حل سريع ودقيق ، وإذا صعب على طارح الموضوع شرح المطلوب يمكنه إرفاق بعض النتائج المتوقعة كي يسهل الوصول لحل. التوجيه الرابع : نلاحظ أن شكل المنتدى لا يعجب معظم الأعضاء ، فلما لا نغير بأيدينا الشكل العام للمشاركات ، فيفضل على سبيل المثال استخدام حجم خط كبير 22 على سبيل المثال وجعل الخط عريض Bold مما يجعل المشاركة واضحة ومقروءة بشكل جيد ، كما يمكن استخدام الألوان أي قم بتنسيق المشاركة بشكل جذاب يجعل القاريء لا ينفر منها. التوجيه الخامس : بعد الانتهاء من الموضوع والوصول لحل يرضي صاحب الموضوع ، يرجى أن يتم تحديد أفضل إجابة من خلال النقر على علامة الصح الموجودة بجانب كل مشاركة ، وأن يسجل صاحب الموضوع إعجابه من خلال النقر على "سجل اعجاب بهذا" كنوع من رد الجميل لمن قدم المساعدة ، ويمكن أيضاً أن يقوم بتقييم المشاركة تقييم إيجابي كنوع من التقدير ، وأن تشكر من قدم المساعدة فمن لم يشكر الناس لا يشكر الله. فيما يخص لو كان هناك أكثر من إجابة للموضوع ، يمكن لصاحب الموضوع عمل مشاركة جديدة يجمع فيها كل الحلول ويختار هذه المشاركة كأفضل إجابة التوجيه السادس : لا تكن لحوحاً ، يكفي أن أعضاء المنتدى يقدمون وقتهم و خبرتهم مقابل لا شيء وعندهم أعمال أخرى (مشاغلهم الخاصة) يقومون بها ، و إذا تأخر الرد ، فمن الممكن أن يكون أحد الأعضاء يقوم بمحاولة الإجابة ، وهذا يستغرق بعض الوقت خاصةً إذا كان الموضوع صعباً. التوجيه السابع : حمل الملف المرفق دون زركشات (ألوان و تنسيقات مختلفة) مما يزيد من حجم الملف و أحياناً تكون الألوان مقززة بشكل ينفر منها المساعد (خاصةً إذا كانت ألوان الخلايا غير متناسقة مع لون الخط) التوجيه الثامن : تأكد أن الملف المرفوع غير مصاب بفيروس و غير محمي بكلمة سر ، وإلا لن تجد المساعدة من قبل الأعضاء. التوجيه التاسع : متابعة صاحب الموضوع لموضوعه والتفاعل معه ، فلا يعقل أن يطرح أحدهم موضوع ولا يتابعه إلا بعد مرور وقت طويل ، فهذا يعد من اللامبالاة الغير مرغوب فيها ، والتي تنفر الجميع من العضو. التوجيه العاشر : عدم التسجيل في المنتدى بأكثر من حساب ، وأن يكون اسم الظهور باللغة العربية ومعبر عن الاسم الحقيقي أي (تعريب اسم العضو) ، فلا يجوز أن يكون اسم الظهور اسم واحد وفقط بل أن يكون ثنائي على الأقل أو أن يكون اسم ولقب ، ولذا يرجى عدم استخدام الأسماء المستعارة أو الأسماء باللغة الأجنبية ، فاللغة العربية هي هويتنا ولابد من الحافظ عليها. ** يتم تغيير اسم الظهور أو اسم المستخدم من خلال إعدادات الحساب ثم التبويب اسم المستخدم ، قم بتغيير الاسم ثم انقر كلمة حفظ التوجيه الحادي عشر : عدم طرح أكثر من موضوع لنفس الطلب من نفس العضو ، فهذا يعد مخالفة صريحة ، وليعلم العضو الذي يقوم بذلك أن تكرار الموضوع لن يجدي نفعاً في حالة عدم توضيحه للمطلوب. وفي حالة أن قام العضو بذلك عن طريق الخطأ يقوم العضو بالتنويه في الموضوع وطلب حذف الموضوع نظراً لتكراره. التوجيه الثاني عشر : على من يقدم المساعدة أن يكون مثالاً يحتذى به في العطاء والصبر والحلم وكرم الأخلاق وحسن الإجابة ، يجتذب بتلك الصفات عقول الآخرين وأفئدتهم التوجيه الثالث عشر : عند طرح موضوع يفضل أن يكون هناك طلب واحد فقط إذ أن الموضوع الذي تكثر فيه الطلبات ينفر الأعضاء الذين يريدون تقديم يد المساعدة ، وعلى رأي المثل (من يطارد عصفورين يفقدهما) فما بالك لو طاردت أكثر من طلبين أقصد أكثر من عصفورين ، يمكنك أن تتعامل بذكاء بأن تطرح الموضوع بطلب واحد حتى إذا تم على خير قم على الفور بطرح موضع جديد بطلب جديد وهكذا إلى أن يتم الأمر التوجيه الرابع عشر : يرجلا عدم إرسال رسائل خاصة للأعضاء لطلب المساعدة بشكل شخصي ، لأن هذا الأمر يضايق الكثير من الأعضاء ، وتأكد أن العضو إذا كان لديه معلومة أو يستطيع أن يفيد بشيء ووقته يسمح بذلك فلن يتأخر عنك ، يكفي أن تكتب كلمة "للرفع" في موضوعك ، ليشاهده أكبر عدد من الأعضاء. ** كيفية رفع الصور في المشاركات : ******************************* دمتم على طاعة الله
    1 point
  25. السادة الأفاضل أعضاء المنتدى الكرام مرفق ملف تم تحميله من موقع اجنبي وهو يقوم بتحويل ملفات ال BDF الى امتدادات اخرى ولكن عندي مشكلة الملف لايعمل عندي برجاء المساعدة لأن في ظني الملف يساعد اشخاص كثيرة لهم نفس الطلب . وده رابط شرح كيف يعمل Convert PDF Files Into Different Format.rar
    1 point
  26. الظاهر صار وقت نومي صحيح ، والحل ان تنقل الكود من حدث "الحالي" الى حدث "التحميل" OnLoad: Private Sub Form_Current() End Sub Private Sub Form_Load() DoCmd.MoveSize 500, 500, 1000, 500 Me.InsideHeight = Me.InsideWidth = End Sub جعفر
    1 point
  27. انا اقدر انفعك انو تعمل زر تضغط يظهرلك قائمة منسدله فيها عدة ازرار عند الضغط على اي زر منهم يغلق هذه الواجهة ويفتح واجهة جديدة
    1 point
  28. الله الله عليك يامبدع استاذ جعفر الغالي نعم هذا هو المطلوب يا استاذ جعفر مو بس باقله ودهن وقيمر عرب احنا بالعراق عندنا اشهى افطار هو القيمر العرب بالكاهي وياريت تشرفنا وتزور العراق نكون سعداء بزيارتك الله لايحرمنا من شخصك الكريم والطيب يالطيب ربي يحميك من كل شر يارب
    1 point
  29. السلام عليكم أخي ابو حمادة ، بحسب معلوماتي ممكن تجرب تحط المعادلة ديه على الخلية الخاصة بشهر يناير و تنسخ الى بقية الخلايا مش قادر اعمل نسخ للمعادلة ، مش عارف ايش المشكلة في الصفحة الخاصة بالموقع ، رد استاذنا سليم هو الي قصدته و المعذرة منك اخي @@
    1 point
  30. وعليكم السلام عملت استعلام للجدول Table2 ، بحيث يعطي نتائج السجل تنازليا (التاريخ الجديد يكون اول السجلات) حسب الحقل "تاريخ شغل الوظيفه": . وجعلت هذا الاستعلام كمصدر للنموذج Table2 ، وفي الحدث الحالي للنموذج Table1 ، نكتب هذا الكود: Private Sub Form_Current() If Me.[الوظيفه الحاليه] <> Me.Table2![الوظيفه المرقى عليها] Then Me.[الوظيفه الحاليه] = Me.Table2![الوظيفه المرقى عليها] DoCmd.RunCommand acCmdSaveRecord End If End Sub جعفر 350.Database1.accdb.zip
    1 point
  31. أخي العزيز أحمد الخلل أنك تقوم بحذف الأعمدة من ثم يجب أن تكون الحلقة التكرارية معكوسة أي تبدأ من العمود الأكبر للأصغر ، لأنك لو بدأت كما في مشاركتك فأنه بعد حذف عمود محدد تختلف الإشارة لبقية الأعمدة ..لذا تقوم بالعكس For i = 2 To 183 استخدم السطر التالي بدلاً من هذا السطر For i = 183 To 2 Step -1
    1 point
  32. للأسف أنا خارج نطاق خدمة التجربة .. لظروف فيروسية تشفيرية لكل الملفات في جهازي والحمد لله
    1 point
  33. أكيد عدد الاحتمالات هيزي يعني لو اشتغلنا على الرقمين فقط وقلنا عايزين 4 خانات .. فيكون النتائج 2 ^ 4 =16 شوف إنت عايز كام خانة .. لو عايز 10 خانات من الرقمين فتكون الاحتمالات 2 ^ 10 وهكذا ..
    1 point
  34. والله أنت برررررررررنس شاكر لك أستاذي الحبيب تمت بنجاااح
    1 point
  35. وعليكم السلام أخي العزيز أبو عبد الواجد إن شاء الله كل شيء بعون الله يسير ..فقط الصبر مطلوب وعدم اليأس وعدم الكف عن المحاولات المستمرة هو طريق النجاح والوصول للهدف الحمد لله أن تم المطلوب على خير ، وجزيت خيراً بمثل ما دعوت لي وزيادة
    1 point
  36. إخواني الكرام من لديه وقت فليقم بتلبية طلب أخونا ناصر سعيد حيث أن هناك مشكلة كبيرة بجهازي (فيروس حذر منه العربي .. بيشفر الملفات الموجودة كلها .. وأنا غير قادر على تقديم المساعدة) برجاء تدخل أحد الاخوة للمساعدة ..
    1 point
  37. أخي الفاضل محي الدين إنت تؤمر يا كبير وكلنا بنستفيد في النهاية ..مفيش تعب ولا حاجة .. أنا أحب كل يوم أتعلم شيء جديد ودا فايدة التفاعل اللي قلت عليه تقبل وافر تقديري واحترامي
    1 point
  38. وجزيت خيراً أخونا في الله اللي مش عايز يقولنا على اسمه .. بارك الله فيك ، ومشكور على مرورك العطر بالموضوع تقبل تحياتي
    1 point
  39. أخي الكريم عبد الله فاروق هل قمت بتمكين الماكرو لديك ..لأني ملاحظ في الصورة المرفقة رسالة بها كلمة "Enable Content" ..؟ أمر آخر أعتقد أن الملف بحاجة لتنصيب برنامج Adobe Professional أي النسخة الكاملة من البرنامج التي يمكن من خلالها تحويل ملفات الـ PDF ..هذا والله أعلم .. تقبل تحياتي
    1 point
  40. وعليكم السلام أخي الكريم أبو عبد الواجد إليك الكود التالي عله يفي بالغرض يتم تجميع الكميات من أوراق العمل بعد ورقة العمل المسماة "العناوين" وتستثنى الاوراق ما قبل ذلك حمل الكود من هنا تقبل تحياتي
    1 point
  41. السّلام عليكم و رحمة الله و بركاته أخي الغالي " ياسر العربي " .. بعدما قمت بالمحاولة للآلة الحاسبة .. ظهرت لي مكتوبة 6 أخطاء .. ولم أجد الفورم أصلاً بهذا الملف المرفق .. لو تكرمت و ألقيت نظرة على الملف حاجة ثانية .. بحثت أخي الغالي عن الأداة FRAME .. أين أجدها لو سمحت فائق إحتراماتي WindowsApplication.rar
    1 point
  42. بسم الله الرحمن الرحيم احبتي في الله اليوم باذن الله سنقوم بشرح كيفية ربط الفيجوال بيسك دوت نت مع الاكسيل نقوم بفتح برنامج الفيجوال بيسك دوت نت ثم نقوم بعمل مشروع جديد ونقوم باضافة عدد واحد تكست بوكس textbox وخمسة زر button ووضعهم كما بالصورة وطبعا نقوم من تبويب الخصائص الخاص بالادوات بالتعديل على اي اداة من حيث تغيير الاسم ولون الاداة وشكلها وحجمها وحجم الخط بداخلها وغيرها وغيرها من خواص هناك طرق عدة لربط برامج كثيرة بالفيجوال ومنها الاكسيل وسوف نشرح الطريقة التى احبها واعرفها ايضا وهي ما قمت بشرحها بسلسلة الفيجوال6 وان شاء الله الاختلاف بسيط ولكن الاساس واحد وهنعتمد على المراجع وهنختار المكتبة الخاصة بالاكسيل داخل المراجع بالفيجوال كما شرحناها سابقا ومن يريد معلومة اضافية يدخل على سلسلة الفيجوال6 يراجع نفس الدرس المذكور اعلاه وهو ربط الفيجوال بالاكسيل وهذا هو الرابط سلسلة دروس الفيجوال بيسك 6 الان نقوم بالذهاب الى قائمة البرنامج الرئيسية ونختار منها بروجيكت ثم Add Reference ثم نقوم باختيار com ومنها نختار المكتبة الخاصة بالاكسيل كما موضح بالصورة الان قمنا بتصميم مشروعنا وقمنا بتجهيز المكتبات اللازمة لعمل البرنامج ينقص الان كود عمل البرنامج نضع هذا السطر في اول الكود في ال General في التصريحات العامة يعني نفتح محرر الاكواد ونيجي على اول سطر بالظبط ونضع هذا الكود به السطر دا بيربط بين المرجع وبين البرنامج Imports Excel = Microsoft.Office.Interop.Excel ثم نقوم بالاعلان عن متغيرات لسهولة التعامل مع الاكسيل من داخل برنامجنا كما بالكود التالي ولقد قمنا بشرح مثله في سلسلة الفيجوال6 Public Class Form1 'نضع المتغيرات في بداية تصريحات الفورم 1 'المتغير الاول يشير الى برنامج الاكسيل Dim xlApp As Excel.Application 'المتغير الثاني يشير الى ملف مصنف الاكسيل Dim xlWorkBook As Excel.Workbook 'المتغير الثالث يشير الى ورقة العمل Dim xlWorkSheet As Excel.Worksheet End Class ثم نضع في حدث تحميل الفورم الكود التالي Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load xlApp = New Excel.ApplicationClass 'فتح برنامج الاكسيل جديد xlWorkBook = xlApp.Workbooks.Open("d:\test.xlsx") 'فتح ملف اكسيل xlWorkSheet = xlWorkBook.Worksheets("sheet1")'تم الاشارة للمتغير هنا بالورقة 1 xlApp.Visible = False'اخفاء البرنامج End Sub ثم نأتي للزر الاول وهو زر الادخال وهو ادخال القيمة الموجودة في تكست بوكس1 الى ملف الاكسيل في العمود A وكلما ادخلنا قيمة يضعها تحت الاخرى Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim last As Long'نقوم بانشاء متغير من نوع long 'قمنا بتعريف المتغير هنا على اساسا حساب عدد الصفوف بالعمود الاول التى يوجد بها بيانات بالاضافة +1 last = xlWorkSheet.Cells(xlWorkSheet.Rows.Count, "a").End(Excel.XlDirection.xlUp).Row + 1 'هنا نحدد الخلية a& last وهي اخر خليه بها بيانات بالاضافة 1 للكتابة في السطر التالي الفارغ قيمة ما بداخل التكست بوكس1 xlWorkSheet.Range("a" & last).Value = TextBox1.Text End Sub الكود التالي زر اظهار برنامج الاكسيل Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 'كود سهل وهو اظهار برنامج الاكسيل xlApp.Visible = True End Sub الكود التالي زر اخفاء برنامج الاكسيل Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click xlApp.Visible = False End Sub الكود التالي زر حفظ التغييرات بملف الاكسيل Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click xlWorkBook.Save() End Sub الكود التالي اغلاق برنامج الاكسيل والغاء تعريف المتغيرات Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click xlWorkBook.Save() xlWorkBook.Close() xlApp.Quit() xlApp = Nothing xlWorkBook = Nothing xlWorkSheet = Nothing MsgBox("تم اغلاق ملف الاكسيل") End Sub وبكدا نكون انتهينا من شرح الكود وربط الاكسيل بالفيجوال وهذا هو الكود كامل Imports Excel = Microsoft.Office.Interop.Excel Public Class Form1 Dim xlApp As Excel.Application Dim xlWorkBook As Excel.Workbook Dim xlWorkSheet As Excel.Worksheet Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load xlApp = New Excel.ApplicationClass xlWorkBook = xlApp.Workbooks.Open("d:\test.xlsx") xlWorkSheet = xlWorkBook.Worksheets("sheet1") xlApp.Visible = False End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click xlApp.Visible = True End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim last As Long last = xlWorkSheet.Cells(xlWorkSheet.Rows.Count, "a").End(Excel.XlDirection.xlUp).Row + 1 xlWorkSheet.Range("a" & last).Value = TextBox1.Text End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click xlWorkBook.Save() xlWorkBook.Close() xlApp.Quit() xlApp = Nothing xlWorkBook = Nothing xlWorkSheet = Nothing MsgBox("تم اغلاق ملف الاكسيل") End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click xlWorkBook.Save() End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click xlApp.Visible = False End Sub End Class انا قمت بوضع مثال لتكست بوكس فقط للتوضيح انا عايز منكم فهم الشرح وتطبيقه على نطاق اوسع شوية من المثال الموجود يعني عاوز برامج بجد شغل يعتمد عليه مش مجرد مثال يلا عايز اشوف شغل مش كلام ومش هحط مرفق نهائي الان لحد لما نشوف التفاعل والشغل تقبلو تحياتي ياسر العربي يتبع
    1 point
  43. لكي تتبع الكود سطر بسطر يمكنك استخدام مفتاح F8 من لوحة المفاتيح وتفتح نافذة اللوكال لمتابعة أسطر الكود لمزيد من التفاصيل قم بالإطلاع على الرابط التالي ... وستعرف التفاصيل لكيفية استخدام مفتاح F8 وسيفيدك بشكل كبير جداً الرابط من هنا
    1 point
  44. استاذ ياسر ابوالبراء السلام عليكم ورحمة الله مهما كتبنا شكرا لك فان ما تقدمه لنا اكثر بكثير حلول وشروحات مفيده للغاية اعزكم الله نصركم الله بارك الله لك في مالك وولدك جزاكم الله خيرا بنجمع الدروس ونريد في نهاية الدروس احنا طمعين شوية المصفوفات بالذات ليس لها شروحات واضحة في المنتديات العربيه وانت تعلم انها الخطوه المهمه للبرمجه حيث تتعامل مع البيانات الكبيره والمصفوفه ليست داله كما اعلم وانما هى متغيرات كثيره تحت متغير واحد فنرجو طرح امثله عملية ثم ثم تشرح لنا كيف فكر في المثال ابوالبراء للوصول للهدف اتمنى ان يكون وصل المطلوب
    1 point
  45. المتغيرات Variables سنبدأ بتعريف المتغير Variable و هو يشير إلى موقع تخزينى فى الذاكرة و يمكن أن يحتوى على بيانات (عددية أو حرفية) ، و يتم تعريف المتغير أثناء كتابة البرنامج ، و يمكن تغيير محتوى هذا المتغير أثناء سير البرنامج ، و كل متغير له اسم وحيد يعرف به و كل متغير له اسم وحيد يعرف به و لا يمكن وجود متغيرين أو أكثر بنفس الاسم فى مكان واحد بالذاكرة. عند تحديد اسم المتغير يجب اتباع شروط محددة: .2 أن يبدأ بحرف هجائى (انجليزى : A,B, …..Y,Z or a,b,….,y,z) .3 ألا يحتوى على علامات خاصة (؟،! ،: ، ....) .4 ألا يكون هذا الاسم من الكلمات المحفوظة فى اللغة البرمجية مثل End , Byte وغيرها .5 الاسم قد يتضمن أرقام و حروف. أنواع المتغيرات : نأتى لجزء مهم فى تكويد المتغيرات و هو تعريف المتغير و هو الإعلان عن اسم المتغير و نوعه داخل نافذة البرمجة ، و من صور المتغير داخل نافذة البرمجة: Dim VariableName As DataType أمثلة تعريف على أنواع المتغيرات السابقة: او من الممكن ان نعرفها هكذا Dim myIntegr As Integer myInteger =3 وهكذا مع جميع المتغيرات Variables وهذا درس مرفق لاخي الغالي ياسر ابو البراء عن المتغيرات Variables في الVBA وطبعا وجهه الشبه كبير بين الVBA والدوت نت من حيث المتغيرات وبعض الاكواد البرمجية بل ان معظم تعريف المتغيرات Variablesداخل نوافذ البرمجة عامة كلها شبه متطابقة طيب محتاجين مثال فيه متغيرات كتطبيق عملي اقول لكم لو قمتم بتطبيق درس الآله الحاسبة ستجدو ان به متغيرات من النوع Double و String المتغير Double تم تعريفه ليكون للقيم المدخلة من الآله الحاسبة ولماذا اختارنا هذا المتغير لانه يدعم الكسور لان العمليات الحسابية لن تخلو دائما من الكسور والمتغير String تم اختياره للعمليات الحسابية وهي العلامات + - * / واستخدمناه هنا ليتعامل مع العلامات على انها نص اتمنى ان اكون قد وصلت المعلومة بطريقة سهلة ياريت بقي نلاقي امثلة فيها متغيرات منوعه كدا من الجميع تقبلو تحياتي ياسر العربي يتبع المتغيرات نبدأ الحلقة.rar
    1 point
  46. اخى ابوالبراء تسلم اخى اسال الله ان يمد في عمرك وان يحسن عملك جزاكم الله خير
    1 point
  47. اخى ابو البراء السلام عليكم ورحمة الله ابداعاتك كتيره ما شاء الله اظن الاكواد دى طفره لانها الحماية الحقيقة اذا فكت الحماية الغيت الاكواد واليوزر فورم
    1 point
  48. اخى الكريم البيانات تم اختبارها على نتائج وقد ظهرت صحيحه بنسبة 100% فهل لك ان تذكر لى اين ظهر الخطا ؟ هل ظهر فى النشاط التشغيلى او الاستثمارى ام التمويلى ام لو اضفنا سنه اخرى بالطبع سيؤثر فى النتائج والارتباطات والرسومات البيانيه وستضطر لتعديل الملف تحياتى اليك اخى الكريم
    1 point
  49. 1 point
×
×
  • اضف...

Important Information