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

الردود الموصى بها

قام بنشر

السلام عليكم

لدينا عدة أوراق إكسيل وندخل عليها بيانات بإستمرار

وأحياناً تتغير البيانات المدخلة

فحاولت أن أستخدم الدالة التالية لمعرفة آخر تغيير على الخلية أو الخلايا

IF(isblank(A1),””,Now())

ونجحت بأن أعطتني الوقت والتاريخ فعلاُ عند حدوث التعديل أو الإدخال

ولكن المشكلة هي أن العمود الذي يحتوي على المعادلة يتغير فيه الوقت كلما تمت عملية إدخال

أو تعديل جديدة أي أن الوقت يتحدث بإستمرار

فكيف أستطيع أن أجعل وقت التغيير أو الإدخال كلاً على حده ولا يتحدث إلا عند حصول تغيير آخر

وليس بضغط F9 أو عند إعادة فتح الملف مرة أخرى أو كلما أجرينا تعديل

ولكم جزيل الشكر

قام بنشر

السلام عليكم

الحمد لله لقد توصلت إلى الحل وهو كالآتي

نعرف دالة جديدة عن طريق الـ VB

والكود كالآتي

Function ash(ash1 As String)
If Application.WorksheetFunction.IsText(ash1) Then
ash = Date & Time
End If
Application.ScreenUpdating = False
End Function

ومن داخل الإكسيل نستدعي الدالة وتحديد الخلية التي نريد أن نعرف متى تعدلت

وعند تطبيق المعادلة سيعطينا وقت إدخال هذه المعادلة وسيتغير هذا الوقت فقط في

حال التعديل أو الإلغاء

وشكراً

  • Like 1
قام بنشر

يا اخوان ممكن واحد يشرح طريقة كيفية استدعاء الدالة السابقة وتطبيقها

وذلك للاحاجة

مشكورين مسبقا

قام بنشر

السلام عليكم

عندما نريد أن نكون معادلة في الـ VBA ومن ثم نستدعيها فعلينا أن نستخدم

Function  () 
ما تريد أن تعرفه
End Function
وذلك لكي يحتفظ الكود الذي كتبته بالقيمة المطلوبة التي تريد أن تصل إليها ولا نستخدم SUB لأنها تقوم بإجراء ماتريده ومن ثم ينتهي تأثيرها ولا تتنفذ مرة أخرى إلا إذا إستدعيتها من قائمة الماكرو أو عملت لها زر وربطتها بالماكرو ولكن Function تحتفظ بما تم تعريفة وبعد ذلك ستجد ما عرفته موجود في دوال الإكسل Function Paste وما قمت بتعريفه هو أنه في حال احتواء الخلية على أي نص والذي تم تعريفه مسبقاً
ash1 As String
فإنه سيتم استدعاء الدالة ash والتي تعطينا الوقت والتاريخ وذلك حسب التعريف
ash = Date & Time
إلى هنا ستعطينا الدالة نفس التأثير للمعادلة Now() فلهذا أضفت السطر
application.screenupdating = false

وذلك لكي يقوم بتعطيل خاصية التحديث التلقائي كلما حدث أي تغيير في البيانات

آمل أن أكون قد حققت مطلبك يا سيد أنور

والسلام

  • Like 1
قام بنشر

شكرا لك اخي نواس

وشكرا علي الشرح ويبدو انك مسمرة في التعامل مع الاكواد

السؤال هنا كيف استطيع استدعاء الدالة من داخل الاكسيل

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

  • 2 weeks later...
قام بنشر

شكرا لك استاذي الكريم (سيد) لقد نحج معي الكود ووجدت الدالة مدرجة ضمن الدوال

الف شكر لك وكل عام والجميع بالف خير

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information