اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

Foksh

الخبراء
  • Posts

    5093
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    252

كل منشورات العضو Foksh

  1. [تعليق جعفر] بالاشارة الى الموضوع التالي بعد فصل الموضوع عن رده في موضوعه المشار إليه أعلاه .. بصوا على الخفة في الأداء😎 :- Option Compare Database Option Explicit Const TargetControlName As String = "CyberClock" '' ' اسم عنصر عرض الوقت النصي ليبل/مربع نص/زر #If VBA7 Then Public Declare PtrSafe Function SetTimer Lib "user32" (ByVal hWnd As LongPtr, ByVal nIDEvent As LongPtr, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr Public Declare PtrSafe Function KillTimer Lib "user32" (ByVal hWnd As LongPtr, ByVal nIDEvent As LongPtr) As Long Private Declare PtrSafe Function SetWinEventHook Lib "user32" (ByVal eventMin As Long, ByVal eventMax As Long, ByVal hmodWinEventProc As LongPtr, ByVal pfnWinEventProc As LongPtr, ByVal idProcess As Long, ByVal idThread As Long, ByVal dwFlags As Long) As LongPtr Private Declare PtrSafe Function UnhookWinEvent Lib "user32" (ByVal hWinEventHook As LongPtr) As Long Private Declare PtrSafe Function GetAncestor Lib "user32" (ByVal hWnd As LongPtr, ByVal gaFlags As Long) As LongPtr Public NativeTimerID As LongPtr Private WinEventHookID As LongPtr Private AccessHwnd As LongPtr #Else Public Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Public Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long Private Declare Function SetWinEventHook Lib "user32" (ByVal eventMin As Long, ByVal eventMax As Long, ByVal hmodWinEventProc As Long, ByVal pfnWinEventProc As Long, ByVal idProcess As Long, ByVal idThread As Long, ByVal dwFlags As Long) As Long Private Declare Function UnhookWinEvent Lib "user32" (ByVal hWinEventHook As Long) As Long Private Declare Function GetAncestor Lib "user32" (ByVal hWnd As Long, ByVal gaFlags As Long) As Long Public NativeTimerID As Long Private WinEventHookID As Long Private AccessHwnd As Long #End If Private Const EVENT_SYSTEM_FOREGROUND As Long = &H3 Private Const WINEVENT_OUTOFCONTEXT As Long = &H0 Private Const GA_ROOT As Long = 2 Private gWasStoppedByVBE As Boolean Private gTimerInterval As Long #If VBA7 Then Public Sub NativeTimerCallback(ByVal hWnd As LongPtr, ByVal uMsg As Long, ByVal idEvent As LongPtr, ByVal dwTime As Long) #Else Public Sub NativeTimerCallback(ByVal hWnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long) #End If On Error Resume Next Dim currentTime As Variant Dim timeText As String currentTime = Now() timeText = Format$(currentTime, "hh:nn:ss AM/PM") & vbCrLf & Format$(currentTime, "dddd, dd/mm/yyyy") '' ' 1. الوقت فقط (سطر واحد) '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") ' '' ' 2. التاريخ فقط (سطر واحد) '' timeText = Format$(currentTime, "dd/mm/yyyy") ' '' ' 3. الوقت والتاريخ في سطر واحد '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") & " - " & Format$(currentTime, "dd/mm/yyyy") ' '' ' 4. الوقت فوق التاريخ (سطرين) '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") & vbCrLf & Format$(currentTime, "dd/mm/yyyy") ' '' ' 5. التاريخ فوق الوقت (سطرين) '' timeText = Format$(currentTime, "dd/mm/yyyy") & vbCrLf & Format$(currentTime, "hh:nn:ss AM/PM") ' '' ' 6. الوقت مع اسم اليوم والتاريخ (سطر واحد) '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") & " - " & Format$(currentTime, "dddd, dd/mm/yyyy") ' '' ' 7. التاريخ مع اسم اليوم فقط (سطر واحد) '' timeText = Format$(currentTime, "dddd, dd/mm/yyyy") ' '' ' 8. التاريخ مع اسم اليوم فوق الوقت (سطرين) '' timeText = Format$(currentTime, "dddd, dd/mm/yyyy") & vbCrLf & Format$(currentTime, "hh:nn:ss AM/PM") ' '' ' 9. الوقت فقط مع ثواني بصيغة 24 ساعة '' timeText = Format$(currentTime, "HH:nn:ss") ' '' ' 10. الوقت مع التاريخ مختصر (رقم الشهر بدل اسمه) '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") & vbCrLf & Format$(currentTime, "dd/mm/yy") ' '' ' 11. تنسيق أمريكي (شهر/يوم/سنة) '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") & vbCrLf & Format$(currentTime, "mm/dd/yyyy") ' '' ' 12. مع اسم اليوم والمختصر '' timeText = Format$(currentTime, "hh:nn:ss AM/PM") & vbCrLf & Format$(currentTime, "ddd, dd/mm/yyyy") ' Mon, 15/04/2026 ' '' ' 13. نص مخصص بالكامل '' timeText = "الوقت: " & Format$(currentTime, "hh:nn:ss AM/PM") & vbCrLf & "التاريخ: " & Format$(currentTime, "dddd, dd/mm/yyyy") Dim frm As Object, ctl As Object, target As Object For Each frm In Forms Err.Clear Set target = frm.Controls(TargetControlName) If Err.Number = 0 Then target.Caption = timeText target.Value = timeText End If For Each ctl In frm.Controls Err.Clear Set target = ctl.Form.Controls(TargetControlName) If Err.Number = 0 Then target.Caption = timeText target.Value = timeText End If Next ctl Err.Clear Dim LineS As Object, LineM As Object, LineH As Object Dim CX As Long, CY As Long Dim Radius As Long Set LineS = frm.Controls("LineSec") Set LineM = frm.Controls("LineMin") Set LineH = frm.Controls("LineHour") If Err.Number = 0 Then CX = frm.Controls("Line02").Left + (frm.Controls("Line02").Width / 2) CY = frm.Controls("Line01").Top + (frm.Controls("Line01").Height / 2) Radius = frm.Controls("Line02").Width / 2 Dim secAngle As Double, minAngle As Double, hrAngle As Double secAngle = Second(currentTime) * 6 minAngle = Minute(currentTime) * 6 + (Second(currentTime) * 0.1) hrAngle = (Hour(currentTime) Mod 12) * 30 + (Minute(currentTime) * 0.5) DrawClockHand LineS, CX, CY, CLng(Radius * 0.9), secAngle DrawClockHand LineM, CX, CY, CLng(Radius * 0.75), minAngle DrawClockHand LineH, CX, CY, CLng(Radius * 0.5), hrAngle End If Next frm End Sub Public Sub DrawClockHand(ByRef ctlLine As Object, ByVal CX As Long, ByVal CY As Long, ByVal L As Long, ByVal AngleDeg As Double) Const Pi As Double = 3.14159265358979 Dim Rad As Double Dim EX As Long, EY As Long Rad = AngleDeg * Pi / 180 EX = CX + (L * Sin(Rad)) EY = CY - (L * Cos(Rad)) ctlLine.Width = Abs(EX - CX) ctlLine.Height = Abs(EY - CY) If ctlLine.Width = 0 Then ctlLine.Width = 1 If ctlLine.Height = 0 Then ctlLine.Height = 1 If EX < CX Then ctlLine.Left = EX Else ctlLine.Left = CX If EY < CY Then ctlLine.Top = EY Else ctlLine.Top = CY If Sgn(EX - CX) = Sgn(EY - CY) Or Sgn(EX - CX) = 0 Or Sgn(EY - CY) = 0 Then ctlLine.LineSlant = False Else ctlLine.LineSlant = True End If End Sub Public Sub StartNativeTimer(Optional ByVal IntervalMs As Long = 500) gTimerInterval = IntervalMs If NativeTimerID = 0 Then NativeTimerID = SetTimer(0, 0, IntervalMs, AddressOf NativeTimerCallback) End If If WinEventHookID = 0 Then WinEventHookID = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, 0, AddressOf ForegroundChangedProc, 0, 0, WINEVENT_OUTOFCONTEXT) End If End Sub Public Sub StopNativeTimer() If NativeTimerID <> 0 Then KillTimer 0, NativeTimerID NativeTimerID = 0 End If If WinEventHookID <> 0 Then UnhookWinEvent WinEventHookID WinEventHookID = 0 End If End Sub Private Function IsVBEOpen() As Boolean On Error Resume Next IsVBEOpen = Application.VBE.MainWindow.Visible If Err.Number <> 0 Then IsVBEOpen = False On Error GoTo 0 End Function #If VBA7 Then Public Sub ForegroundChangedProc(ByVal hWinEventHook As LongPtr, ByVal eventId As Long, ByVal hWnd As LongPtr, ByVal idObject As Long, ByVal idChild As Long, ByVal dwEventThread As Long, ByVal dwmsEventTime As Long) #Else Public Sub ForegroundChangedProc(ByVal hWinEventHook As Long, ByVal eventId As Long, ByVal hWnd As Long, ByVal idObject As Long, ByVal idChild As Long, ByVal dwEventThread As Long, ByVal dwmsEventTime As Long) #End If On Error Resume Next If AccessHwnd = 0 Then AccessHwnd = Application.hWndAccessApp If IsVBEOpen() Then If NativeTimerID <> 0 Then KillTimer 0, NativeTimerID NativeTimerID = 0 gWasStoppedByVBE = True End If Else If gWasStoppedByVBE Then If GetAncestor(hWnd, GA_ROOT) = AccessHwnd Then If NativeTimerID = 0 Then NativeTimerID = SetTimer(0, 0, gTimerInterval, AddressOf NativeTimerCallback) End If gWasStoppedByVBE = False End If End If End If End Sub وطبعاً الإستدعاء هيكون فقط زي كدة :- Private Sub Form_Load() StartNativeTimer End Sub Private Sub Form_Unload(Cancel As Integer) StopNativeTimer End Sub والملف البسيط ده هدية كبيرة مني لموضوعك المشار إليه نموذج يحتوي فرعي ,, ونموذج رئيسي ، وساعة بالعقارب ورقمية ... Time With No TimerInterval.accdb ودي صورة كمان تخليك تستغرب إن الوقت والساعة شغالين في وضع التصميم لو عاوز .. يعني الحدث عند الوقت ملهوش أي اعتبار عندي هنا . وما تحللش كتير في الكود يا أبو جودي ، هو بسيط و واضح ومقروء ، أصلي ما قرأتش في موضوعك غير جملتين .
  2. أخي الكريم .. الملف مفتوح المصدر .. لا اعلم ما طبيعة المشكلة لأن المشروع مفتوح وليس هناك قيود تمنع التشغيل إلا إذا نقلت المشروع الى قاعدة أخرى وكان هناك مشكلة في المكتبات ..
  3. اخي الفاضل @الاهلاوى 2007 السلام عليكم ورحمة الله وبركاته .. اختيارك لـ تمت الإجابة ، معناه أنك قد وجدت الحل ، ولكن وبما أن طلبك ما زال قائماً ولم تحصل على الحل الكامل ؛ نرجو منك اختيار الزر تمت الإجابة فقط عند المشاركة التي حققت لك الحل . ولذا ، تصويباً للخطأ الغير مقصود ، في حال ما زال طلبك لم يتكتمل بالحل ، قم بإلغاء اختيار الإجابة ، وامنحها عند اغلاق الموضوع . أو إن كان طلبك التالي مختلفاً عن الأول . فحينها فاتح موضوع جديد لطلبك الثاني ، وأكمل في سؤالك الثاني .
  4. وعليكم السلام ورحمة الله وبركاته.. بدايةً أتمنى أن تجد رداً لطلباتك التي تطمح بتحقيقها . ولكن يا عزيزي الفاضل ، ما تطلبه ليس طلباً واحداً. أنت ترغب بتحويل مشروع من جداول يدوية الى نماذج آلية ؛ والعمل لن يكون بسيطاً كما تتصوره. لذا أنصحك بالتدرج في طلباتك خطوة خطوة ، بحيث يكون لكل طلب موضوع مستقل ، ثم تقوم بتجميع الحلول من الأخوة والأساتذة المتقدمين لمد يد العون والمساعدة لك . وهم كثر والحمد لله. دمت بخير 😇
  5. مباااادرة جميلة وجيدة ، على الأقل نراكم ونسعد بمواضيعكم أينما حللتم
  6. للأسف .. لم أفهم المطلوب نهائياً !! يعني مثلاً انت تريد تقسيم العدد 3 الموجود في الخلية N9 على الخلايا من M10 - M14 ؟؟؟؟؟؟؟ لو فعلاً ما تقصده ، فعلى أي أساس ؟؟ وما الشروط ؟؟ وكيف تريد التنفيذ 🤷🏻‍♂️
  7. أخي @بلانك ، بعد السلام عليكم ورحمة الله وبركاته .. الأصل ان ترفق ملفك غير محمي بكلمة مرور لمحرر الأكواد . نظراً لأن العمل لن يكون في المعادلات كونك تستعمل الدائرة Shape . لذا ترفق بنا فيما بعد لتلافي هذا الخطأ أيضاً عليك اختيار عنوان صحيح وذو دلالة للمطلوب . وليس عنواناً مبهماً استفسارياً ، حتى لا يتعرض موضوعك للإغلاق مخالفاً لقواعد المشاركات .. وعليه ومن خلال النظر للملف ودون محاولة مني لكسر حمايته ، جرب الدالة التالية واستدعيها في زر خاص بها :- Sub CountShapesPerRow() Dim ws As Worksheet Dim shp As Shape Dim r As Long Dim countRow(10 To 14) As Integer Dim countRow2(18 To 22) As Integer Set ws = ThisWorkbook.Sheets("Sheet1") For Each shp In ws.Shapes For r = 10 To 14 If Not Intersect(ws.Range("C" & r & ":J" & r), shp.TopLeftCell) Is Nothing Then countRow(r) = countRow(r) + 1 End If Next r For r = 18 To 22 If Not Intersect(ws.Range("C" & r & ":J" & r), shp.TopLeftCell) Is Nothing Then countRow2(r) = countRow2(r) + 1 End If Next r Next shp For r = 10 To 14 ws.Range("M" & r).Value = countRow(r) Next r For r = 18 To 22 ws.Range("M" & r).Value = countRow2(r) Next r End Sub ما لم تفلح معك الفكرة ، اعد رفع الملف بدون حماية محرر الأكواد إذا تكرمت .
  8. انت بتفكرني بـ " أذاكر وأنجح " 😂 انت لو قرأت الموضوع كويس كان عرفت انه الملف اللي انت محتاجه موجود في أول مشاركة 😉
  9. أخواني وأساتذتي ومعلمينا ( دون استثناء ) يتوفر نظام متكامل للتفعيل من خلال الإنترنت بالمميزات التالية :- نظام بصمة لكل جهاز فريد وغير متكرر . التفعيل من خلال البريد الإلكتروني + بصمة الجهاز . سيرفر يسجل جميع النسخ التي تم تشغيلها لبرنامجك . رمز Pin لتأكيد التفعيل بالبريد الإلكتروني بمدة محددة = 5 دقائق ، عند التفعيل لأول مرة فقط . إمكانية استرجاع التفعيل لنسخة العميل حتى بعد الفرومات وتغيير الجهاز . دعم متكامل للشركات التي تستخدم برنامجك على أكثر من جهاز . فيمكن استعمال رمز التفعيل على عدد تقرره وتحدده انت يصل لـ 100 جهاز على سبيل المثال ليقوم بالتفعيل من خلال رمز تفعيل واحد . دعم التفعيل المرن بمدة حسب الحاجة ( شهر ، 3 شهور ، 6 شهور ، سنة ، مدى الحياة ، مدة محددة على سبيل المثال 40 يوماً ) . دعم إمكانية حجب نسخة عميل من التفعيل واستخدام البرنامج . دعم الإقفال عند التلاعب بالوقت والتاريخ مضبوط بشكل محكم 101% . واجهة للمطور مخصصة بالتفعيل عن بعد . أو بإرسال رقم التفعيل للعميل لاستخدامه بشكل يدوي . سيرفر مدعوم من جوجل مجاني يصل لـ 15 جيجا كحجم بيانات . دعم الصيانة على الأداة المخصصة بالتفعيل 6 شهور بعد البيع . نسخة تجريبية يمكن التحكم بها - الإفتراضية 7 أيام . للتواصل من خلال الواتس أب :- 00962787818180
      • 2
      • Haha
      • Like
  10. ،، جرب اجعل المعادلات في :- J2 = =IFERROR(IF(INDEX(Q:Q, MATCH(B5, P:P, 0)) = H2, "P", ""), "") J3 = =IFERROR(IF(INDEX(Q:Q, MATCH(B5, P:P, 0)) = H3, "P", ""), "") J4 = =IFERROR(IF(INDEX(Q:Q, MATCH(B5, P:P, 0)) = H4, "P", ""), "") وعدل الخلية B5 لتصبح :- =IFERROR(IF(MATCH(INDEX(data!$P$2:$P$23, MATCH($E$1, data!$R$2:$R$23, 0)), $P$2:$P$13, 0), INDEX(data!$P$2:$P$23, MATCH($E$1, data!$R$2:$R$23, 0)), ""), "") لتلافي الخروج عن نطاق P2 - P13
  11. اخي الكريم السلام عليكم ورحمة الله وبركاته .. قد قمت سابقاً بفتح موضوع بنفس الطلب والعنوان ، وهذا يخالف قواعد المشاركه في المنتدى.. لذا نرجو منك دائما متابعة موضوعك بعناية حتى لا تتشتت بين هنا وهناك في مواضيعك. سيتم اغلاق الموضوع القديم.
  12. تأكد من إعدادات اللغة الإقليمية في الويندوز بأنها عربية 😇
  13. وعليكم السلام ورحمة الله وبركاته .. لم يظهر أي مشكلة عند فتح المرفق وتعديل الأكواد لتعمل مع إصداري 64 .. ولكن في الإصدار 32 ، ظهرت المشكلة والسبب المعامل الثالث الذي يمرر في استدعاء الـ InpuBoxDK ، عدله ليصبح كالتالي :- str_Title = "سبحان الله وبحمده سبحان الله العظيم" strAdminPWord = InputBoxDK("Password required to proceed.", str_Title) بدلاً من :- str_Title = "سبحان الله وبحمده سبحان الله العظيم" strAdminPWord = InputBoxDK("Password required to proceed.", str_Title, "Enter Licence Code")
  14. فعلاً هو المقصود بعينه .. السبب لغاية في نفسي كإضافة لفكرتي التي أعمل عليها 😅
  15. بعض ما عندكم أخي عطالله ,, شكراً لمرورك الكريم .. إن شاء الله الأداة في إصدارها الأول ستكون متاحة في موضوع جديد حال الإنتهاء من بعض التنسيقات في التصميم ..
  16. وعليكم السلام ورحمة الله وبركاته .. هذه محاولة بسيطة بدون تعقيد ، حيث تم تطبيق فكرة إظهار وإخفاء العناصر قي نفس النموذج عند تحقق شرط رقم الماذر بورد باستخدام Tag للعناصر على جزئين . جزء لمكونات تسجيل الدخول ، وجزء لمكونات التحقق وشريط التحميل .. ملفك يعد التعديل .. Database.zip
  17. وعليكم السلام ورحمة الله تعالى وبركاته.. أفكار جميلة ، ومتطلبات قد تكون إضافات جميلة لمن يرغب بالمشاركة .. نتمنى أن تجد طلبك ومبتغاك هنا 🤗 .
  18. لم أجد إجابة شافية بالبحث في الإنترنت .. ولا حتى هنا ( فنحن جزء من عالم الإنترنت 😅 ) .. على العموم .. رأيكم بهذه التجربة القيد التطوير يهمني . وستعرفون سبب سؤالي السابق .. الملف الذي تمت التجربة عليه بعد الإستخراج ( بدون أكواد ) علشان ما حد ينصدم Montaser_UnlockedByFoksh.accdb
  19. تم مهندسنا الغالي .. ⏳ تم تمديد المدة حتى نهاية شهر 4 إبريل April
  20. وأنا كنت أظنها من فرق الإصدارات ، والصوة توضيح لما شككتني به سابقاً معلومتي .. شكراً للتصحيح أخي جعفر
  21. ⏳ باقي من الوقت : 2 يوم حتى نهاية التحدى الثاني وللأسف نفتقر إلى المشاركات الإبداعية
  22. أمر الطباعة يقرأ وينفذ الطباعة على ما يتم قراءته في الشاشة ( الملف ) ، ولكن قد يكون هناك فكرة ، بإزالة كافة التنسيقات أو تنسيقات محددة قبل تنفيذ أمر الطباعة ، ومن ثم اعادتها مرة أخرى - لكني اعتقد انه أمر مرهق - ما لم يكن يسبب لك مشاكل فلا داعي للغوص في هذه التجربة ورأيي قابل للخطأ ، ولكم حرية التنفيذ
  23. اختلاف الفاصلة المنقوطة أو العادية مرهون باختلاف إصدار أوفيس . الحمد لله على إيجادك الحل
×
×
  • اضف...

Important Information