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

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

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

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

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


    • نقاط

      12

    • Posts

      13165


  2. الصـقر

    الصـقر

    الخبراء


    • نقاط

      7

    • Posts

      1836


  3. جعفر الطريبق

    جعفر الطريبق

    الخبراء


    • نقاط

      6

    • Posts

      140


  4. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      6

    • Posts

      9927


Popular Content

Showing content with the highest reputation on 10/06/15 in all areas

  1. بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن شروحات الكمبوبوكس ( ComboBox) كما قلنا من قبل ان ComboBox هو عباره عن وعاء يتم تعبئته ببيانات محدده لتظهر للمستخدم ليختار منها اثناء العمل على الفورم أن شاء الله هيتم تناول الموضوع على خمس مراحل 1- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم 2- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم 3-وقت تنفيذ الكود الخاص بالـ ComboBox 4-التعامل مع الـ ComboBox فى لغة البرمجه 5-معرفة مهارات تعبئة وتغذية ComboBox باكثر من طريقه التقليديه والاحترافيه منها 6-كيفية اجبار المستخدم على الاختيار من الـ ComboBox نبدأ بسم الله أولا :- كيفية انشاء ComboBox على الفورم اثناء عملية التصميم لأضافه كمبوبوكس جديد على الفورم يوجد طريقتين الطريقه الاولى الطريقه الثانية هذه الطريقه يتم من خلالها نسخ اى عنصر او اكثر من العناصر على الفورم ولصقها لعمل عناصر جديده وسوف يكون لها نفس الخصائص للعناصر الذى تم اخذ النسخ منها وفيما يعد يمكنك تغيير الخصائص للعناصر الجديد كما يحلو لك ******************************************************************************************** ثانيا:- التعرف على خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم فى الصورة قبل السابقه على اليسار يوجد خصائص الكمبوبوكس محاطه بمستطيل احمر وهذه صوره مكبره لخصائص الكمبوبوكس هنمسك اهم الخصائص والاكثر شيوعا فى الاستخدام ونبدا نشرح بالتفصيل 1- الخاصيه (Name) :- Name هو اسم الـ ComboBox المستخدم فى الاكواد وعند انشاء اى ComboBox يقوم الفيجوال بيسك بأعطاء اسم افتراضى له ComboBox1 واذا قمنا بعمل ComboBox ثانى فأن الفيجوال بيسك يعطى له اسم افتراضى ComboBox2 وانا افضل عدم تغيير اسماء ComboBox الافتراضيه التى عرفها الفيجوال بيسك فعندما نريد كتابه كود خاص بالعنصر ComboBox1 فى حدث Change على سبيل المثال يكون بداية الكود كالتالى Private Sub ComboBox1_Change() فأذا قمنا بتغيير اسم ComboBox1 كما عرفه الفيجوال بيسك الى اسم اخر من خاصيه Name وليكن مثلا غيرناه الى (Customers ) فهنا عند كتابة كود فى حدث Change يكون كالتالى Private Sub Customers_Change() ففى حال تغيير الاسم وعدم التزامك بالاسم داخل محرر الاكواد وكتابة كود يحدث Error ------------------------------------------------------------------------------------------------------------------------------------------------ 2- الخاصيه ( Back Color):- هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك أنظر الصوره التاليه 3- الخاصيه ( Back Style):- هذه الخاصيه تحمل خيارين هما Fm Back Style TransParent - 0 ( عند الاختيار سيتوقف عمل الخاصيه Back Color حتى ولو كان تم اختيار لون بها وليكن خلفية سماوية كما هو بالمثال السابق سيظهر الـ ComboBox بخلفية ساده ) Fm Back Style Opague - 1 ( عند الاختيار سيتم عمل الخاصيه Back Color وهيكون الـ ComboBox بخلفية حسب الاختيارك من Back Color ) لذالك هذه الخاصيه مرتبطه بالخاصيه Back Color ********************************************************************************************************************** 4- الخاصيه ( Border Color):- هذه الخاصيه تتيح للمستخدم تغيير لون حدود اللـ ComboBox على اليسار يوجد سهم اضغط عليه ستظهر لك قائمة يمكنك من خلالها اختيار اللون المناسب كما يحلو لك 5- الخاصيه ( Border Style):- هذه الخاصيه تحمل خيارين هما Fm BorderStyle none - 0 ( عند الاختيار سيتوقف عمل الخاصيه Border Color حتى ولو كان تم اختيار لون بها وليكن لون حد أحمر سيظهر الـ ComboBox بلون حد ساده ) Fm BorderStyle Single - 1 ( عند الاختيار سيتم عمل الخاصيه Border Color وهيكون حدود الـ ComboBox بخلفية حسب الاختيارك من Border Color) لذالك هذه الخاصيه مرتبطه بالخاصيه Border Color مثال لو اختارنا لون خلفيه للـ ComboBox لون سماوى ولون حدود احمر شاهد الصورة ولاحظ ان الخاصيه Back Color اختيارها 1 وايضا الخاصيه Border Color اختيارها 1 شاهد الصوره التالية ولكن لو كان الخاصيه Back Color اختيارها 0 وايضا الخاصيه Border Color اختيارها 0 سوف يكون لون الخلفية ساده والحدود بدون لون **************************************************************************************************************** 6- الخاصيه ( Bound Column):- هذه الخاصيه تتيح للمستخدم تحديد العمود الذى سيظهر فى عنصر اخر عند الاختيار من الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 7- الخاصيه ( Column Count):- هذه الخاصيه تتيح للمستخدم تحديد كم عدد الاعمده التى ستظهر فى اللـ ComboBox بمعنى ادق يمكن عرض اكثر من عمود فى الكمبوبوكس سنرى لاحقا مثال عملى ************************************************************************************************* 8- الخاصيه ( Row Source ):- هذه الخاصيه هى اولى الطرق التقليدية لتعبئة الكمبوبوكس بالبيانات مثال عام على الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم طبعا عند الاختيار من الكمبوبوكس سيظهر اسم العميل (اللى هى تعتبر العمود رقم واحد فى الكمبوبوكس ) فى الكمبوبوكس وتختفى قائمة العملاء فلو انا عايز عند الاختيار ايضا يظهر كود العميل فى التكست بوكس رقم 1 ( اللى هو باللون الاصفر فوق) اذن لازم نروح للخاصيه Bound Column واكتب 2 ( أى العمود رقم 2 هو القيمة التى ستظهر فى التكست بوكس رقم 1 ) شاهد الصورة باقى خطوة تانية وهى عمل كود فى حدث تغيير الكمبوبوكس كالتالى Private Sub ComboBox1_Change() TextBox1.Value = ComboBox1.Value End Sub هذا الكود كتبنا فيه ان التكست بوكس 1 يساوى الكمبوبوكس ( واحد هيقولى مش الكمبوبوكس فى عمودين اذن التكست بوكس هيكون اى عمود عند الاختيار هقوله ان الخاصيه Bound Column كتبنا فيها العمود رقم 2 اذن القيمة التى ستظهر فى التكست بوكس 1 هى العمود 2 ) وبكدا عند التشغيل الفورم والاختيار من الكمبوبوكس سيظهر قيمة العمود رقم 1 وهو اسم العميل فى الكمبوبوكس وسيظهر قيمة العمود رقم 2 وهو كود العميل فى التكست بوكس 1 ( بناء على تحديد الخاصيه Bound Column كتبنا فيها العمود رقم 2 وايضا الكود بحدث تغيير الكمبوبوكس ) وعند تشغيل الفورم واختيار من الكمبوبوكس شاهد النتيجة كدا اخدنا مثال عملى على الثلاث خصائص وهما الخاصيه ( Bound Column) و الخاصيه ( Column Count) و الخاصيه ( Row Source ) ************************************************************************************************************************** 9- الخاصيه ( Column Heads ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور رؤوس للاعمده او عدم ظهورها وهى تحمل خيارين أما True أو False عندد اختيار False وهو الاختيار الافتراضى بالفيجوال لا يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره عندد اختيار True يظهر رؤوس للاعمده بـ ComboBox1 على الفورم عند فتحه شاهد الصوره كما هو مبين بالصورة ان رؤوس الاعمده هى الخلية A1 والخلية B1 وذالك لان المدى للكمبوبوكس هو من A2:B5 فالفيجوال بيسك يقوم بشكل تلقائى بقراءة اول خلية تسبق المدى *********************************************************************************** 10- الخاصيه ( Column Widths ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الاعمده التى ستظهر فى الكمبوبوكس فى سبيل المثال عرض العمود رقم 1 هو 200 وعرض العمود رقم 2 هو 100 اذن لازم تتكتب كالتالى 200Pt;100Pt ( بينهم فاصله ; تكتب من خلال جعل لغة الكيبورد انجلش ثم اضغط على حرف ك بالعربى) شاهد الصوره واحد شاطر هيقولى هو لازم علشان اظهر العمود الثانى اتحرك بالاسكرول بار هقوله لا يوجد طريقه حلوة وهى الخاصيه ( List Width ) هنشرحها ونعرف ازاى نخليها تحل لنا المشكله وتظهر الاعمده بدون الاسكرول بار 11- الخاصيه ( List Width ):- عرض List الافتراضى هو عرض الكمبوبوكس مجموع عرض الاعمده كتبنا فى المثال السابق فى الخاصيه Column Widths ان عرض الاعمده هو 200Pt;100Pt اذن لابد من جعل عرض List مجموع عرض الاعمده 200Pt;100Pt يعنى هيساوى 300Pt وبكدا مش هيكون فى اسكرول بار والاعمده كلها ظاهر عند تشغيل الفورم شاهد الصوره ************************************************************************************************************** 12- الخاصيه ( DropButtonStyle ):- هذه الخاصيه تتيح للمستخدم التحكم فى شكل الكمبوبوكس شاهد الصوره اختر أى من الاشكال فى الصورة التى تناسب ذوقك ********************************************************************************** 13- الخاصيه ( Enabled ):- هذه الخاصيه تحمل خيارين true و False عند اختيار true سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار False لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox ويكون الشكل باهت ********************************************************************************************** 14- الخاصيه ( Locked ):- هذه الخاصيه تحمل خيارين true و False عند اختيار False سوف يكون بأمكان المستخدم الاختيارمن محتوى ComboBox وهو الاختيار الافتراضى بالفيجوال وعند اختيار True لا يكون بأمكان المستخدم الاختيارمن محتوى ComboBox يعنى هيكون فى حمايه على ComboBox وهذه الخاصيه تشبه تماما الخاصيه Enabled الفرق الوحيد بينهم هو فى شكل التنسيق للكمبوبوكس ********************************************************************** 15- الخاصيه ( Font ):- وهذه الخاصيه تتيح للمستخدم التحكم فى نوع وسماكة وحجم الخط للنص داخل الـ ComboBox الافتراضى فى الفيجوال بيسك نوع الخط هو ( Tahoma ) والسماكه هى (Regular) وحجم الخط هو ( 8) ********************************************************************************************************** 16- الخاصيه ( Font Color ):- وهذه الخاصيه تتيح للمستخدم التحكم فى اختيار لون الخط للنص داخل الـ ComboBox ********************************************************************************************* 17- الخاصيه ( Height ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ارتفاع الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد الارتفاع للـ ComboBox أو كتابة رقم للارتفاع فى الخاصيه Height ********************************************************************************************* 18- الخاصيه ( Left ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الايسر للفورم **************************************************************************** 19- الخاصيه ( Top ):- وهذه الخاصيه تتيح للمستخدم التحكم فى بعد الـ ComboBox عن الضلع الاعلى للفورم مثال لو وضعنا قيمة Left 78 *** وقيمة Top 138 ستجد الصوره التالية *********************************************************************************************************************** 20- الخاصيه ( List Row ):- هذه الخاصيه من الخصائص المهمه لانها تتيح للمستخدم التحكم فى عدد الصفوف التى يتم عرضها عند فتح الـ ComboBox شاهد الصوره لو عايزين اظهار عدد 3 صفوف فقط شاهد الصوره التالية ************************************************************************************************************ 20- الخاصيه ( List Style ):- شاهد الصوره تتضح لك اهميه الاداه فمن خلالها يمكن التحكم فى طريقه عرض البيانات عن فتح الكمبوبوكس **************************************************************************************************************** 21- الخاصيه ( Width ):- وهذه الخاصيه تتيح للمستخدم التحكم فى عرض الـ ComboBox فيمكنك أما من خلال التصميم السحب بالماوس للاسفل لتحديد العرض للـ ComboBox أو كتابة رقم للعرض فى الخاصيه Width **************************************************************************************************************** 22- الخاصيه ( Visible ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهور ComboBox عند عرض الفورم وعند الضغط على السهم المجاور لها ستجد لها خيارين True و False عندد اختيار True سوف يظهر الـ ComboBox على الفورم عند فتحه ( وهذا هو الخيار الافتراضى من الفيجوال بيسك ) وعند اختيار False ٍسوف يختفى الـ ComboBox على الفورم عند فتحه يعنى هيكون غير ظاهر ومخفى لا يراه المستخدم ****************************************************************************************************************
    4 points
  2. استبدل الكود بهذا Function myfacteur(Myfact As Long, n1 As Integer, n2 As Integer, n3 As Integer, n4 As Integer) As Long '''''''''''''''''''''''''''''''''''''''''' Select Case Myfact Case 0 To 70 How_Many = Myfact * n1 Case 70.00001 To 80 How_Many = (70 * n1) + (Myfact - 70) * n2 Case 80.0001 To 200 How_Many = (70 * n1) + (10 * n2) + (Myfact - 80) * n3 Case Is > 200.001 How_Many = (70 * n1) + (10 * n2) + (120 * n3) + (Myfact - 200) * n4 End Select myfacteur = How_Many '''''''''''''''''''''''''''''''''''''''' End Function و يكون شكل المعادلة الجديدة =myfacteur(f3,5,9,15,17)
    2 points
  3. السلام عليكم ورحمة الله وبركاتة كل الشكر والاحترام لاخي الاستاذ عبد العزيز على معلوماتة ونشاطة المتميز واسمح لي اخي الكريم بالمشاركة في هذا الموضوع لتغير تنسيق الارقام باللست بوكس حتى تظهر بالعربية(الهندية) عليك تغير تنسيق الارقام من الويندوز نفسة كما بالصورة المرفقة .
    2 points
  4. ورد خطأ في المرفق السابق وهذا تصحيحه ترتيب حسب التاريخ2.rar
    2 points
  5. استادي الفاضل ياسر عندما تفتح ملفا معينا ثم بعد دالك تفتح ملفا ثانيا فان الملف الثاني ينفتح في نفس برنامج الاكسيل مع الملف الاول - دالك هو السلوك العادي للاكسيل في تعامله مع فتح الملفات ... الكود موضوع هده المشاركة هدفه هو جعل الملف الثاني (يعني الملف صاحب الكود) ينفتح لوحده في نسخة ثانية على انفراد New Excel instance .. أحيانا المستخدم لا يرغب في أن يكون أكثر من ملف واحد مفتوح و بنفس الطريقة ادا اشتغل الكود فانه لو تم فتح الملف اليتيم أولا (يعني الملف صاحب الكود) ثم بعد دالك فتح ملفا ثانيا فان الملف الثاني ينفتح في نسخة أخرى حيث يبقى الملف الأول دائما وحيدا في الاكسيل
    2 points
  6. انسخ الكود من هذا الملف الى ملفك و جربه (في موديل جديد) و اكتب الدالة التالية في الخلية تحت فيمة الاستهلاك مباشرة واسحب نزولاً =myfacteur(f3,5,9,17) facteur_electrique.zip
    2 points
  7. السلام عليكم كما تعلمون لا يوجد في الاكسيل حدث مرتبط بالنسخ أو القص ... هدا كود يملأ دالك الفراغ أضف الكود التالي الى ال ThisWorkbook Module : تنبيه : لكي يبدأ الكود في الاشتغال يجب أولا تنفيد الكود الموجود داخل ال Private Sub Workbook_Open() أو غلق الملف ثم اعادة فتحه Option Explicit Private WithEvents Cmbrs As CommandBars #If VBA7 Then Private Declare PtrSafe Function GetClipboardSequenceNumber Lib "user32" () As Long #Else Private Declare Function GetClipboardSequenceNumber Lib "user32" () As Long #End If Private Sub Workbook_Open() Set Cmbrs = Application.CommandBars End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Set Cmbrs = Nothing End Sub Private Sub Cmbrs_OnUpdate() Dim bCancel As Boolean Dim sClipData As String Static lSequenceNumber As Long On Error Resume Next With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") If lSequenceNumber = GetClipboardSequenceNumber Then Exit Sub lSequenceNumber = GetClipboardSequenceNumber .GetFromClipboard sClipData = .GetText sClipData = Left(sClipData, Len(sClipData) - 2) Select Case True Case Application.CutCopyMode = xlCopy Call Workbook_CellCopy(Selection, sClipData, bCancel) Case Application.CutCopyMode = xlCut Call Workbook_CellCut(Selection, sClipData, bCancel) End Select End With If bCancel Then Application.CutCopyMode = False End Sub 'pseudoevents : '============ Private Sub Workbook_CellCopy(ByVal Target As Range, ByVal ClipboardData As String, ByRef Cancel As Boolean) If MsgBox("You are about to copy the following text to the clipboard:" & vbCr & _ vbCr & "'" & ClipboardData & "' " & vbCr & vbCr & "Go ahead ?", vbYesNo + vbQuestion, "Officena") = vbNo Then Cancel = True End If End Sub Private Sub Workbook_CellCut(ByVal Target As Range, ByVal ClipboardData As String, ByRef Cancel As Boolean) If MsgBox("You are about to cut the following Range to the clipboard:" & vbCr & _ vbCr & "'" & Target.Address(external:=True) & "' " & vbCr & vbCr & "Go ahead ?", vbYesNo + vbQuestion, "Officena") = vbNo Then Cancel = True End If End Sub
    2 points
  8. مشاركة مع اخوتي جرب ان يكون زر التالي به الحدث : DoCmd.GoToRecord , , IIf(CurrentRecord = Recordset.RecordCount, acLast, acNext) بالتوفيق
    2 points
  9. السلام عليكم ورحمة الله لست أدري إن كنت قد فهمت المطلوب... انظر إلى المرفق وقد تم فيه إضافة كود دالة مستحدثة تعمل عمل الدالة CONCATENATE مع بعض الخصوصية... أرجو من الله أن يكون فيه المطلوب أو بعضه... (مع خاصية التبديل بين عمودي التحويل من رقم العمود في الخلية I1 إلى رقم العمود في الخلية M1) بن علية الحروف المعكوسة.rar
    2 points
  10. السلام عليكم ورحمة الله وبركاته من المعروف ان الاوفيس يأتي بصيغة 32 بت وصيغة 64 بت ، ونظام التشغيل وندوز كذلك يأتي بصيغة 32 بت و 64 بت ، وقد يختلط الأمر على بعض الاشخاص فيعتقدون بأنه يجب تنصيب الاوفيس 64 بت على الوندوز 64 بت ، بينما في واقع الامر ، فإن مايكروسوفت توصي بإستخدام الاوفيس 32 بت على جميع نظم التشغيل ، الرابط التالي من مايكروسوفت يوضح هذا: https://technet.microsoft.com/en-us/library/ee681792.aspx وهناك حالات خاصة لتنصيب الاوفيس 64 بت (كذلك المعلومة موجودة في الرابط اعلاه) ، وهذه الحلات لا تنطبق على الاكسس. ومن المعروف انه اذا كان لديك الاوفيس 64 بت ، فإن معظم البرامج السابقة والتي تحتوي على دالة API المحتوية على 32 بت ، فإن البرنامج لن يشتغل وسيعطيك أخطاء لذلك ، وكما يقول المثل: الباب اللي يجيك منه ريح ، سده واستريح فاذا عندك اوفيس 64 بت على جهازك ، فآن الاوان ان تمسح/تلغي تنصيبه ، وتنصب اوفيس 32 بت ---------------------------------------------------------------------------------------------------------------- تحديث بتاريخ: 20-5-20 في الصفحة الرسمية لمايكروسوفت بتاريخ 8/3/2019 ، فإن مايكروسوفت الآن توصي بتنصيب الاوفيس نواة 64 بت ، وهي النواة التي يتم تنصيبها تلقائيا في الاوفيس 2019 والاوفيس 365. طبعا لا يمكن تنصيب الاوفيس نواة 64 بت ، إلا على الوندوز نواة 64 بت. شو فائدة هذه الرسالة لنا؟ اعتقد من الافضل ان نبدأ بتحويل برامجنا الى النواة 64 بت ، فقد يأتي اليوم الذي تُلغى في نواة 32 بت جعفر
    1 point
  11. أعجبنى هذا الموقع فاردت ان اشارك محتوياته معكم تحياتى للجميع http://csu.kau.edu.sa/Pages-تدريبات-مادة-مهارات.aspx
    1 point
  12. السلام عليكم ورحمة الله وبركاته إخواني الكرام في موضوع للأخ الحبيب محمد حسن أبو يوسف ، قمت بعمل تصفية للبيانات بناءً على مربع نص ، إلا أنه في مشاركة للأخ الغالي رشراش علي أن الكود لا بعمل مع الأرقام ولا يعطي نتيجة ، كما أن الأخ أحمد أبو زيزو طلب مني شرح خطوات العمل فيما يتعلق بهذا الموضوع رابط الموضوع وبناءً على طلب إخواني ، وهم يدركون أنني لا أتأخر عليهم أبداً أقدم لكم موضوع اليوم فارتأيت (حلوة ارتأيت دي ... ) أن أخصص موضوع لهذا الأمر ، نظراً للطلب عليه ، ونظراً للفائدة المرجوة منه ، حيث أنه يسهل عملية البحث من خلال تصفية البيانات المطلوبة. يعتمد الملف المرفق على مثال بسيط للتطبيق ، تم إدراج مربع نص 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 أترككم مع الملف المرفق .. قوموا بتجربة الملف .. تم إدراج بيانات مختلفة نصوص باللغة العربية وباللغة الإنجليزية وأرقام ... حمل الملف من هنا تقبلوا تحياتي أخوكم ياسر خليل أبو البراء
    1 point
  13. هي بالتتالي الاولي ٧٠ وحدة التأليه ٨٠ وحدة من بعد ال ٧٠ الاولى التالية ٢٠٠ وحدة من بعد ال ١٥٠ السابقة التالية اكثر من ٣٥٠ وحدة السابقة وفعلا اخر ملف نفذها بدقة لكود الاستاذ الرائع سليم حاصبيا
    1 point
  14. 1 point
  15. الله الله عليك أستاذنا القدير طلعت محمد حسن على الطريقة المميّزة ..بارك الله فيك .. جزاك الله خيرًا و زادها بميزان حسناتك .. جاري التجريب .. لأنّها ستكون الأسهل إحتراماتي سيدي الكريم
    1 point
  16. السّلام عليكم و رحمة الله و بركاته أخي الكريم أحمد مرجان .. لاحظ الملف .. كل شيء متوقّف على الموديل رقم 2 هو أساس العملية .. و كنصيحة أخوية إذا كانت العملية تخص قاعدة بيانات لأسماء و عناوين ..قم بعزل ليست بوكس الأرقام الهندية لأنّ الموديل يعمل على الأرقام فقط فائق إحتراماتي الأرقام الهندية.rar معذرة أخي الكريم أحمد مرجان .. نسيت الملف : الأرقام الهندية.rar
    1 point
  17. تفضل يا أبا سليمان بالمعادلات فقط اسحب المعادلات إلى آخر سطر تريده ترتيب حسب التاريخ3.rar تفضل يا أبا سليمان بالمعادلات فقط اسحب المعادلات إلى آخر سطر تريده
    1 point
  18. هذا المرجع هو الأكبر والأكثر إحترافيه بين كل كتب لغة برمجة الـ MQL4 MQL4 باللغة العربية لأول مره http://www.fx-arabia.com/vb/uploaded/2314_11331114576.pdf http://www.fx-arabia.com/vb/uploaded/2314_01332255142.pdf http://www.fx-arabia.com/vb/uploaded/2314_01332927463.pdf http://www.fx-arabia.com/vb/uploaded/2314_01334728665.pdf http://www.fx-arabia.com/vb/uploaded/2314_01337015154.pdf http://www.fx-arabia.com/vb/uploaded/2314_01338014000.pdf http://www.fx-arabia.com/vb/uploaded/2314_01338991943.pdf http://www.fx-arabia.com/vb/uploaded/2314_01342532366.pdf http://www.fx-arabia.com/vb/uploaded/2314_01344333724.pdf http://www.fx-arabia.com/vb/uploaded/8190_01366108454.pdf منقول للفائدة
    1 point
  19. السادة الاعضاء الكرام السلام عليكم ورحمة الله وبركاته ،، لقد تعلمنا على يد استاذ قدير اسمه خبور خير كانت بصماته واضحة على الجميع ويمتلك مهارة منقطعة النظير وقد غبت فترة ليست بالقصيرة عن المنتدى فوجدته يخلو من الاخ الكريم فأرجو ممن يعرف اخباراً عنه ان يبلغه تحياتنا ويطمنا عنه . تحياتي لكم وادعو الله ان يحفظ الجميع . هاشم احمد طه (HAT)
    1 point
  20. أخي الكريم قلم الإكسيل إليك الدالة المعرفة التالية تغنيك عن استخدام الجدول الموجود Function dhTranslate(ByVal strIn As String, Optional ByVal strMapIn As String, Optional ByVal strMapOut As String, Optional fCaseSensitive As Boolean = True) As String Dim intI As Integer Dim intPos As Integer Dim strChar As String * 1 Dim strOut As String Dim intMode As Integer strMapIn = Join(Array("أ", "ب", "ت", "ث", "ج", "ح", "خ", "د", "ذ", "ر", "ز", "س", "ش", "ص", "ض", "ط", "ظ", "ع", "غ", "ف", "ق", "ك", "ل", "م", "ن", "ه", "و", "ي")) strMapOut = Join(Array("أ", "ب", "ج", "د", "ه", "و", "ز", "ح", "ط", "ي", "ك", "ل", "م", "ن", "س", "ع", "ف", "ص", "ق", "ر", "ش", "ت", "ث", "خ", "ذ", "ض", "ظ", "غ")) If Len(strMapIn) > 0 Then If fCaseSensitive Then intMode = vbBinaryCompare Else intMode = vbTextCompare End If If Len(strMapOut) > 0 Then strMapOut = Left$(strMapOut & String(Len(strMapIn), _ Right$(strMapOut, 1)), Len(strMapIn)) End If For intI = 1 To Len(strIn) strChar = Mid$(strIn, intI, 1) intPos = InStr(1, strMapIn, strChar, intMode) If intPos > 0 Then strOut = strOut & Mid$(strMapOut, intPos, 1) & " " Else strOut = strOut & strChar & " " End If Next intI End If dhTranslate = strOut End Function الحروف المعكوسة.rar
    1 point
  21. بن علية انتي علي ودوم في العلا فعلا هو ما اريد لا تقل "ان كنت قد فهمت المطلوب" فأنت مصنع الفهم ودكتوراة في الفهم بارك الله فيك ووفقك وسدد خطاك وغفر لك ولوالديك ولجميع المسلمين ووسع عليك في الرزق والخيرات وإن شاء الله ستتهاطل عليك نعمه مثل قطرات الأمطار الغزيرة ويحفظك ربنا الله الحفيظ من سوء ومرض وعرض وفعلا نزلت الملف ونجح كاملا تاما عاما 100000000000000 % البرمجة صحيحة ليت مخي يسرق شيء من مخك بس للاسف اخاف من السجن
    1 point
  22. أخي الكريم سليم 'أو يمكن استخدام المعادلة التالية لتؤدي نفس الغرض =LEFT(A2,FIND("*",A2)-1)*RIGHT(A2,FIND("*",A2)-1) 'وضع المعادلة التالية [Test] أو يمكن تسمية نطاق باسم معين وليكن = EVALUATE($A2) 'ضع المعادلة التالية [B2] في الخلية =Test Evaluate.rar
    1 point
  23. أخي الغالي جعفر صراحةً لم أفهم الفكرة .. هل من الممكن إلقاء مزيد من الضوء عىلى فكرة الموضوع؟
    1 point
  24. السلام عليكم تجدون بالمرفق شرح سريع RAND.rar
    1 point
  25. أخى وأستاذى الغالى جعفر زادك الله بسطةً فى العلم و الرزق أشكرك على هذا التوضيح أخى وأستاذى الغالى ياسر زادك الله بسطةً فى العلم و الرزق أشكرك على هذا الدعاء
    1 point
  26. جزاك الله خيراً أستاذ جعفر . مع الأخذ بعين الإعتبار أن المعادلة ترجع نتيجة أول أصغر تكرار، بمعنى أنه لو كان هناك رقمان مثل 3 - 6 مثلاً يظهران مرة واحدة فإن النتيجة تظهر للأسبق منهما في الترتيب.
    1 point
  27. السلام عليكم أخي العزيز إستخدم الدالة Ceiling بفرض أن الرقم المراد تقريبه في الخلية A1 فتكون الصيغة كالتالي =CEILING(A1,0.05) ثم إنسخها للأسفل لباقي الأرقام
    1 point
  28. اخى الكريم ما تطلبه هو برنامج كامل فهل اطلعت على هذا الرابط هو تماما ما تريد تقبل تحياتى
    1 point
  29. على نقر الزر ، اعمل هذا الكود Me.allowadditions=true DoCmd.GoToRecord , ,acNew او مثل إقتراح الأخ husamwahab جعفر
    1 point
  30. بعد اذن الاخوة ارجو ان تسمحو لي بالمشاركة جرب هذا الكود في زر امر التالي DoCmd.GoToRecord , , acNext If Me.NewRecord Then DoCmd.GoToRecord , , acPrevious End If
    1 point
  31. إنَّا لله وإنا إليه راجعون خبر وفاة علم من أعلام الثقافة في المنتدي خبر هزنا وأثر فينا جميعا ربنا يرحمك ياأستاذنا الرائع صاحب القلب الصافي ربنا يوسع عليك في قبرك ويجعل أعمالك وكلامك الطيب صدقة جارية لك وداعا أستاذي
    1 point
  32. أخي الحبيب مختار أخي الحبيب جعفر بارك الله فيكما وجزاكما الله خير الجزاء في الدنيا والآخرة
    1 point
  33. أخي الحبيب حسام بارك الله فيك وجزاك الله كل خير إيماناً منا بروح الفريق واللعبة الحلوة أحب أثري الموضوع بدالة تقوم بالمهمة Function SumByColor(CellColor As Range, rRange As Range) Dim cSum As Double, CL As Range Dim ColIndex As Integer ColIndex = CellColor.Interior.ColorIndex For Each CL In rRange If CL.Interior.ColorIndex = ColIndex Then cSum = WorksheetFunction.Sum(CL, cSum) End If Next CL SumByColor = cSum End Function تقبلوا تحياتي Sum Colors Using UDF Function.rar
    1 point
  34. مش هطول في الكلام أخي الغالي مختار هما كلمتين وبس :: ما أروعك!
    1 point
  35. السّلام عليكم و رحمة الله و بركاته بارك الله أستاذنا الفاضل مختار حسين محمود .. كود رائع و الفكرة أروع .. نقلته إلى حدث الذيس وورك بوك .. فأصبح الميساج بوكس عبارة عن رسالة إشهارية إفتتاحية .. جزاك الله خيرًا و زادها بميزان حسناتك
    1 point
  36. الاستاد الفاضل مختار حسين شكرا على المتابعة في بداية الماكرو Test توجد ال Variable eAction و ال Variable oTargetRange ... فالاولى تعطي الكود امكانية اختيار مجال الخلايا و الثانية اختار التلوين أو التفريغ أو الوميض .. تلك هي المرونة التي كنت أقصدها و هي مرونة على مستوى الكود و تجعله مرتبا و مرنا و سهلا أما على مستوى المستخدم فنعم يمكن اضافة InputBox او فورم كما تفضلت
    1 point
  37. السلام عليكم أخي الأستاذ مختار حسين جزاك الله خير...عمل متميز أرجو أن يدخل حيز التنفيذ للدلالة على الأخطاء في مجالات الحياة والعمل، بعد ملاحظات الأستاذ المحترم جعفر ما تقدمونه رائع حقاً ..تقبل تحياتي
    1 point
  38. بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن المحور الخامس والاخير كيفية عمل تنسيقات للقيم المدخله فى TextBox عرفنا قبل كدا فى الشروحات السابقه ما هى اوقات تنفيذ الكود هنعمل مراجعه بسيطه لربط شرح اليوم بالشروحات السابقه قبل أن نتحدث عن وقت تنفيذ الكود لازم نعرف أولا أزاى بيكون كتابة ألاعلان عن الكود للـ TextBox Private Sub TextBox1_AfterUpdate() هنا يتم كتابة الكود المراد تنفيذه End Sub السطر الاول هو بداية الاعلان عن الكود فنقوم بكتابة Private Sub ستجد لونها بالكود أزرق ( وهو بداية لاى كود خاص لأى عنصر تحكم داخل الفورم ) ثم نقوم بكتابة اسم العنصر المراد عمل الكود له وهو بمثالنا TextBox1 ثم نقوم بكتابة _ ( تكتب من خلال الضغط على Shift+زر الطرح الموجود بالاعلى بجوار زر + ) ثم نقوم بكتابة وقت تنفيذ الكود (هو هنا على سبيل المثال AfterUpdate ) ثم كتابة () قوسين بهذا الشكل وبمجرد الضغط انتر ستجد الكود عمل سطر تانى فيه End sub يوجد طريقه اخرى وهى اتبع الصوره التالية توضح لك قم بالضغط على اى مكان فاضى بالفورم وادخل لمحرر الاكواد الخاص بالفورم هنبدأ بالامثله العمليه لان بالمثال يتضح لنا المقال وانا راجل عملى مش بحب النظرى 1-التحكم فى تنسيق القيم المدخله فى التكست بوكس بعدد صحيح شاهد الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0") End Sub السطر الاول عرفنا انه الاعلان عن الكود وسوف يتم تنفيذه فى وقت تحديث التكست بوكس أى بعد الانتهاء من الادخال والانتقال او الخروج من التكست الى اى عنصر اخر على الفورم والسطر التانى هو الكود اللى هيتم تنفيذه شرح الكود ( السطر التانى ) شاهد الصوره هنا نوع التنسيق "0" تم وضعه بين علامتين تنصيص وبداخله 0 يعنى تنسيق التكست بوكس بعد الادخال يكون رقم صحيح فلو فرضنا حضرتك كتبت 20.60 وخرجت من التكست بوكس ستجد القيمة اصبحت 20 فقط ولا يوجد علامه عشريه -------------------------------------------------------------------------------------------------------------------------------------------------------- 2-التحكم فى تنسيق القيم المدخله فى التكست بوكس بوضع علامه عشريه Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.0") End Sub هنا نوع التنسيق "0.0" يكون رقم واحد بعد العلامه العشريه مثال لو حضرتك ادخلت 20 فقط ستجد التكست بوكس اصبح 20.0 ولو حضرتك دخلت 20.2 ستجد التكست بوكس اصبح 20.2 ولو حضرتك دخلت 20.50 ستجد التكست بوكس اصبح 20.5 فقط يعنى سوا دخلت رقم عشري واحد او ادخلت رقمين عشريين او لم تدخل ارقام عشريه ستجد النتيجة بعد رقم عشرى واحد طيب لو احنا عايزين رقمين بعد العلامه العشريه الموضوع بسيط جدا هنخلى التنسيق كالتالى "0.00" شاهد الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.00") End Sub لاحظتم الفرق طيب لو 3 أرقام عشريه Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.000") End Sub ------------------------------------------------------------------------------------------------------------------------------------ 3-التحكم فى تنسيق القيم المدخله بوضع علامه العمله $ Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0" & "$") End Sub هنا تم "0" ( وهو تنسيق رقم صحيح) ثم علامه & ( تكتب من خلال الضغط على Shift+رقم 7 فوق الحروف ) ثم ثم وضع علامه العمله "$" بين اقواس تنصيص فلو حضرتك كتبت 20 ستجد $20 واحد هيقولى هو مش ممكن يكون العلامه يسار الرقم وليس يمين الرقم هقوله ممكن وليه لا هنعكس الموضوع بدل "$"&"0" هنخليها "0"&"$" Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "$" & "0") End Sub فلو حضرتك كتبت 20 ستجد النتيجة 20$ طيب ممكن نخلى علامه العمله وكمان وجود ارقام عشريه طبعا ممكن Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "$" & "0.00") End Sub فلو حضرتك كتبت 20.1 ستجد النتيجة 20.10$ ---------------------------------------------------------------------------------------------------------- 4-التحكم فى تنسيق القيم المدخله بوضع نص بجوار الرقم Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0" & "ريال") End Sub هنا تم كتابه النص بين علامتى تنصيص " ريال" فلو حضرتك كتبت 20 ستجد النتجية 20 ريال -------------------------------------------------------------------------------------------------------------------- 5-التحكم فى تنسيق القيم المدخله بوضع علامه % Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "%0") End Sub فلو حضرتك كتبت 20 ستجد النتيجة %20 ( اذا كانت لغة الكتابه بالكيبورد عربى ) أما اذا كانت لغة الكتابة انجليزى وكتبت رقم 20 ستجد النتيجة 20% فمن خلال لغة الكتابه بالكيبورد تقدر تتحكم فى مكان العلامه % هل تكون قبل الرقم أم بعده واحد هيقولى هو ممكن نجعل الرقم بعلامات عشريه مع وجود علامه % هقوله ليه بس الاحراج يا عبدالتواب شوف يا سيدى الكود التالى Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "%0.00") End Sub فلو حضرتك كتب 20.1 ستجد النتيجة 20.10% ---------------------------------------------------------------------------------------------------------------------------------------- 6-التحكم فى القيم المدخله اذا كانت سالبه توضع بين اقواس Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0;(0)") End Sub فلو حضرتك كتبت -50 ستجد النتجية (50) يعنى تحول اى رقم سالب الى بين اقواس طيب لو كان الرقم السالب فيه علامات عشريه شاهد الكود ولاحظ الفرق البسيط Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0;(0.00)") End Sub مثال لو حضرتك كتبت-20.1 ستجد النتيجة (20.10) -------------------------------------------------------------------------------------------------------------------- 7-التحكم فى القيم المدخله اذا كانت تاريخ لو حضرتك عايز تكتب تاريخ وليكن 2015/8/6 وعايز بعد الادخال يظهر فقط اليوم Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd") End Sub ستجد ان النتيجه 6 dd تشير الى Day يعنى اليوم **************************************************************************** لو انا عايز النتيجة 6 اللى هى اليوم تظهر فى التكست بوكس 2 ( TextBox2) Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "dd") End Sub فلو حضرتك كتبت التاريخ 2015/8/6 فى التكست بوكس 1 ستجد التكست بوكس 2 مكتوب فيه 6 ************************************************************************************************ لو عايزين نظهر الشهر فقط هنستبدل dd بـ mm وهى اختصار لكلمة (Month) Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "mm") End Sub ستجد النتجية ظاهره فى التكست بوكس 2 وهى 8 ************************************************************************************** لو عايزين نظهر السنه. هنستبدل mm بـ yyyy وهى اختصار Year Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "yyyy") End Sub ستجد النتيجة فى التكست بوكس 2 هى 2015 ***************************************************************************************** لو عايزين نظهر اليوم كتابه 06-08-2015 يطلع فقط الخميس Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "dddd") End Sub ستجد النتيجة فى التكست بوكس 2 هى الخميس ********************************************************************************** لو عايزين نظهر الشهر 06-08-2015 يظهر فقط اغسطس Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "mmmm") End Sub ستجد النتيجة هى اغسطس ********************************************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى 06/08/2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd/mm/yyyy") End Sub ****************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى2015/08/06 شوف الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yyyy/mm/dd") End Sub ****************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى06-08-2015 يعنى يكون العلامه بدل من / تكون - Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yyyy-mm-dd") End Sub ****************************************** لو عايزين نجعل التاريخ كالتالى 06-08-15 ( يعنى أظهار السنه رقمين فقط Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yy-mm-dd") End Sub هنا خلينا السنه بدل من yyyy الى yy فقط ****************************************** لو عايزين ننسق التاريخ كدا 06 أغسطس2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd mmmm yyyy") End Sub ****************************************** لو عايزين نخلى التاريخ يظهر كالتالى الخميس أغسطس 2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dddd mmmm yyyy") End Sub ****************************************** لوعايزين نظهر تاريخ اليوم بمجرد وضع مؤشر الماوس فى التكست بوكس Private Sub TextBox1_Enter() TextBox1.Text = Format(Now, "yyyy/mm/dd") End Sub هنا استخدمنا وقت التنفيذ الحدث Enter ****************************************** 8-التحكم فى أجبار المستخدم على ادخال ارقام فقط فى التكست بوكس Private Sub TextBox1_Change() If Not IsNumeric(Me.TextBox1.Value) Then: MsgBox " الرجاء ادخال أرقام فقط ", vbCritical, "خطأ": Me.TextBox1.Value = "": Exit Sub End Sub هنا عملنا كود فى حدث التغيير للتكست بوكس بمجرد كتابة اى حرف وليس رقم ستجد التكست بوكس يرفض الادخال ويقوم بمسح المحتوى اللى تم ادخاله وكمان يظهر رساله استخدمنا فى الكود IF Not IsNumeric ثم التكست المراد ادخال ارقام فقط ووضعه بين قوسين ثم اقفال IF بـ then ****************************************** 9-التحكم فى أجبار المستخدم على ادخال حروف فقط فى التكست بوكس نفس الكود السابق ولكن بدون Not Private Sub TextBox1_Change() If IsNumeric(Me.TextBox1.Value) Then: MsgBox " الرجاء ادخال حروف فقط ", vbCritical, "خطأ": Me.TextBox1.Value = "": Exit Sub End Sub ****************************************** **************************************************************************** ******************************************************** ************************************** الى هنا بحمد الله انتهيت من شرح الخمس محاور المتعلقه بالتكست بوكس والى لقاء اخر من حلقات علمنى كيف اصطاد وسيكون بأذن الله الكمبوبوكس
    1 point
  39. وجدت الحل شكراً للمنتدي =LARGE($C$14:$C$36;2) شكراً ياباش مهندس طارق
    1 point
  40. اساذنا العزيز وهنا عملت على تصغير حجم قاعدة بياناتك ، فصغرت من 56MB الى 12MB جعفر Folow up V.2.zip
    1 point
  41. السلام عليكم ورحمة الله تفضل اخي إليك ماطلبت علي الرابط ادناه بعد إنتها الفتره التجريبية سيفتح الملف بكلمة مرور وسيتم إخفاء جميع الصفحات ماعدا (عدى) الصفحة المحددة مسبقا وسيتم إخاء جميع أعمدة هذه الصفحة سوى الاعمدة المحددة مسباً A,B,C,D,E,F فقط. رابط الموضوع : http://www.officena.net/ib/topic/64005-ملف-فترة-تجريبية-كطلب-الاخ-ابو-جتى14/
    1 point
  42. بارك الله فيك اخي الكريم تحياتي
    1 point
  43. السلام عليكم استاذ علي اعتذر عن التأخير ، ولكن العمل اخذ كل هذا الوقت استخدم هذا النموذج: ثم استخدم التقرير التالي (لم اقم بربط التقرير برمجيا مع اي زر): وعليك ان تعمل التنسيق الشرطي لبقية حقول الشهر (انسخ التنسيق الشرطي من الحقل 1 الى بقية الحقول 8 الى 31 ، مع مراعاة تغيير اسم الحقل). الشئ المهم هو ان المرفق 221.Folow up V.2.accdb.zip يجب تغيير صيغة الملف الى 7z (الموقع لا يقبل ارفاق هذه الصيغة) ، وذلك لأن هذه الصغيه هي الوحيدة التي استطعت من خلالها ضغط قاعدة البيانات لرفعها على الموقع ، واذا لم تملك البرنامج لفك هذه الصيغة ، فيمكنك انزاله مجانا من الموقع www.7-zip.org . العمل اعتمد على الاستعلامات: Absents ، Absents_Crosstab_1-2 ، وتم عمل التقرير على اساس الاستعلام Absents_Crosstab_2-2 جعفر 221.Folow up V.2.accdb.zip واستعمل الطريقة في الرابط التالي ، لتستبدل علامة الصح (لأيام الغياب) بدلا عن الرقم 1: http://allenbrowne.com/ser-52.html
    1 point
  44. إذا كان الأمر كذلك فلما لا تستخدم معادلة بسيطة جداً بالشكل التالي =COUNTIF(H:H,">=0") لعد الأرقام الموجبة والمعادلة التالية =COUNTIF(H:H,"<0") لعد الأرقام السالبة اما إذا كنت تقصد المجموع فيمكن استخدام المعادلة التالية لجمع الأرقام الموجبة فقط =SUMIF(H:H,">=0",H:H) ولجمع الأرقام السالبة فقط استخدم المعادلة التالية =SUMIF(H:H,"<0",H:H) باستخدام الكود .. بفرض أن لديك الأرقام في العمود H .. جرب الكود التالي (النتائج تظهر بعد آخر خلية فارغة بمجموع الأرقام الموجبة والسالبة) Sub SUMPositiveNegativeA() Dim C As Range, LR As Long, PositiveSum As Double, NegativeSum As Double LR = Cells(Rows.Count, "H").End(xlUp).Row Set C = Range("H1:H" & LR) PositiveSum = Application.WorksheetFunction.SumIf(C, ">=0") NegativeSum = Application.WorksheetFunction.SumIf(C, "<0") Range("H" & LR + 2) = "Positive: " & PositiveSum Range("H" & LR + 3) = "Negative: " & NegativeSum End Sub وهذا كود آخر يؤدي الغرض بدون استخدام دوال الإكسيل داخل محرر الأكواد Sub SUMPositiveNegativeB() Dim C As Range, LR As Long, PositiveSum As Double, NegativeSum As Double LR = Range("H" & Rows.Count).End(xlUp).Row For Each C In Range("H1:H" & LR) If IsNumeric(C) Then If Sgn(C) = 1 Then PositiveSum = PositiveSum + C If Sgn(C) = -1 Then NegativeSum = NegativeSum + C End If Next Range("H" & LR + 2) = "Positive: " & PositiveSum Range("H" & LR + 3) = "Negative: " & NegativeSum End Sub تقبل تحياتي
    1 point
  45. بسم الله الرحمن الرحيم ارجو منكم المساعده في برنامج تنقلات المعلمين من مدرسة لمدرسة حيث يسجل كل معلمي مدرسة على حدة وسهولة نقل معلم من مدرسة لأخرى بواسطة البرنامج اريد ان يحتوى البرنامج على 50 مدرسة فأكثر
    1 point
  46. أهداء لكل أعضاء وزوار المنتدى برنامج لتنظيم حسابات العملاء و الموردين واى حسابات جارية اخرى عمل كشف حساب عمل كشف بأرصدة جميع الحسابات امكانية التعديل سهولة فى التسجيل التطبيق على الشبكات الداخلية تحميل البرنامج http://www.filebox.com/kvxo6t4nuks7 ارسال استفسار http://www.mostafaosman.page.tl
    1 point
  47. السلام عليكم اخي mr mostafa osman بارك الله فيك خالص تحياتي
    1 point
  48. بسم الله الرحمن الرحيم تحياتى الى الجميع احتفالا منى بالثوب الجديد للمنتدى . قررت المساهمة بمشاركة ذهبية حصلت عليها فى احدى ابحاراتى الاولية وكانت على سفينة الصحراء وليست جوية او بحرية بل كانت على الجمال . مش راح تصدق ...............................................! دالة "IFYES" مع 112 احتمال ...................................! فى معادالة واحدة معقول !!! ده يبقى جنان فى جنان ونبقى محتاجين علام من جديد . حقيقى لم نقدم للاكسل اى شئ حتى الان غير الكـــــــــــــلام . دالة "IF" فى الوضع العادى تعطى شرط واحد و احتمالين اثنين فقط وفى الوضع المركب منها بأمكانها ان تصل بنا الى سبعة "IF" مع ثمانية احتمالات . ويمكن الوصول بها الى مئات الاحتمالات فى حالة تمرير النتيجة الى خلايا اخرى ثم حصد النتيجة النهائية . دالة اليوم اسمها " إف_صح " فى الوضع العادى منها تعطى 18 ثمانية عشر احتمال . وفى الوضع المركب منها فقط تعطى 112 مئه واثنى عشر احتمال . اما فى حالة التمرير تعطى الآف الاحتمالات . سوف تجد الدالة مع الدوال فى ( معرفة بواسطة المستخدم ) . وطريقة عملها اسهل من "IF" بدون تكرار اسم الدالة زى "IF" العقيمة . ومرفق لكم ملف به مثال للتدريب عليها احتفالا بالثوب الجديد للمنتدى . واذا عجبكم الموضع نبدأ فى تجهيز دالة " إف_خطأ " وهى معكوس دالة " إف_صح " مع تحيات تامر عمر المرفقات دالة ( IFYES ) احتمالات اكثر من دالة ( IF ) العادية مع سهولة اكثر فى التعامل IFYes.rar
    1 point
×
×
  • اضف...

Important Information