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

نجوم المشاركات

  1. عبد الله قدور

    عبد الله قدور

    الخبراء


    • نقاط

      5

    • Posts

      1,177


  2. أبو حنــــين

    أبو حنــــين

    الخبراء


    • نقاط

      5

    • Posts

      2,845


  3. رمهان

    رمهان

    الخبراء


    • نقاط

      4

    • Posts

      2,390


  4. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      4

    • Posts

      13,165


Popular Content

Showing content with the highest reputation on 18 سبت, 2016 in all areas

  1. عزيزي واخي الاستاذ ابا جودي بارك الله فيك وكل عام وانتم بخير اولا ثانيا خلينا وحدة وحدة علشان حاسس ان هناك لبس بسيط 1. الحل الذي قدمته يا استاذ ابا جودي هو نفس الفكرة التي انا شاركت بها ولكن مشكلة الكيرسر لديك هي >> انه زر الامر مش راكب تماما فوق مربع النص وانا وضعته اصلا للخروج من هذا المأزق وهو شكل المؤشر بمربع النص . ولكي ترى المشكلة غير خاصية زر الامر شفاف= لا . لترى مكان زر الامر الحقيقي . وبقي خاصية تاثير خاص=بارز او flat لمربع النص ليظهر وكأنه زر امر. 2. ليس هناك مشكلة في لو تغيرت القيمة فانا قمت بحصر الكود بجملة if لكي اضع القيمة المناسبة وفي طلب الاخ محمد سيكون الشرط في التنسيق الشرطي وفي الكود بعدم تنفيذ اي شي هو ان قيمة المربع = 2 . وانا اضفت زيادة القيم كايضاح اكثر بانه يمكن التحكم حتى لو الشرط اكثر من خيار . تحياتي
    2 points
  2. مرحبا اخي نعم يمكن اظافة خلايا و قد قمت بتعديل يتيح لك الانتقال بين الاوراق و الذهاب الى ملف البحث و التعديل و حفظ التعديل V3.rar
    2 points
  3. السلام عليكم يمكن تطبيق ذلك باستخدام التنسيق الشرطي ارفق مثال للتعديل عليه
    2 points
  4. مرحبا انجرت لك الملف بطريقتين الطريقة واحد كل كل مصنع في ورقة الطريقة 2 مثل الملف المرسل و اعتقد ان كل مصنع في ورقة احسن Téléchargements.rar
    2 points
  5. السلام عليكم اهلا بك أخي عمر احمد بيننا هناك عدة طرق لعمل نسخة تجريبية 1- نسخة تعتمد على التاريخ بحيث تقوم بوضع كود عند تحميل النموذج الرئيسي مثلا كود يقوم بمقارنة تاريخ اليوم مع تاريخ نهاية المدة التجريبية فإذا كان نفس اليوم او اكبر منه تظهر رسالة تحذير ثم اغلاق 2- نسخة تعتمد على عدد السجلات المسجلة في جدول ما في القاعدة بحيث اذا تجاوز عدد السجلات 100 سجل مثلا يقوم البرنامج بمنع اضافة سجلات جديدة الى كل الجداول الموجودة , طبعا هذه الطريقة يجب ان تكون مصاحبة لحماية برقم الهارد او دارة الحماية أو رقم اللوحة الام أو ...أو ... 3- نسخة تعتد على اخفاء ميزات معينة من البرنامج لا يمكن استخدامها حتى يتم تفعيل النسخة بشكل كامل , طبعا هذه الطريقة ايضا يجب ان تكون مصاحبة لحماية برقم الهارد أو دارة حماية أو ..أو .. اليك مرفق بسيط جدا للطريقتين الاولى والثانية db2.rar
    2 points
  6. السلام عليكم ورحمة الله تعالى وبركاته انا جيت ههههههههههههه كل عام وانتم بخير فى هذا الموضوع طلب اخونا الكريم برنامجا لكتابة الاسماء من العربية الى الانجليزية تلقائيا ففتح الله علينا بفكرة بسيطة وهى عن طريق اكواد الحروف فكل حرف يقابله رقم كما تعلمون فكانت الفكرة هى كتابة الحروف باللغة العربية وهما ال 28 حرف وكتابة ما يقابلهم من الحروف الانجليزية مثل أ = A ب = B ت = T وهكذا على حسب ما نقوم بنطقه فقط كم بكتابة الاسم باللغة العربية وسيقوم البنامج بكتابته تلقائيا باللغة الانجليزية صورة من البرنامج -------------------------------------------------------------------- ولكن اذا كنتم تتسائلون دا ان كنتم بقى هههههههههههه ما علاقة محتوى الموضوع بالعنوان وهذا ما نقدمه لكم بفضل الله طلب التحديث لو لاحظتم فى الصورة الان يمكنك طلب التحديث لبرنامجك بكل سهولة ووعدت الاخوة بعمل قاعدة بيانات يمكنك تحميلها حين يتوفر التحديث لبرنامجك من قبل المصمم او حين يتوارد اعطال كثيرة وتحتاج الى التحديث فقط قم بتنزيل التحديث الخاص بك والمستخدم العادى هو من سيقوم بالتحديث ولكن كيف دعونى اوريكم اذا توافر لك تحديث ستجد لينك التحميل بجوار زر طلب التحديث فى نموذج برنامج الترجمة بعد التحميل ستجد قاعدة بيانات ستقوم من خلالها بتحديث برنامجك عن طريق الخطوات التالية اولا الموافقة على الشروط ------------------------------- ثانيا اختيار برنامجك القديم المراد تحديثة ------------------------------------------------- ثالثا اكمال التحديث وانتهى الامر ------------------------------------------------------ اخوانى الكرام لقد تعبت فى هذا العمل فقط لراحتكم انتم لم افكر لحظة فى حفظ الاكواد او منعها عنكم وتركت قواعد بياناتى مفتوحة دائما فى هذا البرنامج سيكون هناك ارقام خاصة وباسوردات خاصة بسيرفرات البرنامج اتمنى الا يعبث بها احد والا ساقاضيه امام رب العالمين لن اقوم باصدار تحديث البرنامج الان ان شاء الله ليلا نظرا لقرب صلاة الجمعة الان فقط برنامج الترجمة التحديث القادم لبرنامج الترجمة سيكون عبارة عن التشكيل فى العربية وما يقابله فى الانجليزية لكتابة الاسماء بصورة صحيحة اتمنى الا يعبث احد بجدول التحديث المربوط بسيرفر الخاص بى
    1 point
  7. 1 point
  8. 1 point
  9. السلام عليكم ورحمة الله وبركاته من الله علي بطريقة لعمل Tool bar او Ribbon Bar مثل البرامج الاحترافية وهي كالتالي وأسأل الله ان تفيد الجميع عمل Tab control في رأس انموذج ثم اضافة التبويبات حسب التصنيف الذي ترغب فيه مثلا تبويب للعملاء وتضيف اليه جميع الازرار الخاصة بالنماذج والتقارير ثم تبويب اخر للموردين وتضيف اليه كذلك ما تريد من ازرار ثم بعد الانتهاء من اضافة التبويبات المطلوبة تذهب الي خصائص الTab Control وتذهب الي خاصية Back style وتجعلها Transparent وبدلا من الازرار التقليدية يمكنك اضافة صورة واضافة امر لها عند النقر ولاضافة خاصية اخري يمكنك جعل المؤشر عند المرور علي الصورة ان يظهر شكل اليد لتكون افضل شكلا مرفق مثال ومدرج به موديول خاص بتغيير شكل المؤشر لشكل اليد عند المرور علي الصورة اي استفسار انا تحت امر الجميع مع خالص الشكر لاعضاء المنتدي المحترمين واسال الله ان ينفع بهذا العمل وان يجعله خالص لوجهه الكريم مرفق المثال Test.rar
    1 point
  10. السلام عليكم معذرة على التاخير في رفع دروس جديدة ولكن ان شاء الله كلما تيسر الوقت ساضيف درس جديد والان اترككم مع الدرس وان شاء الله تعم الفائدة
    1 point
  11. السلام عليكم السكرول بعجلة الماوس غير ممكن مع الفورم أو الكنترولات ... الكود التالي يفتح هذه الامكانية وهو كود جامع موحد ملف للتحميل 1- الكود في موديول عاديي Option Explicit Public Enum CTRL_KEY_PRESS_STATE Released Pressed End Enum Public Enum WHEEL_ROTATION Forward Backward End Enum Private Type POINTAPI X As Long Y As Long End Type Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Private Type LongToInteger Low As Integer High As Integer End Type #If VBA7 Then Private Type MSG hwnd As LongPtr message As Long wParam As LongPtr lParam As LongPtr time As Long pt As POINTAPI End Type Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr Private Declare PtrSafe Function GetDeviceCaps Lib "gdi32" (ByVal hdc As LongPtr, ByVal nIndex As Long) As Long Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hwnd As LongPtr) As LongPtr Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hwnd As LongPtr, ByVal hdc As LongPtr) As Long Private Declare PtrSafe Function ClientToScreen Lib "user32" (ByVal hwnd As LongPtr, lpPoint As POINTAPI) As Long Private Declare PtrSafe Function GetParent Lib "user32" (ByVal hwnd As LongPtr) As LongPtr Private Declare PtrSafe Function WindowFromPoint Lib "user32" (ByVal Point As LongPtr) As LongPtr Private Declare PtrSafe Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As LongPtr, ByVal wFlag As Long) As LongPtr Private Declare PtrSafe Function GetWindowRect Lib "user32" (ByVal hwnd As LongPtr, lpRect As RECT) As Long Private Declare PtrSafe Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As MSG, ByVal hwnd As LongPtr, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long Private Declare PtrSafe Function WaitMessage Lib "user32" () As Long Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare PtrSafe Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long Private Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As LongPtr) Private Declare PtrSafe Sub ZeroMemory Lib "kernel32" Alias "RtlZeroMemory" (dest As Any, ByVal numBytes As LongPtr) Private Declare PtrSafe Function IsBadCodePtr Lib "kernel32" (ByVal lpfn As LongPtr) As Long #If Win64 Then Private Declare PtrSafe Function AccessibleObjectFromPoint Lib "oleacc" (ByVal arg1 As LongPtr, ppacc As Any, pvarChild As Variant) As Long #Else Private Declare PtrSafe Function AccessibleObjectFromPoint Lib "oleacc" (ByVal lX As Long, ByVal lY As Long, ppacc As IAccessible, pvarChild As Variant) As Long #End If #Else Private Type MSG hwnd As Long message As Long wParam As Long lParam As Long time As Long pt As POINTAPI End Type Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long Private Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function WaitMessage Lib "user32" () As Long Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function AccessibleObjectFromPoint Lib "Oleacc" (ByVal lX As Long, ByVal lY As Long, ppacc As IAccessible, pvarChild As Variant) As Long Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) Private Declare Sub ZeroMemory Lib "kernel32.dll" Alias "RtlZeroMemory" (Destination As Any, ByVal Length As Long) Private Declare Function IsBadCodePtr Lib "kernel32" (ByVal lpfn As Long) As Long #End If Private Const CHILDID_SELF = &H0& Private Const S_OK As Long = &H0 Private Const POINTSPERINCH As Long = 72 Private Const LOGPIXELSX As Long = 88 Private Const LOGPIXELSY As Long = 90 Private Const WM_MOUSEWHEEL = &H20A Private Const PM_REMOVE = &H1 Private bCancelProcessing As Boolean Private Const MK_CONTROL = &H8 Private Const SCROLL_CHANGE = 10 Private arObjCaptions() As Variant Private arObjPointers() As Variant Public Sub HookMouseWheelScroll(ByVal UF As Object) Dim WheelRotation As WHEEL_ROTATION Dim CtrlKey As CTRL_KEY_PRESS_STATE Dim tMsg As MSG Dim tCurPos As POINTAPI Dim oIA As IAccessible Dim oObjUnderMouse As Object Dim oPage As Object Dim oCtrl As Object Dim vKid As Variant Dim i As Long Dim j As Long Dim lResult As Long Dim bCancel As Boolean Static k As Long #If VBA7 Then Dim Ptr As LongPtr #Else Dim Ptr As Long #End If bCancelProcessing = False k = 0 UF.Caption = UF.Caption & Chr(10) j = 0 Erase arObjCaptions Erase arObjPointers For Each oCtrl In UF.Controls If TypeName(oCtrl) = "MultiPage" Then For Each oPage In oCtrl.Pages i = i + 1 oPage.Caption = oPage.Caption & String(i, Chr(10)) ReDim Preserve arObjCaptions(j) ReDim Preserve arObjPointers(j) arObjCaptions(j) = oPage.Caption & Chr(10) arObjPointers(j) = ObjPtr(oPage) j = j + 1 Next End If Next Do While Not bCancelProcessing DoEvents GetCursorPos tCurPos #If Win64 Then CopyMemory Ptr, tCurPos, LenB(tCurPos) lResult = AccessibleObjectFromPoint(Ptr, oIA, vKid) #Else lResult = AccessibleObjectFromPoint(tCurPos.X, tCurPos.Y, oIA, vKid) #End If If lResult = S_OK Then On Error Resume Next Set oObjUnderMouse = objUnderMouse(UF, oIA, tCurPos) If Not oObjUnderMouse Is Nothing Then WaitMessage If PeekMessage(tMsg, 0, WM_MOUSEWHEEL, WM_MOUSEWHEEL, PM_REMOVE) Then CtrlKey = IIf(LoWord(CLng(tMsg.wParam)) = MK_CONTROL, Pressed, Released) WheelRotation = IIf(tMsg.wParam > 0, Forward, Backward) Call UF.OnScrollEvent(oObjUnderMouse, WheelRotation, CtrlKey, tMsg.pt.X, tMsg.pt.Y, bCancel) If Not bCancel Then If TypeName(oObjUnderMouse) = "TextBox" Then With oObjUnderMouse .SetFocus If k = 0 Then .SelStart = 0 Else .SelStart = IIf(.SelStart = .LineCount, 0, .SelStart) End If If WheelRotation = Forward Then .CurLine = .CurLine - 1 Else .CurLine = IIf(.CurLine = .LineCount - 1, .CurLine, .CurLine + 1) End If End With k = k + 1 End If If TypeName(oObjUnderMouse) = "ScrollBar" Then With oObjUnderMouse If WheelRotation = Forward Then .Value = IIf(.Value - oObjUnderMouse.SmallChange > .Min, .Value - oObjUnderMouse.SmallChange, .Min) Else .Value = IIf(.Value + oObjUnderMouse.SmallChange < .Max, .Value + oObjUnderMouse.SmallChange, .Max) End If End With End If If TypeName(oObjUnderMouse) = "ListBox" Or TypeName(oObjUnderMouse) = "ComboBox" Then With oObjUnderMouse If CtrlKey = Released Then If WheelRotation = Forward Then .TopIndex = .TopIndex - 1 Else .TopIndex = .TopIndex + 1 End If Else .SetFocus If WheelRotation = Forward Then SendKeys "{LEFT}", True DoEvents SendKeys "{RIGHT}", True Else SendKeys "{RIGHT}", True DoEvents SendKeys "{RIGHT}", True End If End If End With End If If TypeName(oObjUnderMouse) = UF.Name Or TypeName(oObjUnderMouse) = "Frame" Or TypeName(oObjUnderMouse) = "Page" Then With oObjUnderMouse If CtrlKey = Released Then If WheelRotation = Forward Then .ScrollTop = Application.Max(0, .ScrollTop - 5) Else .ScrollTop = Application.Min(.ScrollHeight - .InsideHeight, .ScrollTop + SCROLL_CHANGE) End If Else If WheelRotation = Forward Then .ScrollLeft = Application.Max(0, .ScrollLeft - 5) Else .ScrollLeft = Application.Min(.ScrollWidth - .InsideWidth, .ScrollLeft + SCROLL_CHANGE) End If End If End With End If End If DoEvents End If End If End If Loop End Sub Public Sub RemoveMouseWheelHook() bCancelProcessing = True End Sub 'Private Routines .. '------------------- Private Function objUnderMouse(ByVal UF As Object, ByVal oAcc As IAccessible, MouseLoc As POINTAPI) As Object #If VBA7 Then Dim lngPtr As LongPtr Dim lObjPtr As LongPtr Dim lCtrlPtr As LongPtr Dim hwndForm As LongPtr Dim hwndFromPoint As LongPtr #Else Dim lObjPtr As Long Dim lCtrlPtr As Long Dim hwndForm As Long Dim hwndFromPoint As Long #End If Dim arCtrlsPosition() As Variant Dim arCtrlsPointers() As Variant Dim tPt As POINTAPI Dim tRect As RECT Dim oObj As Object Dim oCtrl As Control Dim sBuffer As String Dim lCtrlLeft As Long Dim lCtrlTop As Long Dim lPos1 As Long Dim lPos2 As Long Dim lPos3 As Long Dim lRet As Long Dim i As Long On Error Resume Next hwndForm = FindWindow(vbNullString, UF.Caption) For Each oCtrl In UF.Controls ReDim Preserve arCtrlsPosition(i + 1) ReDim Preserve arCtrlsPointers(i + 1) tPt = GetRealCtrlScreenLocation(oCtrl, hwndForm, UF) arCtrlsPosition(i) = tPt.X & tPt.Y arCtrlsPointers(i) = ObjPtr(oCtrl) arCtrlsPosition(i + 1) = tPt.X - 2 & tPt.Y - 1 arCtrlsPointers(i + 1) = ObjPtr(oCtrl) i = i + 2 Next lPos1 = WorksheetFunction.Match(oAcc.accName(CHILDID_SELF) & Chr(10), arObjCaptions, 0) lObjPtr = WorksheetFunction.Index(arObjPointers, 1, lPos1) Call oAcc.accLocation(lCtrlLeft, lCtrlTop, 0, 0, CHILDID_SELF) lPos2 = WorksheetFunction.Match(lCtrlLeft & lCtrlTop, arCtrlsPosition, 0) lCtrlPtr = WorksheetFunction.Index(arCtrlsPointers, 1, lPos2) #If VBA7 Then CopyMemory lngPtr, MouseLoc, LenB(MouseLoc) hwndFromPoint = WindowFromPoint(lngPtr) #Else hwndFromPoint = WindowFromPoint(MouseLoc.X, MouseLoc.Y) #End If sBuffer = Space(256) lRet = GetClassName(GetParent(hwndFromPoint), sBuffer, 256) lPos3 = InStr(1, Left(sBuffer, lRet), "MdcPopup") Select Case True Case lPos3 <> 0 Set objUnderMouse = GetActiveComboBox(UF) Exit Function Case oAcc.accName(CHILDID_SELF) = UF.Caption Set oObj = UF Case lObjPtr = 0 If IsBadCodePtr(lCtrlPtr) = 0 Then CopyMemory oObj, lCtrlPtr, 4 End If Case lObjPtr <> 0 If IsBadCodePtr(lObjPtr) = 0 Then CopyMemory oObj, lObjPtr, 4 End If End Select Set objUnderMouse = oObj If Not oObj Is Nothing Then ZeroMemory oObj, 4 End If End Function #If VBA7 Then Private Function GetRealCtrlScreenLocation(ByVal Ctl As Object, ByVal hwnd As LongPtr, ByVal UF As Object) As POINTAPI #Else Private Function GetRealCtrlScreenLocation(ByVal Ctl As Object, ByVal hwnd As Long, ByVal UF As Object) As POINTAPI #End If Dim tRect As RECT Dim tTopLeft As POINTAPI Dim oMultiPage As Control Dim oTempObj As Control On Error Resume Next Set oTempObj = Ctl.Parent With tTopLeft Select Case True Case oTempObj Is Nothing .X = PTtoPX(Ctl.Left - UF.ScrollLeft * UF.Zoom / 100, False) .Y = PTtoPX(Ctl.Top - UF.ScrollTop * UF.Zoom / 100, True) ClientToScreen hwnd, tTopLeft Case TypeName(oTempObj) = "Frame" GetWindowRect oTempObj.[_GethWnd], tRect .X = PTtoPX(Ctl.Left - oTempObj.ScrollLeft * (oTempObj.Zoom / 100), False) + tRect.Left + 2 .Y = PTtoPX(Ctl.Top - oTempObj.ScrollTop * (oTempObj.Zoom / 100), True) + tRect.Top + 8 Case TypeName(oTempObj) = "Page" Set oMultiPage = oTempObj.Parent GetWindowRect GetNextWindow(oMultiPage.[_GethWnd], 5), tRect .X = PTtoPX(Ctl.Left - oTempObj.ScrollLeft * (oTempObj.Zoom / 100), False) + tRect.Left .Y = PTtoPX(Ctl.Top - oTempObj.ScrollTop * (oTempObj.Zoom / 100), True) + tRect.Top Set oMultiPage = Nothing End Select End With GetRealCtrlScreenLocation = tTopLeft Set oTempObj = Nothing End Function Private Function GetActiveComboBox(ByVal Ctl As Object) As Control Dim oCtl As Object Dim lCur As Long On Error Resume Next For Each oCtl In Ctl.Controls Err.Clear lCur = oCtl.CurX If Err.Number = 0 And TypeName(oCtl) = "ComboBox" Then Set GetActiveComboBox = oCtl: Exit Function Next End Function Private Function LoWord(ByVal Word As Long) As Integer Dim X As LongToInteger CopyMemory X, Word, LenB(X) LoWord = X.Low End Function Private Function ScreenDPI(ByVal bVert As Boolean) As Long Static lDPI(1), lDC If lDPI(0) = 0 Then lDC = GetDC(0) lDPI(0) = GetDeviceCaps(lDC, LOGPIXELSX) lDPI(1) = GetDeviceCaps(lDC, LOGPIXELSY) lDC = ReleaseDC(0, lDC) End If ScreenDPI = lDPI(Abs(bVert)) End Function Private Function PTtoPX(ByVal Points As Single, ByVal bVert As Boolean) As Long PTtoPX = Points * ScreenDPI(bVert) / POINTSPERINCH End Function 2- كود في موديول الفورم Option Explicit Private Sub UserForm_Activate() Dim i As Long 'Populate the controls For i = 0 To 100 With ListBox1 .ColumnCount = 4 .ColumnWidths = "100;100;100;100" .AddItem "COLUMN1" .List(i, 1) = "COLUMN2" .List(i, 2) = "COLUMN3" .List(i, 3) = "COLUMN4" End With ListBox2.AddItem i ComboBox1.AddItem i ComboBox2.AddItem i ComboBox3.AddItem i ComboBox4.AddItem i ComboBox5.AddItem i ComboBox6.AddItem i ComboBox7.AddItem i ComboBox8.AddItem i ComboBox9.AddItem i Next i With TextBox1 .Text = .Text & String(300, "A") .Text = .Text & String(300, "I") .Text = .Text & String(300, "X") End With Label1.Caption = "Object :" Label2.Caption = "Wheel Rotation :" Label3.Caption = "Scroll Direction :" Label4.Caption = "Cursor X :" Label5.Caption = "Cursor Y :" Label6.Caption = "Scroll Cancelled :" 'Hook MouseWheel Scroll of Form and of all its controls Call HookMouseWheelScroll(Me) End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) Call RemoveMouseWheelHook End Sub Private Sub CommandButton1_Click() Unload Me End Sub '-------------------- 'Public Generic event '-------------------- Public Sub OnScrollEvent(ByVal Obj As Object, ByVal WheelRotation As WHEEL_ROTATION, _ ByVal CtrlKey As CTRL_KEY_PRESS_STATE, ByVal X As Long, ByVal Y As Long, Cancel As Boolean) Dim sObjName As String, sWheelRot As String, sCtrlKey As String Dim sCurX As String, sCurY As String, sCancelScrol As String sObjName = "Object : (" & Obj.Name & ")" sWheelRot = "Wheel Rotation : (" & IIf(WheelRotation = Forward, "Forward", "Backward") & ")" sCtrlKey = "Scroll Direction : (" & IIf(CtrlKey = Released, "Vert", "Horiz") & ")" sCurX = "Cursor X : (" & X & ")" sCurY = "Cursor Y : (" & Y & ")" sCancelScrol = "Scroll Cancelled : (" & Cancel & ")" Label1.Caption = sObjName Label2.Caption = sWheelRot Label3.Caption = sCtrlKey Label4.Caption = sCurX Label5.Caption = sCurY Label6.Caption = sCancelScrol End Sub
    1 point
  12. جرب هذا الملف الاسماء عشوائية (حيث انك لم ترفع الملف الذي تريد) يمكنك زيادة الاسماء الى ما تريد (حتى 500 اسم) tekrar.rar
    1 point
  13. بارك الله فيك أخي ياسر، الله يوفقك ويأجرك ويسهلك عملك ويجزيك كل خير.
    1 point
  14. الســلامَ عليكـــم ورَحِمَـــة الله وَبَركــآتــه اخي مختار حسين محمود""جزاك الله خيرا وتبوأت من الجنة منزلاجزاك الله خيرافي تقديم في المساعدات انا لم اقصد هذه طريقة بل اريد لما يتم تعبئة الفاتورة الى اخر سطر 60 يتم إدراج سطر تلقائي في أسفل اسطر التي توجد فيه بيانات ولما يتم حدف البيانات يتم إعادة الفاتورة إلى الوضع الطبيعي سطر60
    1 point
  15. ربما ينفع هذا الملف compare two tables.rar
    1 point
  16. ابداعات استاذنا ابو حنين لا تنتهى ان شاء الله دائماً لا تنتهى ما شاء الله واستمراراً فى الابداع وتطويراً فى العمل هل يمكن ان تكون خانة البحث قائمة منسدلة لما يمكن البحث عنه لتيسير البحث وهل يمكن تنفيذ العمل على شكل فورم يجلب ويعدل ويطبع
    1 point
  17. السلام عليكم ورحمت الله تعالى وبركاته أشكر الجميع على بالغ اهتمامه وأقدم أسفي على تأخري في الرد أستاذنا رمهان آآآآسفي على طمعي أنا في انتظار التطبيق أستاذنا محمد أيمن أشكر لك اهتمامك و مشركتنا بعلمك وأنا في انتظار المزيد "سأقوم بتجريب الكود وأوافيك بالنتيجة" أما بخصوص اللغة الفرنسية فبين وبينها ثأر قديم ولغتي الإنكليزية أحسن منها بكثير لكن استطيع متابعة الدورات التعليمة باللغة الفرنسية خاصة التقنية منها أما إذا كنت تريد شيء باللغة الفرنسية فأعرف من يمكن أن يساعد
    1 point
  18. مرحبا هذه محاولة اخرى لاثراء الموضوع رغم ان حل الاخ سليم ما بعده حل 22دوام-موظفين.rar
    1 point
  19. اخي الكريم فتحت نموذج الغياب عند ادخال كود الطالب في حقل ( ادخل الكود ) يتم تلوين اسم الطالب في النموذج الفرعي الجانبي و تختفي كل البيانات من الحقول ( الاسم الثلاثي - تاريخ العملية ) في هذه الحالة كيف سيتم اظهار اليوم اذا كان حقل التاريخ الذي سنحوله الى يوم فارغ ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ نفس الشيئ حدث معي في نموذج التحضير على العموم اذا اردت الابتعاد عن المعادلات و الاكواد بشكل كامل اتبع مايلي : افتح جدول الغياب عدل الحقل day الى تاريخ/وقت عوضا عن نص ضع القيمة الافتراضية للحقل day =date() ضع تنسيق الحقل day dddd طبق نفس الخطوات لجدول الحضور
    1 point
  20. If Year(Date) <> 2016 Then MsgBox "áÞÏ ÇäÊåÊ ÕáÇÍíÉ ÇáÈÑäÇãÌ" DoCmd.Quit End If هذا كود للتأكد ان التاريخ ضمن سنة 2016 حصرا
    1 point
  21. استاذى الحبيب ومعلمى القدير دائما وابدا توجد افكار وحلول رمهانية سبحان الله كنت حاسس ان الحل حيكون من عند حضرتك بس اسمح لى انا بالفعل فكرت فى الحل ده الصبح لما رديت على اخوية محمد بس اسمح لى انا وقفت عند مشكلة وحاولت حلها بحيله اخرى المشكلة فى زر الامر المخفى بسبب ان النموذج مستمر وحللتها عن طريق التنسيق الشرطى ولكن مش عاجبنى ان بعد الضغط بيتم وضع الكيرسر على كلمة تجربة المفروض هى عنوان زر الامر واسمح لى استاذى الحبيب ان اوضح امر على استحياء حضرتك ربط بالترقيم التلقائى بالقيمة 2 والقيمة 9 ماذا لو كان المراد الربط مربع نص والقيم فيه متغيرة وقابلة للتكرار وهذا طلب اخى الفاضل محمد سلامة ارفقت لحضرتكم المرفق الذى توصلت اليه ولكن بصراحة انا مش راضى عنها لانها مجرد حيلة للتحايل ليس الا ايقاف وتفعيل زر امر فى نموذج مستمر.rar
    1 point
  22. إن شاء الله ليلاً سأحاول العمل على ملفك لأنني منشغل في أمور خاصة تمنعني من المحاولات الآن .. ولكن لا تقلق فأنت ببالي
    1 point
  23. انا عندى حيلة يسطة ممكن تجربها بص بصراحة انا مستعجل جدا راح اشرح لك الحيلة بسرعة ولو تيسر لى الدخول ليلا ان شاء الله راح ارفق لك الحل اعمل مربعين نص فى نموذج وليكن اسمه frm_splash فتح القاعدة وليكن txt_crunt_year والثانى باسم txt_confirm_year txt_crunt_year اجعل القيمة الافتراضية له التاريخ date() ومن التنسق اجعله يستخلص العام "yyyy" قم بانشاء جدول وليكن باسم tbl_txt_confirm_year وفى بداية كل عام ممكن حضرتك تغير قيمة السنة بايدك فيه باى طريقة وخزن فيه قيمة السنة الحالية مثلا 2016 مربع النص txt_confirm_year مصدر بياناتة =DLookUp("[txt_confirm_year ]","tbl_txt_confirm_year ") وفى حدث عند التحميل if[txt_crunt_year]=[txt_confirm_year ]then docmd.close acForm, "frm_splash " docmd.openForm"اسم النموذج اللى انت عاوز تفتحه" else msgbox "انتهت فترة صلاحية استخدام البرنامج برجاء مراجعة المبرمج ... لكم خالص الشكر" end if انا اسف جدا جدا جدا انا صعب افتح اوفيس حاليا علشان كده كتبت لك الفكرة تفصيلا وبالاكواد لم اجربها ولكنها خطرت على بالى
    1 point
  24. لك جزيل الشكر اخى ابوحنين واسئل الله لك التوفيق دائماً أسف لكثرة السؤال اخوك ممدوح صفا
    1 point
  25. اخي محمد نجار سبقتني للخير وهذا ايضا برنامج آخر قاعدة بيانات1.rar
    1 point
  26. تم رفع هذا الكود فى مشاركة منفصله حتى لا ننسى هذه المشاركة تحديد نطاق العمل على ورقة اكسل تم ارفاق كود الحل من الفاضل _ أ / ياسر خليل أبو البراء و لا تنسونا من صالح الدعاء تحياتى Baraa.rar
    1 point
  27. لي مشاركة قديمة حول هذا الموضوع ولا اعلم اين وقد تكون بمنتدى اخر والله اعلم وعموما كلام ومشاركة الاساتذة اعلاه صحيح وهذه محاولة بالتنسيق الشرطي . انظر form1 تحياتي للجميع New Microsoft Access Database (4).rar
    1 point
  28. اهلا بك اخي الفاضل وكل عام وانتم بخير من الافضل ان نتواصل علي الموقع لتعم الفائدة للجميع
    1 point
  29. انت تتعامل مع نموذج مستمر ويوجد به زر أمر واحد فقط فإن قمت بعدم تمكين زر الأمر فسوف يكون غير ممكن فى باقي السجلات من النموذج المستمر لأنه هو زر المر الوحيد فقط بعكس لو كان النموذج نموذج مفرد لأنه سيكون لكل سجل زر أمر بحد ذاته لذلك منطقيا لا توجد طريقة لعمل ذلك لان ما ينطبق على احد النماذج المستمرة سينطبق على الكل كما انه لا يمكن برمجيا معرفة السجل المعروض حاليا ان لم يكن هو السجل النشط ولكن ممكن يكون كلامى غير صحيح ولكننى بحثت من قبل تقريبا ولم اجد حل
    1 point
  30. في اوفيس 2016 و 2013 موجود عدة خيارات للصق لما تنسخ النص ضع المؤشر "القلم " الماوس في المكان الذي تريد اللصق عليه ثم بزر الماوس الايمن ستظهر عدة خيارات للصق اضغط على ايقونة " الاحتفاظ بتنسق المصدر " او بالانكليزية " keep source formatting"
    1 point
  31. كفيت ووفيت استاذ محمد ايمن وهذه بطريقة الفلترة : Private Sub txtSave_AfterUpdate() If IsNull(Me.txtSave) Then Me.FilterOn = False: Exit Sub Me.Filter = "[Opérateur] =" & [txtSave] Me.FilterOn = True End Sub وتظل ازرار التنقل بكود الاستاذ محمد ايمن كماهي وهي فعلا ماكنت اقصده من اوامر سهلة للاسف استاذ محمد ولا حتى الاحرف !! تحياتي للجميع
    1 point
  32. اذا سمح لي استاذي رمهان باضافة مرفق يعتمد على اكواد SQL في البحث و التصفية اخي الكريم عند فتح النموذج تكون كل البيانات موجودة ثم نطبق الكود الذي اقترحه استاذنا رمهان سؤال جانبي : هل لغتك الفرنسية جيدة ؟؟ Next2.rar
    1 point
  33. السلام عليكم ورحمه الله وبركاته استاذ عبدالله شكرا لحضرتك علي الرد علي استفساري بس ممكن حضرتك نموذج تفعيل البرنامج برقم سيريل اي بعد انتهاء فتره البرنامج مقارنه بكود التاريخ يظهر نموذج يطلب فيه رقم نسخه البرنامج وفي حاله وضع النسخه يفتح البرنامج وهكذا كل سنه او كل فتره اتمني يكون استفساري واضح لحضرتك وشكرا ليك
    1 point
  34. اخي الفاضل ارفق نسخة من البرنامج وسوف اقوم بالتعديل عليها وعمل رسالة تنبيه
    1 point
  35. جرب الكود التالي في حدث ورقة العمل Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$7" And Not IsEmpty(Target) Then Rows("9:108").Hidden = True Rows(9).Resize([D7]).Hidden = False End If End Sub
    1 point
  36. وعليكم السلام تحتاج الى جدول ونموذج لادخال البيانات اما التنبيه فمن خلال رسالة او نموذج ينبثق عند فتح البرنامج ويتم عملة بالاستعانة بالكود او استعلام فمثلا الاستعلام ندخل فيه تاريخ انتهاء الفترة ونعمل حقل جديد يخرج الفارق بينه وبين تاريخ اليوم الحالي فاذا كان الفارق 3 ايام او اقل ينبثق النموذج او الرسالة عند فتح البرنامج لتخبرك بذلك
    1 point
  37. أخي الكريم 66 محمود (قال يعني إحنا قادرين على محمود واحد ..لما نقابل 66 محمود مرة واحدة) سأقوم بتناول حلول مختلفة واختر منها ما يناسبك .. قمت بإنشاء مصنفين واحد باسم Test والثاني باسم Sample .. في المصنف الثاني قمت بوضع قيمة في الخلية A1 ، وفتحت المصنف الأول ووضعت معادلة في الخلية G7 كما بالصورة إذا نظرت لشريط المعادلات ستجد علامة يساوي يليها علامتين تنصيص مفردة بهذا الشكل ' ... وما بين العلامتين يوجد مسار المصنف المسمى Sample بالكامل ثم \ ثم اسم المصنف ما بين أقواس [ ] ثم يليه مباشرةً ورقة العمل الأولى في المصنف المصدر ...وأخيراً بعد علامة التنصيص المفرة الثانية ' يوجد علامة تعجب ! ثم الخلية المصدر A1 الحل الذي قدمه أخونا الحبيب مختار حسين ..الخطوات كما بالصورة الحل المقدم صحيح 100% ولكن لكي تكتمل الخطوات لابد من تغيير في إعدادات الإكسيل ، من خلال خيارات الإكسيل Excel Options ثم انقر على Trust Center ثم Trust Center Settings ثم اختر من القائمة في الجهة اليسرى External Content واختر الخيار الأول في القسمين الظاهرين في النافذة لديك احفظ وأغلق المصنف و قم بتجربة المصنف المسمى Sample بأن تضع أي قيمة جديدة في الخلية A1 واحفظ المصنف وأغلقة ، ثم قم بفتح المصنف Test ستجد أن البيانات يتم تحديثها ************************ حل آخر بعيداً عن تغيير الإعدادات بكود يوضع في حدث المصنف Test بهذا الشكل ، ويقوم بتحديث الروابط للملفات الخارجية Update All External Links Private Sub Workbook_Open() 'UpdateLinks All Links '--------------------- Dim MyLink As Variant For Each MyLink In ActiveWorkbook.LinkSources(xlExcelLinks) ActiveWorkbook.UpdateLink Name:=MyLink, Type:=xlExcelLinks Next MyLink End Sub لتجربة الكود والتأكد من عمله قم بإرجاع الإعدادات في الصورة الأخيرة إلى الخيار الثاني في القسمين prompt user about Data Connections Prompt user on automatic update for workbook links احفظ المصنف المسمى Test بعد وضع الكود في حدث المصنف ... اذهب للمصنف المسمى Sample وعدل الخلية A1 واحفظ وأغلق افتح المصنف Test لتجد أنه تم تحديث البيانات بدون تغيير في الإعدادات ..فقط بكود يوضع في حدث المصنف أرجو أن أكون قد وفقت في توصيل المعلومة بشكل بسيط يسهل فهمه الرجاء تغيير اسم الظهور للغة العربية والإطلاع على رابط التوجيهات في الموضوعات المثبتة في المنتدى لمعرفة كيفية التعامل بشكل أفضل مع المنتدى تقبل تحياتي
    1 point
  38. السلام عليكم ورحمة الله تعالى وبركاته انا النهاردة حابب اتكلم عن دالة مهمة جدا من وجهة نظرى المتواضعة دالة من دوال التكرار دالة Do While....loop طبعا بما انى مليش فى الشرح اوى فاسمحولى اتكلم كدا بالبلدى ههههههه اول سؤال احنا بنستخدم الدالة دى امتى ؟؟؟ الاجابة اننا بنستخدم الدالة دى لما نكون عاوزين نكرر كود محدد بس اكتر من مرة ومش عارفين عدد محدد لتكرار والحدث او الكود اللى هنكرره دا هيتكرر بناء على شرط معين يعنى لو الشرط اتحقق كرر الكود وهكذا ... قشطة لحد كدا ؟؟؟ شكل الدالة دى بيبقى عامل ازاى Do While الشرط الكود Loop Do While condition code Loop يعنى ايه بقى الكلام دا المقصود ب Do While هو تنفيذ code طالما التعبير الشرطى True قشطة لحد كدا تمام ؟؟ علشان المعلومة تثبت لازم نعمل تدريب عملى هنعمل تدريب عملى بسيط جدا تعالو نشوف انا عاوز اعمل نموذج فى قلبه ليست بوكس اقوم عن طريق الدالة Do While اقوم عن طريقها بادخال الاسماء داخل الليست بوكس نفتح الاكسس ونعمل نمذج فارغ ونسميه Form1 ونعمل زر لااضافة الاسماء ونسميه Button1 ونضيف الليست بوكس ونسميها Listbox1 ايه المطلوب بقى منى ؟؟ المطلوب عن الضغط على زر Button1 يظهر صندوق InputBox لا ادخال الاسماء يبقى احنا هنستخدم دالة InputBox فى ادخال الاسماء تمام كدا يعنى لما اضغط على الزر المفروض يظهر InputBox علشان ادخل الاسم الاول ويظهر مرة تانيه علشان ادخل الاسم الثانى وهكذا لحد ما قيمة الشرط فى دالة Do While تبقى false كدا ينهى الحدث هنخلى الشرط بتاعنا هو عند ادخال كلمة انهاء يقوم بانهاء ادخال الاسماء وهنلاحظ كدا وجود حلقة تكرارية مش عارفين عدد مرات التكرار قد ايه وينتهى التكرار بمجرد ادخال كلمة " انهاء" يلا بينا على الكود طبعا دا هيتحط فى حدث عند النقر للزر 'هنفرض متغير x من نوع نص Dim x As string 'الشرط هنا بيقول انه طالما المتغير x لا يساوى انهاء كرر الكود Do while x<>"انهاء" x=InputBox("ادخال اسماء الطلاب") Me.Listbox1.AddItem (x) Loop شكرا ليكم تحياتى اخوكم مارد عارف انكم كلكم عارفين الدالة دى :mad: بس رخامة وخلا ص Do While .... Loop.rar
    1 point
  39. السلام عليكم أخ سيد إليك الملف التالي أوضح فيه طريقة تحديد نطاق معين للعمل عليه أخوك أبو البراء Baraa.rar
    1 point
  40. وعليكم السلام ورحمة الله وبركاته خطوات البحث : 1- تحتاج الى جدول tblinfo و استعلام مرتبط بالجدول qrySer ونموذج غير منضم frmSer 2- ضع في النموذج مربع نص اسمه Ser . 3- من خلال المعالج أنشئ زر أمر تشغيل الاستعلام qrySer 4- ضع السطر التالي في الاستعلام تحديداً في معيار الحقل المراد البحث فيه وليكن حقل الاسم : Like [forms]![frmSer]![Ser] الشرح : 1-عند تشغيل الاستعلام من خلال زر الأمر سيتم أخذ قيمة معيار حقل الاسم من مربع النص Ser (فإن كان فارغاً سيعرض جميع النتائج) 2-ضع أي كلمة للتجربة واضغط زر الأمر سيتم الحصر والفلترة لتقلل من النتائج . 3- forms هي امر عام وتعني أن الأمر مصدره نموذج . 4- frmSer وهو اسم النموذج الذي نأخذ منه كلمة البحث . 5- Ser هو مربع النص الذي أدخلنا كلمة البحث فيه . 6- Like تعني يشبه أو يماثل والمقصود اعرض لي السجل الذي فيه شبيه لهذه الكلمة القادمة من مربع النص Ser والموجود في النموذج frmSer 7- & "*" وهذا الرمز اختياري ولكنه مهم جداً إذ أنه وفي حال اضافته يوسع نطاق البحث فعند اضافته يمكنك ادخال جزء من كلمة البحث وعند ازالته يجب التقيد بما هو موجود داخل الحقل من قيم فيجب أن تكتب كاملة وفيما يلي أمثلة لأماكن وضع هذا الرمز في سطر البحث : السطر التالي .. يبحث عن الكلمة التي تنتهي بكلمة البحث التي أدخلتها مثل (هد) يمكن أن تكون نتائج البحث ( فهد) (ناهد) (زاهد) (شهد) ... وهكذا : Like "*" & [forms]![frmSer]![Ser] السطر التالي .. يبحث الكلمة التي تبدأ بكلمة البحث التي أدخلتها مثل (جم) يمكن أن تكون نتائج البحث ( جمال) (جميله) (جمعان) (جمايل) ... وهكذا : Like [forms]![frmSer]![Ser] & "*" أما السطر التالي .. يبحث عن أي جزء من الكلمة أو القيمة التي داخل الحقل فمثلا عندما نبحث عن (سل) تكون النتائج (سلمان) (مسلم) (باسل) ... وهكذا : Like "*" & [forms]![frmSer]![Ser] & "*" والله أعلى وأعلم
    1 point
×
×
  • اضف...

Important Information