الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

استفسار بخصوص كود Vba في الاكسل ويخص Msgbox

بدأه e3sar00 في 11 نوفمبر 2009 · 2 رد · 1,493 مشاهدة · في قسم تكنولوجيا Microsoft .NET العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

مرحبا إخواني

لدي استفسار بخصوص كود VBA في الاكسل .. حيث أود عمل جدول أدخل من خلاله أرقام بحيث يشترط أن لا يكون الرقم أكبر من 10 ولا أصغر من الصفر وأن يكون العدد صحيحاً لا يقبل الاعداد العشرية وفي حال وضع رقم يخالف هذين الشرطين وبمجرد محاولة الانتقال للخلية الثانية يظهر لدي Msgbox به خيارين إما إلغاء الرقم المدخل أو إعادة المحاولة بحيث يمسح الرقم السابق ويظل مؤشر الماوس في نفس الخلية حتى يتم ادخال الرقم الصحيح بحيث ينطبق هذا الشرط على كل العمود مثلا العمود A والعمود B وهكذا

وهذه صورة توضيحية لمقصدي

msg203370981221446.gif

وهنا الملف أرفقه لكم

اضغط هنا لتحميل الملف

أرجو أن أجد المساعدة منكم وللعلم فهو لا يخص الدراسة ولكن وجدت صديق لي يبحث عن الموضوع وأردت تعلمها من خلال الانترنت ولكن لم أفلح كثيراً

#2

السلام عليكــم ،،

جرب هذا الكود

Private Sub Worksheet_Change(ByVal Target As Range)
	 If Target.Address = "$A$2" Then
		 If Target.Value > 10 Then
			 MsgBox ("الرقم اكبر من 10")
			 Exit Sub
		 End If
		 If Target.Value < 0 Then
			 MsgBox ("الرقم اضغر من 0")
			 Exit Sub
		 End If

		 If Target.Value <> Int(Target.Value) Then
			 MsgBox "الرقم فيه كسور عشرية"
			 Exit Sub
		 End If
	 End If
 End Sub
#3

السلام عليكم ورحمة الله وبركاته

أخي الحبيب يمكنك عمل ذلك دون اللجوء إلى أكواد VBA فإكسيل يدعم ذلك بجدارة كل ما عليك سوى اتباع ما يلي :

قم بتحديد الخلايا المراد ادخال الرقم بها

ومن قائمة Data اختر Validation

سيفتح لك مربع حوار بعنوان Data Validation في التبويب الأول منه Settings افتح القائمة المنسدلة Allow واختر منها Whole number (أي أنك تريد أن تجبر المستخدم على ادخال عدد صحيح)

ثم من القائمة المنسدلة الثانية المسماة Data اختر between

سيظهر لك مربعين . الأول Minimum أكتب فيه 0 ، والثاني Maximum اكتب فيه 10

بعد ذلك انتقل للتبويب الثاني بالأعلى Input Message وذلك إذا أردت أن تظهر للمستخدم رسالة إذا وقف على الخلية تخبره فيها بإدخال رقم أكبر من الصفر وأقل من العشرة

بعد ذلك انتقل للتبويب الثالث بالأعلى Error Alert وهذا الجزء هو المسؤول عن ظهور رسالة الخطأ في حالة ادخال المستخدم رقم يخالف القاعدة الموضوعة (كما هو واضح في رسالة الخطأ التي أرفقتها في الصورة)

بعد ذلك اضغط OK

وإذا أردت أن تزيل كل هذا قم بتحديد الخلايا المراد إزالة هذا الشرط منها وكرر فتح مربع حوار Data Validation مرة أخرى واضغط على الزر الأيسر Clear All ثم Ok

وأريد أن أوضح أن هذه الطريقة أفضل لأن طريقة أكواد VBA يجب أن يجعل المستخدم مستوى الأمان عنده إما متوسط أو منخفض حتى تعمل أكواد VBA

والسلام عليكم ورحمة الله

مواضيع مشابهة