-
Posts
2926 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
8
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو abouelhassan
-
السلام عليكم اخوانى الاساتذة لدى مشروع برنامج احتاج تنفيذ الاتى البرنامج ادخال بيانات 12 نوع من الاصناف ل عدد حساب من 50 حساب قد ادخل صنف او اتنين او كلهم كل مرة ل حساب واحد من ال 50 الادخال ب التاريخ الرقم منه او له للمبلغ التقارير المطلوبة تقرير للمدخلات من تاريخ الى تاريخ مع امكانية اختيار التقرير لحساب او حسابات معينة او كل الحسابات مع امكانية اختيار منه او له او الاثنين احتاج الافكار الصحيحة التى ابدأ بها المشروع حتى يمكن ان يكون ناجح وقابل للتطوير او زيادة الاصناف او الحسابات مستقبلا شاكر فضلكم اخوانى الافضل
-
كيف استطيع ان اجعل قيمة الخلية في الاكسل دالة رياضية
abouelhassan replied to محمود بن السماوي's topic in منتدى الاكسيل Excel
تفضل اخي =AND(ISFORMULA(E1),EVALUATE(E1)="=SUM($A$1:$D$1)") هذه الصيغة تحتوي على الدالة `EVALUATE` التي تقوم بتقييم الصيغة الموجودة في الخلية E1 وتحويلها إلى نص. ثم تتأكد الصيغة الناتجة تساوي الصيغة المطلوبة "=SUM($A$1:$D$1)"، وإذا كانت تساوي سترجع TRUE، وإلا سترجع FALSE. -
ممكن توضيح تفصيلي للمطلوب
-
كيف استطيع ان اجعل قيمة الخلية في الاكسل دالة رياضية
abouelhassan replied to محمود بن السماوي's topic in منتدى الاكسيل Excel
جرب 1. انتقل إلى القائمة "البيانات" في Excel. 2. اختر "تحقق من صحة البيانات" ثم "قواعد البيانات". 3. في القائمة المنسدلة، اختر "تكوين القاعدة". 4. في مربع الحوار "تكوين قاعدة البيانات"، اختر "صيغة" من القائمة المنسدلة. 5. في مربع الحوار "صيغة"، ادخل الصيغة التالية: =ISFORMULA(E1) `، ثم اختر "موافق". هذه الخطوات ستجعل الخلية E1 تقبل فقط الدوال، وإذا قام المستخدم بإدخال قيمة غير دالة، ستعتبر الخلية فارغة. -
لتجميع البيانات أسبوعياً، يمكنك استخدام الصيغ الشيتية في Excel للتجميع. يمكنك اتباع الخطوات التالية: 1. إضافة عمود جديد لتحديد الأسبوع. 2. في الخلية A2، اكتب الصيغة التالية لاستخراج تاريخ الأسبوع: ``` =TEXT(A2, "ww") ``` حيث A2 هو الخلية التي تحتوي على التاريخ. 3. في الخلية C2، اكتب الصيغة التالية لجمع البيانات الأسبوعية: ``` =SUMIF($A$2:$A$35, "="&A2, $B$2:$B$35) ``` حيث A2:A35 تحتوي على تواريخ الأسابيع، وB2:B35 تحتوي على القيم المرتبطة. 4. اسحب الصيغتين لأسفل لتطبيقهما على بقية الصفوف. هذا سيقوم بتجميع القيم الأسبوعية في العمود C حسب الأسبوع المحدد. جرب إذا كنت ترغب في استخدام VBA لتجميع البيانات أسبوعيًا، يمكنك استخدام الكود التالي. يفترض أن لديك بيانات في الأعمدة A و B، وترغب في تجميعها أسبوعيًا في أعمدة C وD Sub AggregateWeekly() Dim ws As Worksheet Dim lastRow As Long Dim weekStartDate As Date Dim totalSales As Double Dim targetRow As Long ' Set the worksheet Set ws = ThisWorkbook.Sheets("Sheet1") ' Find the last row with data lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Initialize variables totalSales = 0 targetRow = 2 ' Start from row 2 (assuming row 1 is headers) ' Loop through the rows For i = 2 To lastRow ' Check if the current date is in the same week as the start date If Weekday(ws.Cells(i, 1).Value, vbMonday) = 2 Then ' Add the sales to the total totalSales = totalSales + ws.Cells(i, 2).Value End If ' If the current date is the last day of the week or the last row, write the total sales for the week If Weekday(ws.Cells(i, 1).Value, vbMonday) = 1 Or i = lastRow Then ' Write the week start date ws.Cells(targetRow, 3).Value = ws.Cells(i, 1).Value - Weekday(ws.Cells(i, 1).Value, vbMonday) + 1 ' Write the total sales for the week ws.Cells(targetRow, 4).Value = totalSales ' Move to the next row targetRow = targetRow + 1 ' Reset the total sales for the next week totalSales = 0 End If Next i End Sub هذا الكود يقوم بتجميع البيانات الأسبوعية ووضعها في أعمدة جديدة. يمكنك تعديل اسماء الاعمدة والورقة حسب احتياجك.
-
يمكنك استخدام الكود التالي: Private Sub Worksheet_Change(ByVal Target As Range) Dim ws As Worksheet Dim stockSheet As Worksheet Dim changedCell As Range Dim newValue As Double Dim oldValue As Double Dim diff As Double Set ws = ThisWorkbook.Sheets("Sheet1") ' تغيير "Sheet1" إلى اسم الورقة التي تعمل عليها Set stockSheet = ThisWorkbook.Sheets("Stock") ' تغيير "Stock" إلى اسم ورقة المخزون ' التحقق من أن التعديل تم في العمود F والخلية ليست فارغة If Not Intersect(Target, ws.Columns("F")) Is Nothing And Target.Value <> "" Then newValue = Target.Value stockSheet.Range("G8").Value = stockSheet.Range("G8").Value + newValue ElseIf Not Intersect(Target, ws.Columns("F")) Is Nothing Then Exit Sub End If ' التحقق من أن التعديل تم في العمود F وليس في الخلية G8 If Not Intersect(Target, ws.Columns("F")) Is Nothing And Target.Address <> "$F$8" Then Exit Sub End If ' التحقق من أن التعديل تم بالزيادة If Target.Value > Target.Value - Target.Value Then newValue = Target.Value oldValue = Target.Value - Target.Value diff = newValue - oldValue stockSheet.Range("G8").Value = stockSheet.Range("G8").Value + diff Else ' التعديل تم بالنقص newValue = Target.Value oldValue = Target.Value + Target.Value diff = oldValue - newValue stockSheet.Range("G8").Value = stockSheet.Range("G8").Value - diff End If End Sub ``` هذا الكود يتم وضعه في وحدة العمل الخاصة بالورقة التي تريد استخدامها. يقوم الكود بتنفيذ الأوامر التالية: 1. إذا تم إدخال قيمة جديدة في العمود F (والخلية ليست فارغة)، فإنه يقوم بإضافة هذه القيمة إلى قيمة الخلية G8 في ورقة المخزون. 2. إذا تم تعديل قيمة في العمود F (والخلية ليست G8)، فإنه يحسب الفارق بين القيمة الجديدة والقيمة القديمة ويضيف أو يخصم هذا الفارق من قيمة الخلية G8 في ورقة المخزون، اعتمادًا على اتجاه التعديل (زيادة أو نقص).
-
كيف استطيع ان اجعل قيمة الخلية في الاكسل دالة رياضية
abouelhassan replied to محمود بن السماوي's topic in منتدى الاكسيل Excel
جرب لتحقيق ذلك، يمكنك استخدام حدث `Worksheet_Change` في VBA للتحقق من القيمة المدخلة ورفضها إذا لم تكن القيمة المطلوبة. هناك عدة طرق لتحقيق ذلك، وإليك كيف يمكن القيام بذلك: 1. افتح ملف الـ VBA في Excel بالضغط على `Alt + F11`. 2. اختر ورقة العمل التي تريد تطبيق القاعدة عليها من الشريط الجانبي في VBA. 3. انقر مرتين على ورقة العمل لتفتح محرر الـ VBA لها. 4. اختر `Worksheet` من القائمة المنسدلة في الأعلى ثم اختر `Change` من القائمة المنسدلة الثانية. 5. قم بإضافة الكود التالي: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("E1")) Is Nothing Then If Target.Value <> "=SUM(A1:D1)" Then Application.EnableEvents = False Me.Range("E1").Value = "=SUM(A1:D1)" Application.EnableEvents = True MsgBox "Only the SUM function is allowed in cell E1.", vbExclamation, "Invalid Input" End If End If End Sub هذا الكود يتحقق من أن القيمة المدخلة في الخلية E1 هي الدالة SUM فقط، وإذا كانت غير ذلك، فسيقوم بإعادة ضبط القيمة إلى الدالة SUM وعرض رسالة تنبيه. -
عمل تنبيه في حالة وجود اسمين على نفس الرقم
abouelhassan replied to kkfhvvv's topic in منتدى الاكسيل Excel
يمكنك استخدام الدالة التالية للتحقق من تكرار الأسماء لنفس الرقم =IF(COUNTIF(A:A, A2) > 1, "تنبيه: تكرار اسم", "") هذه الدالة تقوم بفحص العمود A (الذي يحتوي على أرقام الهوية) للصف الحالي (الذي يتمثل في A2 في هذا السياق). إذا وجدت أكثر من قيمة واحدة متطابقة مع قيمة الخلية A2، فإنها تُعيد "تنبيه: تكرار اسم"، وإلا فإنها تعيد "" (لا شيء). -
جرب =ROUND(79/16, 2)
-
برنامج لاضافة المعادلات الجديد في اكسل 2016
abouelhassan replied to talal baghdadi's topic in منتدى الاكسيل Excel
للأسف، لا يوجد برنامج أو موقع يوفر ملفًا يمكن إضافته إلى Excel 2016 لإضافة جميع المعادلات الجديدة المتوفرة في النسخ الأحدث من Office. الأفضل في هذه الحالة هو استخدام المعادلات والوظائف المتاحة في Excel 2016 والبحث عن حلول بديلة للمهام التي قد تحتاج إلى وظائف جديدة. إذا كانت لديك أي وظيفة محددة تبحث عنها، فلا تتردد في طرحها هنا للحصول على المساعدة في إيجاد حلول بديلة لها.- 1 reply
-
- 1
-
-
جرب طبقاً للوصف السابق، يمكنك اتباع الخطوات التالية: . ضع هذا الكود Dim soundPlayed As Boolean Sub ActivateTimer() soundPlayed = False ' Your existing code to activate the current time End Sub Sub CheckTime() Dim i As Integer For i = 2 To Range("A" & Rows.Count).End(xlUp).Row If Range("N" & i).Value > Range("L" & i).Value And Not soundPlayed Then Beep ' تشغيل الصوت هنا soundPlayed = True End If Next i End Sub Sub ResetSound() soundPlayed = False End Sub . قم بتعديل الكود الموجود لديك ليتناسب مع الكود المعطى. ابحث عن الجزء الذي يقوم بحساب الوقت وتحديد نهايته، واستبدله بالكود الجديد الموجود في الدالة `CheckTime`. . قم بإضافة زر في ورقة العمل لتفعيل الوقت باستخدام الدالة `ActivateTimer`. . قم بتعيين زر آخر لإعادة تهيئة المتغير `soundPlayed` باستخدام الدالة `ResetSound`. هذا الكود سيقوم بتشغيل التنبيه الصوتي مرة واحدة فقط عندما يتم اكتشاف انتهاء الوقت المحدد لكل شاشة.
-
=IF($C1="مسلم",IF(OR($B1="مسيحي ك1",$B1="مسيحي ك2"),"",1),IF($C1="مسيحي",IF(OR($B1="اسلامي ك1",$B1="اسلامي ك2"),"",1),""))
-
جرب . يمكنك استخدام دالة IF مع دالة ISNUMBER للتحقق مما إذا كان الطالب مسلمًا أم مسيحيًا، ثم استخدام الدوال الأخرى لتحديد ما إذا كان الطالب يدرس مسيحي ك1، مسيحي ك2، اسلامي ك1، أو اسلامي ك2. إليك كيفية تنفيذ ذلك: 1. قم بفتح ورقة العمل في Excel. 2. انقر بزر الماوس الأيمن على الخلية التي تريد وضع الرقم 1 فيها واختر "صيغة" ثم "محرر الصيغ" من القائمة المنبثقة. 3. استخدم الصيغة التالية: =IF(ISNUMBER(MATCH("مسيحي ك1",$A1:$A$100,0)),1, IF(ISNUMBER(MATCH("مسيحي ك2",$A1:$A$100,0)),1, IF(ISNUMBER(MATCH("اسلامي ك1",$A1:$A$100,0)),IF(ISNUMBER(MATCH("مسيحي ك1",$A1:$A$100,0)),"",1), IF(ISNUMBER(MATCH("اسلامي ك2",$A1:$A$100,0)),IF(ISNUMBER(MATCH("مسيحي ك1",$A1:$A$100,0)),"",1),"")))) حيث أن $A1:$A$100 هو المدى الذي يحتوي على أسماء الطلاب. يجب تغيير هذا المدى وفقًا لنطاق البيانات الخاص بك. 4. اضغط على Enter. هذه الصيغة ستقوم بوضع الرقم 1 في الخلايا التي تحتوي على "مسيحي ك1" و "مسيحي ك2" للطلاب المسيحيين، وستترك الخلايا الفارغة للطلاب الذين يدرسون "اسلامي ك1" و "اسلامي ك2".
-
مشاركة مع الإخوة لعلها تفيد لحساب مجموع الساعات وتحويلها إلى أيام وساعات، يمكنك استخدام الصيغ التالية في Excel: 1. **جمع الساعات:** - افتح Excel واكتب الساعات في الخلية A1 إلى A4 (على سبيل المثال). - في الخلية الفارغة، اكتب الصيغة التالية: `=SUM(A1:A4)` واضغط Enter. هذه الصيغة ستقوم بجمع جميع الساعات المدخلة. 2. **تحويل الساعات إلى أيام وساعات:** - في الخلية الفارغة، اكتب الصيغة التالية: `=QUOTIENT(B1, 8) & " يوم " & MOD(B1, 8) & " ساعة"` حيث B1 هو الخلية التي تحتوي على مجموع الساعات. ستقوم هذه الصيغة بتحويل الساعات إلى أيام وساعات. على سبيل المثال، إذا كانت الساعات المدخلة هي 45 ساعة، سيكون مجموعها 45 ساعة، وسيتم تحويلها إلى "5 يوم 13 ساعة" باستخدام الصيغ أعلاه. =QUOTIENT(B1, 8) & " يوم " & MOD(B1, 8) & " ساعة"
-
شكر وتقدير واحترام من اخيك
-
اضافة فورمات التاريخ داخل المعادله
abouelhassan replied to El_Desouky's topic in منتدى الاكسيل Excel
لإضافة تنسيق للتاريخ في المعادلة، يمكنك استخدام الدالة TEXT لتحويل القيمة إلى نص بتنسيق التاريخ المطلوب. اليك الصيغة المعدلة: ``` =IF(D2="", "", IF(E2="", TEXT(NOW(), "dd/mm/yyyy"), TEXT(E2, "dd/mm/yyyy"))) ``` هذه المعادلة تقوم بفحص قيمة في الخلية D2، إذا كانت فارغة، فإنها تعيد قيمة فارغة، وإذا لم تكن فارغة، فإنها تفحص قيمة في الخلية E2، إذا كانت فارغة، فإنها تعيد التاريخ الحالي بتنسيق "dd/mm/yyyy"، وإذا لم تكن فارغة، فإنها تعيد قيمة في الخلية E2 بتنسيق التاريخ "dd/mm/yyyy". يمكن تنسيق تاريخ الخلية داخل المعادلة باستخدام الدالة TEXT لتحويل التاريخ إلى نص بالتنسيق المطلوب. وبالنسبة لإضافة المعادلة باستخدام VBA، يمكنك استخدام الكود التالي: Sub AddFormulaWithDateFormat() Dim ws As Worksheet Dim formula As String ' افتح ورقة العمل المراد العمل عليها Set ws = ThisWorkbook.Sheets("Sheet1") ' تغيير Sheet1 بالاسم الصحيح ' تحديد الصيغة المراد إضافتها بالتنسيق المطلوب formula = "=IF(D2="""", """", IF(E2="""", TEXT(NOW(), ""dd/mm/yyyy""), TEXT(E2, ""dd/mm/yyyy"")))" ' إضافة الصيغة إلى الخلية المرادة ws.Range("F2").Formula = formula ' تغيير F2 بالخلية المطلوبة End Sub يرجى تغيير "Sheet1" بالاسم الصحيح لورقة العمل التي ترغب في إضافة المعادلة إليها، وتغيير "F2" بالخلية التي ترغب في وضع المعادلة فيها. -
اضافة فورمات التاريخ داخل المعادله
abouelhassan replied to El_Desouky's topic in منتدى الاكسيل Excel
الصورة لا تظهر عندى اكتب المعادلة -
Sub SaveAsNewWorkbook() Dim wb As Workbook Dim ws As Worksheet Dim newWb As Workbook Dim newWs As Worksheet Dim folderPath As String Dim clientName As String Dim lastRow As Long ' تحديد المجلد المحتوي على الملف الأصلي folderPath = ThisWorkbook.Path ' اسم العميل (يمكنك تغيير هذا إلى الطريقة التي تريد استخدامها لاستخراج اسم العميل) clientName = "اسم العميل" ' تكوين اسم الملف الجديد newFileName = folderPath & "\" & clientName & ".xlsx" ' نسخ ورقة العمل الحالية إلى مصفوفة Set wb = ThisWorkbook Set ws = wb.ActiveSheet ws.Copy ' حفظ المصفوفة كملف إكسل جديد Set newWb = ActiveWorkbook Set newWs = newWb.Sheets(1) Application.DisplayAlerts = False newWb.SaveAs newFileName, FileFormat:=xlOpenXMLWorkbook Application.DisplayAlerts = True ' تحويل المعادلات في النصف العلوي من الفاتورة إلى قيم lastRow = newWs.Cells(Rows.Count, "A").End(xlUp).Row newWs.Rows("1:" & lastRow \ 2).Value = newWs.Rows("1:" & lastRow \ 2).Value ' إظهار رسالة تأكيد الحفظ MsgBox "تم حفظ الملف كـ" & newFileName, vbInformation, "تم الحفظ" End Sub يرجى ملاحظة أنه يجب استبدال "اسم العميل" بالطريقة التي تريد استخدامها لاستخراج اسم العميل
-
ترقيم تصاعدي بعدد مرات الطباعة
abouelhassan replied to Khorsheed Omar's topic in منتدى الاكسيل Excel
يمكنك استخدام معادلة في Excel لتحقيق هذا الهدف. يمكنك وضع الرقم الابتدائي في خلية معينة، على سبيل المثال خلية A1، ثم استخدام الصيغة التالية في خلية أخرى، مثل B1، لتحقيق التصاعد التلقائي =IF(A1="", "", IF(A1>=10, A1+1, "0"&A1+1)) هذه الصيغة تفحص قيمة الرقم في الخلية A1، وإذا كانت أقل من 10، فإنها تضيف "0" قبل الرقم للحفاظ على التنسيق، وإذا كانت 10 أو أكبر، فإنها تزيد الرقم بمقدار 1. يمكنك استخدام هذه الصيغة في خلية جديدة لتحقيق التصاعد التلقائي. أما بالنسبة لتطبيق هذه الفكرة على ملف Word، فإنها لا تدعم التصاعد التلقائي للأرقام مع كل طباعة، ولكن يمكنك تحقيق ذلك بطرق أخرى مثل استخدام ميزة التعداد التلقائي (AutoNumber) في Word.