نجوم المشاركات
Popular Content
Showing content with the highest reputation on 10/06/15 in مشاركات
-
بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن شروحات الكمبوبوكس ( 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
-
استبدل الكود بهذا 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
-
2 points
-
2 points
-
استادي الفاضل ياسر عندما تفتح ملفا معينا ثم بعد دالك تفتح ملفا ثانيا فان الملف الثاني ينفتح في نفس برنامج الاكسيل مع الملف الاول - دالك هو السلوك العادي للاكسيل في تعامله مع فتح الملفات ... الكود موضوع هده المشاركة هدفه هو جعل الملف الثاني (يعني الملف صاحب الكود) ينفتح لوحده في نسخة ثانية على انفراد New Excel instance .. أحيانا المستخدم لا يرغب في أن يكون أكثر من ملف واحد مفتوح و بنفس الطريقة ادا اشتغل الكود فانه لو تم فتح الملف اليتيم أولا (يعني الملف صاحب الكود) ثم بعد دالك فتح ملفا ثانيا فان الملف الثاني ينفتح في نسخة أخرى حيث يبقى الملف الأول دائما وحيدا في الاكسيل2 points
-
انسخ الكود من هذا الملف الى ملفك و جربه (في موديل جديد) و اكتب الدالة التالية في الخلية تحت فيمة الاستهلاك مباشرة واسحب نزولاً =myfacteur(f3,5,9,17) facteur_electrique.zip2 points
-
السلام عليكم كما تعلمون لا يوجد في الاكسيل حدث مرتبط بالنسخ أو القص ... هدا كود يملأ دالك الفراغ أضف الكود التالي الى ال 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 Sub2 points
-
مشاركة مع اخوتي جرب ان يكون زر التالي به الحدث : DoCmd.GoToRecord , , IIf(CurrentRecord = Recordset.RecordCount, acLast, acNext) بالتوفيق2 points
-
السلام عليكم ورحمة الله لست أدري إن كنت قد فهمت المطلوب... انظر إلى المرفق وقد تم فيه إضافة كود دالة مستحدثة تعمل عمل الدالة CONCATENATE مع بعض الخصوصية... أرجو من الله أن يكون فيه المطلوب أو بعضه... (مع خاصية التبديل بين عمودي التحويل من رقم العمود في الخلية I1 إلى رقم العمود في الخلية M1) بن علية الحروف المعكوسة.rar2 points
-
السلام عليكم ورحمة الله وبركاته من المعروف ان الاوفيس يأتي بصيغة 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
-
السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله مع التحديث الجديد .. للأسف لم أجد التوجيهات التي تم وضعها من قبل ، وهذه القواعد والأسس هامة جداً ليدرك الأعضاء كيفية التعامل مع المنتدى طبعاً الموضوع سيكون متجدد .. سيتم وضع القواعد مرة أخرى فالرجاء الرجاء أن تساعدوني في اتمام الأمر .. كل عضو يذكرني بتوجيه من هذه التوجيهات ليتم إرساء القواعد ، إذ أن نجاح أي مؤسسة يعتمد في المقام الأول على قواعد ومنهج ثابت للسير على دربه التوجيهات والقواعد التي يجب مراعاتها التوجيه الأول : قبل طرح موضوع جديد يتعلق بطلب محدد يرجى استخدام خاصية البحث أولاً ، فإذا لم يجد طارح الموضوع بغيته ، فعليه أن يقوم بطرح موضوع جديد ، وفي هذه الحالة على طارح الموضوع أن يعلم أن حسن السؤال شطر الإجابة ، فاللباقة واللياقة والكياسة من الصفات التي يجب أن يتحلى بها طالب العلم. التوجيه الثاني : عند طرح موضوع جديد ، يتم وضع عنوان مناسب للطلب بحيث يفهم الطلب قبل الإطلاع عليه ، وعلى طارح الموضوع أن يبتعد عن العناوين الغير مجدية مثل : ( طلب مساعدة - الرجاء المساعدة - ساعدوني من فضلكم - عاجل وهام - الحقوني - نداء للعباقرة - نداء للعمالقة - إلى آخر تلك العناوين ...) ، وأمر آخر ألا يكون العنوان على شكل سؤال أو طلب .. نبتعد عن كلمة "طلب" مثال تطبيقي : نفترض أنني أريد معادلة تجمع القيم في عمودين العنوان المناسب للطلب يكون بهذا الشكل : معادلة جمع القيم في عمودين والنتائج في عمود آخر التوجيه الثالث : أن يتم توضيح المطلوب بالموضوع بشكل يزال معه أي لبس ، وفي نفس الوقت يراعى الإجمال في الطلب ، فأقصر الخطوط هو الخط المستقيم ، بمعنى "لا إطالة مملة ولا اختصار مخل" ، أي لا يكون طرح الموضوع مختصر للغاية بل يجب أن يستوفي جميع العناصر المطلوبة ، ومن ضمنها أن يحدد طارح الموضوع هل الحل المطلوب بالمعادلات أم بالأكواد أم بكلاهما لتكون الأمور واضحة بالنسبة لمن يريد تقديم المساعدة ، وأن يقوم صاحب الموضوع بإرفاق ملف به بيانات وهمية لتوضيح طلبه وللوصول إلى حل سريع ودقيق ، وإذا صعب على طارح الموضوع شرح المطلوب يمكنه إرفاق بعض النتائج المتوقعة كي يسهل الوصول لحل. التوجيه الرابع : نلاحظ أن شكل المنتدى لا يعجب معظم الأعضاء ، فلما لا نغير بأيدينا الشكل العام للمشاركات ، فيفضل على سبيل المثال استخدام حجم خط كبير 22 على سبيل المثال وجعل الخط عريض Bold مما يجعل المشاركة واضحة ومقروءة بشكل جيد ، كما يمكن استخدام الألوان أي قم بتنسيق المشاركة بشكل جذاب يجعل القاريء لا ينفر منها. التوجيه الخامس : بعد الانتهاء من الموضوع والوصول لحل يرضي صاحب الموضوع ، يرجى أن يتم تحديد أفضل إجابة من خلال النقر على علامة الصح الموجودة بجانب كل مشاركة ، وأن يسجل صاحب الموضوع إعجابه من خلال النقر على "سجل اعجاب بهذا" كنوع من رد الجميل لمن قدم المساعدة ، ويمكن أيضاً أن يقوم بتقييم المشاركة تقييم إيجابي كنوع من التقدير ، وأن تشكر من قدم المساعدة فمن لم يشكر الناس لا يشكر الله. فيما يخص لو كان هناك أكثر من إجابة للموضوع ، يمكن لصاحب الموضوع عمل مشاركة جديدة يجمع فيها كل الحلول ويختار هذه المشاركة كأفضل إجابة التوجيه السادس : لا تكن لحوحاً ، يكفي أن أعضاء المنتدى يقدمون وقتهم و خبرتهم مقابل لا شيء وعندهم أعمال أخرى (مشاغلهم الخاصة) يقومون بها ، و إذا تأخر الرد ، فمن الممكن أن يكون أحد الأعضاء يقوم بمحاولة الإجابة ، وهذا يستغرق بعض الوقت خاصةً إذا كان الموضوع صعباً. التوجيه السابع : حمل الملف المرفق دون زركشات (ألوان و تنسيقات مختلفة) مما يزيد من حجم الملف و أحياناً تكون الألوان مقززة بشكل ينفر منها المساعد (خاصةً إذا كانت ألوان الخلايا غير متناسقة مع لون الخط) التوجيه الثامن : تأكد أن الملف المرفوع غير مصاب بفيروس و غير محمي بكلمة سر ، وإلا لن تجد المساعدة من قبل الأعضاء. التوجيه التاسع : متابعة صاحب الموضوع لموضوعه والتفاعل معه ، فلا يعقل أن يطرح أحدهم موضوع ولا يتابعه إلا بعد مرور وقت طويل ، فهذا يعد من اللامبالاة الغير مرغوب فيها ، والتي تنفر الجميع من العضو. التوجيه العاشر : عدم التسجيل في المنتدى بأكثر من حساب ، وأن يكون اسم الظهور باللغة العربية ومعبر عن الاسم الحقيقي أي (تعريب اسم العضو) ، فلا يجوز أن يكون اسم الظهور اسم واحد وفقط بل أن يكون ثنائي على الأقل أو أن يكون اسم ولقب ، ولذا يرجى عدم استخدام الأسماء المستعارة أو الأسماء باللغة الأجنبية ، فاللغة العربية هي هويتنا ولابد من الحافظ عليها. ** يتم تغيير اسم الظهور أو اسم المستخدم من خلال إعدادات الحساب ثم التبويب اسم المستخدم ، قم بتغيير الاسم ثم انقر كلمة حفظ التوجيه الحادي عشر : عدم طرح أكثر من موضوع لنفس الطلب من نفس العضو ، فهذا يعد مخالفة صريحة ، وليعلم العضو الذي يقوم بذلك أن تكرار الموضوع لن يجدي نفعاً في حالة عدم توضيحه للمطلوب. وفي حالة أن قام العضو بذلك عن طريق الخطأ يقوم العضو بالتنويه في الموضوع وطلب حذف الموضوع نظراً لتكراره. التوجيه الثاني عشر : على من يقدم المساعدة أن يكون مثالاً يحتذى به في العطاء والصبر والحلم وكرم الأخلاق وحسن الإجابة ، يجتذب بتلك الصفات عقول الآخرين وأفئدتهم التوجيه الثالث عشر : عند طرح موضوع يفضل أن يكون هناك طلب واحد فقط إذ أن الموضوع الذي تكثر فيه الطلبات ينفر الأعضاء الذين يريدون تقديم يد المساعدة ، وعلى رأي المثل (من يطارد عصفورين يفقدهما) فما بالك لو طاردت أكثر من طلبين أقصد أكثر من عصفورين ، يمكنك أن تتعامل بذكاء بأن تطرح الموضوع بطلب واحد حتى إذا تم على خير قم على الفور بطرح موضع جديد بطلب جديد وهكذا إلى أن يتم الأمر التوجيه الرابع عشر : يرجلا عدم إرسال رسائل خاصة للأعضاء لطلب المساعدة بشكل شخصي ، لأن هذا الأمر يضايق الكثير من الأعضاء ، وتأكد أن العضو إذا كان لديه معلومة أو يستطيع أن يفيد بشيء ووقته يسمح بذلك فلن يتأخر عنك ، يكفي أن تكتب كلمة "للرفع" في موضوعك ، ليشاهده أكبر عدد من الأعضاء. ** كيفية رفع الصور في المشاركات : ******************************* دمتم على طاعة الله1 point
-
السلام عليكم ورحمة الله وبركاته إخواني الكرام في موضوع للأخ الحبيب محمد حسن أبو يوسف ، قمت بعمل تصفية للبيانات بناءً على مربع نص ، إلا أنه في مشاركة للأخ الغالي رشراش علي أن الكود لا بعمل مع الأرقام ولا يعطي نتيجة ، كما أن الأخ أحمد أبو زيزو طلب مني شرح خطوات العمل فيما يتعلق بهذا الموضوع رابط الموضوع وبناءً على طلب إخواني ، وهم يدركون أنني لا أتأخر عليهم أبداً أقدم لكم موضوع اليوم فارتأيت (حلوة ارتأيت دي ... ) أن أخصص موضوع لهذا الأمر ، نظراً للطلب عليه ، ونظراً للفائدة المرجوة منه ، حيث أنه يسهل عملية البحث من خلال تصفية البيانات المطلوبة. يعتمد الملف المرفق على مثال بسيط للتطبيق ، تم إدراج مربع نص 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
-
السلام عليكم الامر تمام استاذ ياسر لا تعتذر استاذ ياسر انا من يجب عليه الاعتذار لاني اخذت الكثير من وقت سنتوقف في هذا الحد رغم ان البرنامج مازال لم يكتمل لكن المهم فيه اكتمل بوركت استاذ ياسر واعذرني على الازعاج1 point
-
1 point
-
هي بالتتالي الاولي ٧٠ وحدة التأليه ٨٠ وحدة من بعد ال ٧٠ الاولى التالية ٢٠٠ وحدة من بعد ال ١٥٠ السابقة التالية اكثر من ٣٥٠ وحدة السابقة وفعلا اخر ملف نفذها بدقة لكود الاستاذ الرائع سليم حاصبيا1 point
-
أحيانا تحتاج للكشف عن آخر ا لعمليات التي أدخلتها في الجدول دون الذهاب إلى الجدول ودون ربطها بنموذج بحث ، الأمر الذي يتطلب تصميم فورم يحتوي على بعض الكودات المعقدة.. قمت هنا بالإستفادة من وجود فور الرسائل لاستعراض الجدول، وقد حصرتها لاستعراض آخر 3 عمليات من الجدول، والأمر متروك لديكم لزيادة المدى.. أترككم مع المرفق. msgbox table.rar1 point
-
1 point
-
تفضل يا أبا سليمان بالمعادلات فقط اسحب المعادلات إلى آخر سطر تريده ترتيب حسب التاريخ3.rar تفضل يا أبا سليمان بالمعادلات فقط اسحب المعادلات إلى آخر سطر تريده1 point
-
هذا المرجع هو الأكبر والأكثر إحترافيه بين كل كتب لغة برمجة الـ 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
-
السادة الاعضاء الكرام السلام عليكم ورحمة الله وبركاته ،، لقد تعلمنا على يد استاذ قدير اسمه خبور خير كانت بصماته واضحة على الجميع ويمتلك مهارة منقطعة النظير وقد غبت فترة ليست بالقصيرة عن المنتدى فوجدته يخلو من الاخ الكريم فأرجو ممن يعرف اخباراً عنه ان يبلغه تحياتنا ويطمنا عنه . تحياتي لكم وادعو الله ان يحفظ الجميع . هاشم احمد طه (HAT)1 point
-
بن علية انتي علي ودوم في العلا فعلا هو ما اريد لا تقل "ان كنت قد فهمت المطلوب" فأنت مصنع الفهم ودكتوراة في الفهم بارك الله فيك ووفقك وسدد خطاك وغفر لك ولوالديك ولجميع المسلمين ووسع عليك في الرزق والخيرات وإن شاء الله ستتهاطل عليك نعمه مثل قطرات الأمطار الغزيرة ويحفظك ربنا الله الحفيظ من سوء ومرض وعرض وفعلا نزلت الملف ونجح كاملا تاما عاما 100000000000000 % البرمجة صحيحة ليت مخي يسرق شيء من مخك بس للاسف اخاف من السجن1 point
-
أخي الكريم أبو عبد الملك جرب الكود التالي بعد التعديل Sub FollowAll() Dim I As Long, lRow As Long Dim rngFound As Range Dim wsRecord As Worksheet, wsMonthly As Worksheet, SH As Worksheet Set wsRecord = Sheets("معلومات التسجيل"): Set wsMonthly = Sheets("مجمع النتائج الشهرية"): Set SH = Sheets("كشف متابعة") With Application .ScreenUpdating = False: .EnableEvents = False: .Calculation = xlManual End With With wsRecord For I = 2 To .Cells(Rows.Count, "A").End(xlUp).Row If Not IsEmpty(.Cells(I, "N")) Then If MsgBox("الطالب " & .Cells(I, "C") & " منقطع هل تود أن تطبع له كشف?", vbYesNo + vbMsgBoxRtlReading) = vbYes Then GoTo Continue Else: End If Else Continue: SH.Range("C1") = .Cells(I, "C") SH.Range("C4") = .Cells(I, "B") SH.Range("C5") = .Cells(I, "A") Set rngFound = wsMonthly.Columns("C:C").Find(What:=.Cells(I, "C"), searchorder:=xlByRows, searchdirection:=xlPrevious) If Not rngFound Is Nothing Then lRow = rngFound.Row If wsMonthly.Cells(lRow, "R") >= 60 Then SH.Range("R4") = wsMonthly.Cells(lRow, "N"): SH.Range("S4") = wsMonthly.Cells(lRow, "O") ElseIf wsMonthly.Cells(lRow, "R") < 60 Then SH.Range("R4") = wsMonthly.Cells(lRow, "L"): SH.Range("S4") = wsMonthly.Cells(lRow, "M") Else MsgBox "لا يوجد درجة للطالب " & .Cells(I, "C"), vbCritical End If End If SH.Range("C2").Formula = "=IF(" & SH.Range("R4").Address & "="""","""",LOOKUP(INDEX(QNumbers,MATCH(" & SH.Range("R4").Address & ",QNames,0)),الحلقات!$F$2:$F$6,الحلقات!$B$2:$B$6))" SH.Range("C3").Formula = "=IF(" & SH.Range("R4").Address & "="""","""",LOOKUP(INDEX(QNumbers,MATCH(" & SH.Range("R4").Address & ",QNames,0)),الحلقات!$F$2:$F$6,الحلقات!$D$2:$D$6))" SH.Range("C2:C3").Value = SH.Range("C2:C3").Value Call CalculateLinesOfRevision SH.PrintPreview End If Next I End With With Application .ScreenUpdating = True: .EnableEvents = True: .Calculation = xlAutomatic End With End Sub Private Sub CalculateLinesOfRevision() Dim SH As Worksheet, wsMnhg As Worksheet Dim LRCur As Long, I As Long, II As Long, N As Long, Counter As Long, P As Long Dim rngA As Range, rngB As Range, rngC As Range, rngD As Range Dim X, Y, Z Set SH = Sheets("كشف متابعة"): Set wsMnhg = Sheets("المنهج") With wsMnhg LRCur = .Cells(Rows.Count, 1).End(xlUp).Row Set rngA = .Range("A2:A" & LRCur): Set rngB = .Range("B2:B" & LRCur) Set rngC = .Range("C2:C" & LRCur): Set rngD = .Range("D2:D" & LRCur) SH.Range("Q11:Q34").ClearContents X = ValueLookUp(rngB, SH.Cells(4, "R").Value, rngC, rngD, SH.Cells(4, "S").Value, rngA) If X <= 24 Then For I = 2 To X + 1 SH.Cells(N + 11, "Q") = .Cells(I, "B") & " " & .Cells(I, "C") & " - " & .Cells(I, "B") & " " & .Cells(I, "D") N = N + 1 Next I Else Y = Application.WorksheetFunction.Ceiling(X / 24, 1) For I = 2 To X + 1 Step Y SH.Cells(N + 11, "Q") = .Cells(I, "B") & " " & .Cells(I, "C") & " - " & .Cells(I + Y - 1, "B") & " " & .Cells(I + Y - 1, "D") N = N + 1 Counter = Counter + Y If Y >= X - I Then Exit For Next I If X - Counter > 0 Then SH.Cells(N + 11, "Q") = .Cells(I + Y, "B") & " " & .Cells(I + Y, "C") & " - " & .Cells(X + 1, "B") & " " & .Cells(X + 1, "D") End If SH.Range("O11:O34").ClearContents Z = X - 24 If Z > 0 Then SH.Range("O11:O34") = .Cells(Z, "B") & " " & .Cells(Z, "D") & " - " & SH.Range("R4") & " " & SH.Range("S4") SH.Range("M11:M34,I11:I34,G11:G34").ClearContents P = 1 For II = 11 To 34 SH.Range("M" & II) = .Cells(X + P, "B") & " " & .Cells(X + P, "C") & " - " & .Cells(X + P, "D") SH.Range("I" & II) = .Cells(X + P + 1, "B") & " " & .Cells(X + P + 1, "C") & " - " & .Cells(X + P + 1, "D") SH.Range("G" & II) = .Cells(X + P + 1, "B") & " " & .Cells(X + P + 1, "C") & " - " & .Cells(X + P + 6, "B") & .Cells(X + P + 6, "D") P = P + 1 Next II SH.Range("M11:M34").Copy SH.Range("K11") End With End Sub1 point
-
أخي الكريم سليم 'أو يمكن استخدام المعادلة التالية لتؤدي نفس الغرض =LEFT(A2,FIND("*",A2)-1)*RIGHT(A2,FIND("*",A2)-1) 'وضع المعادلة التالية [Test] أو يمكن تسمية نطاق باسم معين وليكن = EVALUATE($A2) 'ضع المعادلة التالية [B2] في الخلية =Test Evaluate.rar1 point
-
أخي الغالي جعفر صراحةً لم أفهم الفكرة .. هل من الممكن إلقاء مزيد من الضوء عىلى فكرة الموضوع؟1 point
-
أخى وأستاذى الغالى جعفر زادك الله بسطةً فى العلم و الرزق أشكرك على هذا التوضيح أخى وأستاذى الغالى ياسر زادك الله بسطةً فى العلم و الرزق أشكرك على هذا الدعاء1 point
-
جزاك الله خيراً أستاذ جعفر . مع الأخذ بعين الإعتبار أن المعادلة ترجع نتيجة أول أصغر تكرار، بمعنى أنه لو كان هناك رقمان مثل 3 - 6 مثلاً يظهران مرة واحدة فإن النتيجة تظهر للأسبق منهما في الترتيب.1 point
-
السلام عليكم أخي العزيز إستخدم الدالة Ceiling بفرض أن الرقم المراد تقريبه في الخلية A1 فتكون الصيغة كالتالي =CEILING(A1,0.05) ثم إنسخها للأسفل لباقي الأرقام1 point
-
إنَّا لله وإنا إليه راجعون خبر وفاة علم من أعلام الثقافة في المنتدي خبر هزنا وأثر فينا جميعا ربنا يرحمك ياأستاذنا الرائع صاحب القلب الصافي ربنا يوسع عليك في قبرك ويجعل أعمالك وكلامك الطيب صدقة جارية لك وداعا أستاذي1 point
-
بعد اذن الأساتذة الكرام اخي الكريم جرب المرفق التالي حيث تم استخدام Dmax للبحث عن قيمة اكبر تسلسل ومقارنتها بالتسلسل الموجود بالفورم Database1.rar1 point
-
أخي الحبيب مختار أخي الحبيب جعفر بارك الله فيكما وجزاكما الله خير الجزاء في الدنيا والآخرة1 point
-
مش هطول في الكلام أخي الغالي مختار هما كلمتين وبس :: ما أروعك!1 point
-
حقيقة انا احتاج الى قرن من الزمن لاستطيع التطبيق ولكن من باب حب لاخيك ما تحبه لنفسك ولاعتقادى انه مفيد للغير نقلته هنا مع العلم انه يمكن يكون من البدائيات لكم ولكن لعل احد من الاشخاص يستفيد منه1 point
-
استادي الفاضل أنس دروبي تفضل الكود في اليوزرفورم Private Sub CommandButton1_Click() If MsgBox("Do you want to add this workbook to the Windows startUp ?", vbYesNo + vbQuestion) = vbYes Then AddToWinStartUp ThisWorkbook.FullName, True End If End Sub Private Sub AddToWinStartUp(ByVal File As String, ByVal Add As Boolean) CreateObject("wscript.shell").RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\", IIf(Add, File, vbNullString), "REG_SZ" End Sub1 point
-
السلام عليكم أخي الأستاذ مختار حسين جزاك الله خير...عمل متميز أرجو أن يدخل حيز التنفيذ للدلالة على الأخطاء في مجالات الحياة والعمل، بعد ملاحظات الأستاذ المحترم جعفر ما تقدمونه رائع حقاً ..تقبل تحياتي1 point
-
1 point
-
مشكور الاخ عبدالله واصلتنا الى نصف الحل انا لا ارين عند النقر على الزر يعرض السجلات كلها الى النهاية ما اريده هو عند الضغط على الماوس يعرض السجلات وعند رفع الماوس يقف . شكرا لاهتمامك ومعلوماتك1 point
-
1 point
-
اساذنا العزيز وهنا عملت على تصغير حجم قاعدة بياناتك ، فصغرت من 56MB الى 12MB جعفر Folow up V.2.zip1 point
-
السلام عليكم ورحمة الله تفضل اخي إليك ماطلبت علي الرابط ادناه بعد إنتها الفتره التجريبية سيفتح الملف بكلمة مرور وسيتم إخفاء جميع الصفحات ماعدا (عدى) الصفحة المحددة مسبقا وسيتم إخاء جميع أعمدة هذه الصفحة سوى الاعمدة المحددة مسباً A,B,C,D,E,F فقط. رابط الموضوع : http://www.officena.net/ib/topic/64005-ملف-فترة-تجريبية-كطلب-الاخ-ابو-جتى14/1 point
-
1 point
-
إذا كان الأمر كذلك فلما لا تستخدم معادلة بسيطة جداً بالشكل التالي =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
-
السلام عليكم ورحمة الله وبركاته إخواني الكرام في المنتدى الأغر معكم في موضوع جديد وشيق ومفيد ، مع عالم الإكسيل ومع كل جديد ، ومع تنشيط لخلايا المخ اللي تخلي مخك حديد .. أقدم لكم المزيد والمزيد ، لعل الجميع يستفيد ، ويستضاء بنا ولو من بعيد (شكلي سرحت ..أعتذر عن المقدمة الطويلة يا أبو عيد) معنا اليوم فورم بسيط (فيه صندوق الدنيا (صندوق نص) TextBox وزر أمر Command Button) بالنسبة لصندوق النص غيرت فيه من الخصائص حاجتين اتنين وبس .. خاصية اسمها MultiLine ودي خليتها True ودي عشان تقدر سعادتك تكتب في أكتر من سطر والخاصية التانية EnterKeyBehavior ودي بردو True ودي عشان تقدر بعد ما تكتب سطر تضغط Enter يقوم ايه ؟؟ يقوم ينتقل للسطر اللي بعديه .. وهكذا وهكذا يعني تكتب كلمة البحث المراد البحث عنها وتضغط إنتر ، وتقدر تكتب كلمة تانية وتضغط إنتر ، وتقدر تكتب كلمة تالتة وتضغط إنتر ، وتقدر تكتب كلمة ( - - - - - ) كتبتها بالحبر السري عشان محدش ياخد باله وتضغط إنتر وهكذا وهكذا ولما تدوس على زر الأمر Search هتلاقي النتائج المراد البحث عنها تم تلوينها جرب مثلاً اكتب Yasser واضغط إنتر ، واكتب في السطر اللي بعديه "ياسر" من غير أقواس تنصيص واضغط إنتر ، وأخيراً دوووووس على زر الأمر وشوف النتائج ودا شكل الكود الموضوع في زر الأمر Private Sub CommandButton1_Click() Dim Cell As Range, Keys, Key, I As Long If Me.TextBox1.Value = "" Then Exit Sub Sheets("Sheet1").Cells(1).CurrentRegion.Font.ColorIndex = xlAutomatic Keys = Split(TextBox1.Value, vbCrLf) For Each Cell In Sheets("Sheet1").Cells(1).CurrentRegion.Columns(1).Cells For Each Key In Keys I = InStr(1, Cell.Value, Key) If I > 0 Then Cell.Characters(I, Len(Key)).Font.Color = vbRed End If Next Key Next Cell End Sub أرجو أن يكون الملف مفيد للجميع .. تقبلوا تحياتي وهكذا وهكذا Multiple Search & Color Results.rar1 point
-
بسم الله الرحمن الرحيم ارجو منكم المساعده في برنامج تنقلات المعلمين من مدرسة لمدرسة حيث يسجل كل معلمي مدرسة على حدة وسهولة نقل معلم من مدرسة لأخرى بواسطة البرنامج اريد ان يحتوى البرنامج على 50 مدرسة فأكثر1 point
-
السلام عليكم ورحمة الله أخي الكريم تم تغيير المعادلات حسب المطلوب... أخوك بن علية جلب بيانات.rar1 point
-
1 point
-
أهداء لكل أعضاء وزوار المنتدى برنامج لتنظيم حسابات العملاء و الموردين واى حسابات جارية اخرى عمل كشف حساب عمل كشف بأرصدة جميع الحسابات امكانية التعديل سهولة فى التسجيل التطبيق على الشبكات الداخلية تحميل البرنامج http://www.filebox.com/kvxo6t4nuks7 ارسال استفسار http://www.mostafaosman.page.tl1 point
-
1 point
-
بسم الله الرحمن الرحيم تحياتى الى الجميع احتفالا منى بالثوب الجديد للمنتدى . قررت المساهمة بمشاركة ذهبية حصلت عليها فى احدى ابحاراتى الاولية وكانت على سفينة الصحراء وليست جوية او بحرية بل كانت على الجمال . مش راح تصدق ...............................................! دالة "IFYES" مع 112 احتمال ...................................! فى معادالة واحدة معقول !!! ده يبقى جنان فى جنان ونبقى محتاجين علام من جديد . حقيقى لم نقدم للاكسل اى شئ حتى الان غير الكـــــــــــــلام . دالة "IF" فى الوضع العادى تعطى شرط واحد و احتمالين اثنين فقط وفى الوضع المركب منها بأمكانها ان تصل بنا الى سبعة "IF" مع ثمانية احتمالات . ويمكن الوصول بها الى مئات الاحتمالات فى حالة تمرير النتيجة الى خلايا اخرى ثم حصد النتيجة النهائية . دالة اليوم اسمها " إف_صح " فى الوضع العادى منها تعطى 18 ثمانية عشر احتمال . وفى الوضع المركب منها فقط تعطى 112 مئه واثنى عشر احتمال . اما فى حالة التمرير تعطى الآف الاحتمالات . سوف تجد الدالة مع الدوال فى ( معرفة بواسطة المستخدم ) . وطريقة عملها اسهل من "IF" بدون تكرار اسم الدالة زى "IF" العقيمة . ومرفق لكم ملف به مثال للتدريب عليها احتفالا بالثوب الجديد للمنتدى . واذا عجبكم الموضع نبدأ فى تجهيز دالة " إف_خطأ " وهى معكوس دالة " إف_صح " مع تحيات تامر عمر المرفقات دالة ( IFYES ) احتمالات اكثر من دالة ( IF ) العادية مع سهولة اكثر فى التعامل IFYes.rar1 point
-
1 point