التعامل مع الدوال الشرطية فى برمجة الاكسل




IF THEN (ELSE ELSEIF) EXCEL VBA


الدالة الشرطية If Then
تستخدم هذه الدالة للتأكد من تحقق شرط معين
If Range("a2").Value > 0 Then Range("b2").Value = "Positive"
If Range("a2").Value > 0 Then _
Range("b2").Value = "Positive"



استخدام End If مع الدالة الشرطية If Then
تستخدم فى حالة اكثر من طلب يتم تنفيذه
If Range("a2").Value > 0 Then
Range("b2").Value = "Positive"
Range("c2").Value = Range("a2").Value
End If



للشروط المتعدده نستخدم ElseIf
If Range("a2").Value > 0 Then
Range("b2").Value = "Positive"
ElseIf Range("a2").Value < 0 Then
Range("b2").Value = "Negative"
End If



تحقق الشرط و عدم تحقق الشرط If-Else
Sub If_Else()
If Range("a2").Value > 0 Then
Range("b2").Value = "Positive"
Else
Range("b2").Value = "Not Positive"
End If
End Sub



اكثر من دالة شرطية او الدوال الشرطية المركبة
Sub Nested_Ifs()
If Range("a2").Value > 0 Then
Range("b2").Value = "Positive"
Else
If Range("a2").Value < 0 Then
Range("b2").Value = "Negative"
Else
Range("b2").Value = "Zero"
End If
End If
End Sub



استخدام المعامل المنطقى Or مع الدالة If
If Range("a2").Value < 5000 Or Range("a2").Value > 10000 Then
Range("b2").Value = "Out of Range"
End If
If Range("a2").Value < 5000 Or _
Range("a2").Value > 10000 Or _
Range("a2").Value = 9999 Then
Range("b2").Value = "Out of Range"
End If



استخدام المعامل المنطقى And مع الدالة If
If Range("a2").Value >= 5000 And Range("a2").Value <= 10000 Then
Range("b2").Value = "In Range"
End If



استخدام المعامل المنطقى Not مع الدالة If
If Not (Range("a2").Value >= 5000) Then
Range("b2").Value = "Out of Range"
End If



علامات المقارنة مع الدالة If

المعامل الوصف
= يساوى
<> لا يساوى
> اكبر من
>= اكبر من او يساوى
< اقل من
<= اقل من او يساوى



المزج بين الدالة الشرطية if و الدوال المنطقية

الدالة المنطقية الوصف
( IsDate )

If IsDate("4/12/2019") Then MsgBox "Cell Has Date"
هل المطلوب تاريخ
( IsEmpty )

If IsEmpty(Range("A1").Value) Then MsgBox "Cell Empty"
هل المطلوب فارغ
( IsError )

If IsError(CvErr(0)) Then MsgBox "Cell Has Error"
هل الملطلوب خطاء
( IsNull ) هل المطلوب لا يحتوى على شئ
( IsNumeric )

If IsNumeric("123") Then MsgBox "Cell Has Number"
هل المطلوب يحتوى على رقم
( Application.WorksheetFunction.IsText )

If Application.WorksheetFunction.IsText(Range("a2").Value) Then _
MsgBox "Cell is Text"
يمكن كذلك استخدام دوال ورقة العمل العادية

هل المطلوب نص



استخدام الدالة الشرطية If مع Like
Dim strName as String
strName = "Mr. Yasser"
If strName Like "Mr*" Then
MsgBox "True"
Else
MsgBox "False"
End If



التأكد من احتواء الخلية نص معين مثل Mu
If Instr(Range("A2").value,"Mu") > 0 Then
Msgbox "Text Found"
End If



الذهاب الى قسم اخر من الكود عن طريق If Goto
Sub IfGoTo ()
If IsError(Cell.value) Then
Goto Skip
End If
'Some Code
Skip:
End Sub