بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
البحث في الموقع
Showing results for tags 'timer'.
تم العثور علي 4 نتائج
-
السلام عليكم ورحمة الله وبركاته أسعد الله أوقاتكم وبارك فيكم الملف المرفق يحتوي علي [ awsTimer ] وهو [ CLass Module ] والموضوع الأساسي [ awsStringBuilder] وهو [ CLass Module ] و موضوع فرعي [ awsSleepWait_MOD ] وهو [ Module ] و موضوع فرعي الباقي المواضيع الخاصة بهم بالمنتدي [ awsSleepWait_MOD ] - ببساطة وظيفته هي إيقاف عمل الكود لبعض الوقت ولسهولة الاستخدام تم إضافة وحدات للوقت (الوحدة الافتراضية الثواني) و يستخدم هكذا : - Call waitFor(500, wtMilliseconds) - Call waitFor(5, wtSeconds) - Call waitFor(1, wtMinutes) [ awsStringBuilder ] - وظيفة هذه الأداة هو تكوين النصوص الكبيرة بسرعة أكبر بكثير تصل إلي 98 % من الطريقة العادية لن أطيل فالحديث عنها لأنني وصلت إليها حديثاً ووجدت مصادر عده ولكن أغلبها قديم ولم أفحص الموضوع بعناية كبيرة لذا سأكتفي بمشاركة المصادر والوظيفة داخل الكود كما يوجد مثال Advanced_awsTimerTest ملحوظة المديول هام للوظيفة الأساسية لأنه مستخدم لبناء التقرير (النص والـ HTML) المصادر : https://nolongerset.com/string-concatenation-in-vba/ https://nolongerset.com/clsconcat/ https://github.com/joyfullservice/msaccess-vcs-addin/blob/main/Version%20Control.accda.src/modules/clsConcat.cls https://codereview.stackexchange.com/questions/67596/a-lightning-fast-stringbuilder/67600#67600 https://github.com/retailcoder/VBA-StringBuilder/blob/master/src/StringBuilder.cls https://www.vbforums.com/showthread.php?847365-VB6-StringBuilder-Fast-string-concatenation&s=43cda60b1b8cb40b2feaa60b32df951d https://github.com/dragokas/hijackthis/blob/devel/src/clsStringBuilder.cls نتائج التجربة : Normal Test Starts .... Normal String Length is : 944594 Normal Test Takes : 40.794s Normal Test End. SB Test Starts .... String Builder Length is : 894294 sb Way Length is : 894294 awsString builder Test Takes : 638ms sb Test End. AWS StringBuilder is 98.43% faster than the normal way. [ awsTimer ] - وهو موضوعنا الأساسي الأستخدام التقليدي : هو لحساب وقت أي عملية ويستخدم هكذا 1- تهية الـ Class module دخل الكود الخاص بك يتم بطريقتين أفضل الأولي Sub initialize_awsTimer_1() Dim sTimer As awsTimer Set sTimer = New awsTimer Set sTimer = Nothing End Sub Sub initialize_awsTimer_2() Dim sTimer As New awsTimer End Sub بعد ذلك لبدأ حساب الوقت sTimer.startTimer بعد بدأ الوقت يمكنك معرفة الوقت ميلي ثانية في أي لحظة من خلال Debug.Print .elapsedMS ويمكنك أيضاً الحصول علي الوقت منسق بالثواني والدقائق وهكذا من خلال Debug.Print .getFormattedTime(, tuSeconds) كما يمكن استخدام نفس الوظيفة لتنسق اي ميلي ثانية Debug.Print .getFormattedTime(6042, tuMilliseconds) Debug.Print .getFormattedTime(260, tuSeconds) Debug.Print .getFormattedTime(13.15, tuMinutes) ولإيقاف الوقت sTimer.stopTimer بعد إيقاف الوقت سيتوقف العد ولن تتمكن من بدأ او استكمل الحساب إلا بتهيئة جديدة الأستخدام المطور : مقدمة : يوجد لدي بعض الإجراءات التي تحتاج الي ما يقارب الـ 4 ساعات وهي تضم عمل العديد من الأكواد ولمتابعة عمل الأكواد وتسجيل الاحداث ووقت كل عملية والأخطأ والمعلومات كنت أقوم بذلك لكل منها ومن ثم تحليل المعلومات وذلك بشكل أساسي لتحسين وتسريع العملية وعليه فكرت في تطور مديول حساب الوقت ليتضمن الأتي - sTimer.pauseTimer وذلك لكي يتوقف عد الوقت ويستخدم عندما تريد إستثناء بعض الاجراءات مثال إذا اردت إستثناء وقت ظهور الرسالة للمستخدم وإنتظار إجابته عليها - sTimer.startTimer للبدأ والإستكمال بعد التوقف المؤقت - sTimer.addStep "Step1" وذلك لإضافة مرحلة وتستخدم للتحليل فيمكن حساب فرق الوقت بين المراحل كما فالتقرير النهائي يتم تحليل جميع المراحل - sTimer.getStepDiff "Step1", "Step2" وذلك لمعرفة الفرق بين مرحلتين بالميلي ثانية - sTimer.addInfo "UserName", "Ahmos" وذلك لإضافة معلومات كأسم الوظيفة التس ستبدأ او اسم المستخدم - sTimer.addError _ لإضافة الأخطاء أثناء عمل الأكواد "Source", _ مصدر الخطأ "error Number", _ رقم الخطأ "error Description" وصف الخطأ - sTimer.getAwsTimerInfo للحصول علي كافة البيانات - sTimer..exportLog "filePath", txt لتصدير النتائج يوجد نوعين (TXT and HTML) كما يتم التعامل مع 3 مسارات 1- يسمح لك إضافة مسار ملف كامل مع إسم الملف وسيتم التحقق من المسار وإذا امكن إنشاء الملف سيتم الكتابة بداخلة وإذا لم تدخل المسار سيتم اختيار مسار البرنامج وإذا نجح في إنشاء الملف بهذا المسار سيكتب بداخله وإذا فشل سيتم تصدير الملف لسطح المكتب هناك بعض التفاصيل البسيطة مثال للناتج Basic_awsTimerTest داخل مديول awsTimer_Test_MOD #-----------------------------------------------------------------------------------------------------------# ¦ AWS TIMER LOG ¦ ¦ Generated: 27/11/2024 05:52:41 PM ¦ #-----------------------------------------------------------------------------------------------------------# #-----------------------------------------------------------------------------------------------------------# ¦ COLLECTED INFORMATION ¦ #-----------------------------------------------------------------------------------------------------------¦ ¦Key ¦ Value ¦ #-----------------------------------------------------------------------------------------------------------¦ ¦initializedAt ¦ 27/11/2024 05:52:36 PM ¦ ¦currentPath ¦ D:\FOLDER\awsTimer\ ¦ ¦User ¦ UserName ¦ ¦startedAt ¦ 27/11/2024 05:52:36 PM ¦ ¦isoStart ¦ 2024-11-27T17:52:36.000 ¦ ¦startTime ¦ 0.0316 ¦ ¦pausedAt ¦ 27/11/2024 05:52:37 PM ¦ ¦pausedTime ¦ 1013.422 ¦ ¦pausedFormatted ¦ 1.013s ¦ ¦resumedAt ¦ 27/11/2024 05:52:38 PM ¦ ¦RunSub1 ¦ 1013.5207 ¦ ¦RunSub2 ¦ 2024.4509 ¦ ¦Step ¦ 3040.6271 ¦ ¦endTime ¦ 3047.2817 ¦ ¦stoppedAt ¦ 27/11/2024 05:52:40 PM ¦ ¦isoEnd ¦ 2024-11-27T17:52:40.000 ¦ ¦totalTime ¦ 3.047s ¦ ¦filePath ¦ D:\FOLDER\awsTimer\awsTimerLog_27.11.2024_05.52.41_PM.txt ¦ ¦folderPath ¦ D:\FOLDER\awsTimer\ ¦ ¦exportedAt ¦ 27/11/2024 05:52:41 PM ¦ ¦filePath_1 ¦ D:\FOLDER\awsTimer\awsTimerLog_27.11.2024_05.52.41_PM.html ¦ ¦folderPath_1 ¦ D:\FOLDER\awsTimer\ ¦ ¦exportedAt_1 ¦ 27/11/2024 05:52:41 PM ¦ #-----------------------------------------------------------------------------------------------------------# #-----------------------------------------------------------------------------------------------------------# ¦ STEP TIMING ANALYSIS ¦ #-----------------------------------------------------------------------------------------------------------¦ ¦Start Step ¦ End Step ¦ Duration ¦ #-----------------------------------------------------------------------------------------------------------¦ ¦startTime ¦ RunSub1 ¦ 1.013s ¦ ¦RunSub1 ¦ RunSub2 ¦ 1.010s ¦ ¦RunSub2 ¦ Step ¦ 1.016s ¦ ¦Step ¦ endTime ¦ 6ms ¦ ¦startTime ¦ endTime ¦ 3.047s ¦ #-----------------------------------------------------------------------------------------------------------# #-----------------------------------------------------------------------------------------------------------# ¦ ERRORS ENCOUNTERED ¦ #-----------------------------------------------------------------------------------------------------------¦ ¦Location ¦ Error Details ¦ #-----------------------------------------------------------------------------------------------------------¦ ¦Source ¦ 12345_Testing add an error._27/11/2024 05:52:41 PM ¦ #-----------------------------------------------------------------------------------------------------------# تعديلاتكم وإضافاتكم واستفساراتكم محل ترحيب. بالتوفيق! بالتوفيق awsTimerApi_V2_FN.zip
- 1 reply
-
- 1
-
- timer
- string builder
-
(و4 أكثر)
موسوم بكلمه :
-
السلام عليكم قد نريد ان نجعل الرسالة تبقى لمدة معينة ، واذا لم يقوم المستخدم بعمل شيء ، تقوم الرسالة بإختيار "لا" وتغلق نفسها ، Private Sub cmd_Timer_msgbox_Click() Dim Msg, Style, Title, Response, PauseTime Dim Sh_Msgbox As Object PauseTime = 5 'Seconds Msg = "هل تريد الاستمرار" Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "الشاشة ستغلق تلقائيا بعد 5 ثوان" Set Sh_Msgbox = CreateObject("WScript.Shell") Response = Sh_Msgbox.PopUp(Msg, PauseTime, Title, Style) If Response = vbYes Then MsgBox "تم اختيار نعم" Else MsgBox "تم اختيار لا ، او انتهى الوقت" End If End Sub جعفر Msgbox Timer.MDB.zip
-
السلام عليكم ورحمة الله وبركاته الى السادة اعضاء منتدانا الكرام اليكم اليوم شرح طريقة تشغيل مؤقت Timer بالملي ثانية. ولتوضيح فقد عملت كلاس صغيرة اسميتها SuperTimer سأوضح طريقة استخدامها بمثال مرفق في الموضوع في المرفق ستجد ملفان الاول ملف اكسل و هو المثال الذي استخدمناه و ملف اخر وهو ملف الكلاس SuperTimer.cs طريقة الاستخدام ========= 1 - لتعريف متغير يمثل المؤقت اكتب الكود التالي : Dim st As New SuperTimer 2 - بعد تعريف المتغير (في حالتنا هو st) يمكننا انشاء اجراء بأي اسم. (سيحتوي الاجراء على الكود الذي سينفذ من قبل المؤقت) مثال: نرغب بزيادة قيمة الخلية A1 بمقدار 1 كل ربع ثانية. و ان يتم التوقف عند و صول قيمتها الى ال 100 Private Sub F1() [A1] = [A1] + 1 If [A1] >= 100 Then If st.Active Then st.StopTimer End Sub 3 - الكود التالي يوقف المؤقت اذا كان يعمل: If st.Active Then st.StopTimer 4 - لتشغيل المؤقت اكتب الامر StartTimer و مرر عنوان الاجراء الذي ترغب في تنفيده (في حالتنا الاجراء F1) اليها: هنا سنطلب من الاكسل تشغيل المؤقت كل ربع ثانية (كل ثانية تساوي 1000 ملي ثانية) و ان يتم تنفيذ الاجراء F1 st.StartTimer 250, AddressOf F1 5- الكلاس ممكن ان تنشء مجموعة من الاخطاء منها: 1 - خطأ المؤقت ليس قيد التشغيل : اذا تم ايقاف المؤقت بينما لا يعمل st.ERROR_TIMER_IS_NOT_ACTIVE 2 - خطأ المؤقت قيد التشغيل : اذا تم اعادة تشغيل المؤقت وهو يعمل st.ERROR_TIMER_ALREADY_STARTED 3 - خطأ المدة : اذا تم وضع قيمة اقل او تساوي صفر لمدة تشغيل المؤقت st.ERROR_TIMER_DURATION_ERROR 4 - عند حدوث خطأ في تهيئة المؤقت st.ERROR_TIMER_INITIALIZATION_FAILED ملاحظة ===== استخدمه بحذر و عند الحاجة. يمكنك تحميل الكلاس و المثال من الملف المرفق اسال الله تعالى ان يتقبل منى ومنكم صالح الاعمال SuperTimer.zip
- 22 replies
-
- 2
-
- كلاس
- بالملي ثانية
-
(و2 أكثر)
موسوم بكلمه :
-
السلام عليكم ورقة محمية بكلمة سر عندما ادخل نصا في الخلية واضغط انتر اريد من الحدث sheetchange او ما يشبهه ان يقفل الخلية بعد ادخال النص ولكن ليس مباشرة بل بعد ربع ساعة والغاية هي السماح لمدخل البيانات من تغيير البيانات خلال ربع الساعة الأولى من ادخاله للنص لأنه قد يرغب في تصحيح خطأ ما خلال هذه الفترة لكن لا يسمح لأحد بفعل ذلك بعد ربع ساعة حتى لا يحصل تزوير فلا يستطيع احد تغيير البيانات الا بازالة الحماية عن الورقة عن طريق الشخص المسئول اظن المسألة تحتاج timer يتم تفعيله بعد sheetchange او afterupdate او شيء من هذا القبيل هل احد الأخوة الخبراء لديه فكرة؟