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

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

  1. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      44

    • Posts

      11645


  2. د.كاف يار

    د.كاف يار

    الخبراء


    • نقاط

      14

    • Posts

      1681


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      12

    • Posts

      13389


  4. أبو عبدالله الحلوانى

Popular Content

Showing content with the highest reputation on 09/14/19 in مشاركات

  1. السلام عليكم Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 46 Then ' your msg exit sub End If End Sub
    5 points
  2. في الملف المرفق عندنا جدول من A1 الى F8 وعلى المستخدم ان يملؤه بالترتيب (في كل صف) مثلا اذا قمت بالكتابة في الخلية D4 و كان ما قبلها فارغاً (C4) يقوم الدكتور اكسل بمسح ما قمت بكتابته بعد الخروج من الخلية دون انذار و اذا حذفت اول خلية بالصف يتم حذف كامل الصف الكود Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Range("A1:F8")) Is Nothing Then If Target.Count = 1 Then del_to_Column (Target.Row) End If End If Application.EnableEvents = True End Sub '================================ Sub del_to_Column(R) Dim My_rg As Range, R_Empty As Range Dim Col% Set My_rg = Cells(R, 1).Resize(, 6) Col = My_rg.Columns.Count Set R_Empty = My_rg.Find(vbNullString, After:=Cells(R, 6)) If Not R_Empty Is Nothing Then R_Empty.Resize(, Col - R_Empty.Column + 1) = vbNullString End If End Sub الملف مرفق write_by_order.xlsm
    3 points
  3. أعتقد أن فكرة البرنامج بسيطة بامكانك أن تفتح موضوع جديد (واجعلها فرصة لتعلم مهارات جديدة مع الأكسس) لتبدأ العمل خطوة خطوة مع مشاركة اخوتك أعضاء المنتدي (عملا يتناسب مع احتياجاتك) وإن شاء الله ستحصل علي ما تريد وأكثر. أو قم بالبحث داخل المنتدي لعلك تجد شيئا مشابها لما تريد مفتوح المصدر.
    3 points
  4. على اعتبار ان حقل المجموع اسمه = txtQuantity ضع هذا الكود على زر الامر جديد Select Case Nz(txtQuantity, "") Case "" MsgBox "Quantity is empty, include the Quantity please" Case Is <= 0 MsgBox "Quantity is zero or less, include the Quantity please" Case Is > 0 DoCmd.GoToRecord , , acNewRec End Select
    3 points
  5. في مربع نص الكمية وفي حدث عند الخروج ضع هذا الكود ... مع تعديل ما يلزم If IsNull(Me.Namex) Then ' Namex هو اسم مربع نص الكمية MsgBox "ادخل بيانات", vbCritical, "dATA" DoCmd.CancelEvent End If
    3 points
  6. السلام عليكم هذا البرنامج محمي - يجب الرجوع لمالكه - والا كان هذا تعدي علي حقوق الغير, وهذا لن تجد من يساعدك عليه هنا!!! اذا كنت متأكد أن صانع هذا البرنامج من أحد الأعضاء بالمنتدي يمكنك مخاطبته مباشرة وطلب المساعدة أو يمكنك طرح فكرتك التي تريد أن تقوم بها وستجد ايادي العون البيضاء من اخوتك بالمنتدي قد امتدت اليك من كل جهة ان شاء الله
    3 points
  7. أحسنت استاذ سليم كود ممتاز بارك الله فيك وجزاك الله كل خير
    3 points
  8. وذلك بهذا الكود Sub InsertPageBreaksByKeyphrase() Dim rangeSelection As Range Dim cellCurrent As Range Set rangeSelection = Application.Selection ActiveSheet.ResetAllPageBreaks For Each cellCurrent In rangeSelection If cellCurrent.Value = "رقم البطاقة التموينية" Then ActiveSheet.Rows(cellCurrent.Row + 1).PageBreak = _ xlPageBreakManual End If Next cellCurrent End Sub
    3 points
  9. وعليكم السلام-وذلك كما بالصورة
    3 points
  10. تفضل جرب هذا الفيديو https://www.youtube.com/watch?v=0NBrHj5Ca4E
    3 points
  11. اهلا بك بشمهندس ... بالعكس كثرة و تنوع الردود يثري الموضوع ... لا داعي للاعتذار انا استفدت من ردك ... لان هذه الردود تمثل عصف ذهني لمجموعة متحاورة ولسنا في سباق ... بارك الله فيك اخي الفاضل ... اسأل الله العظيم ان يديم علينا جميعا بالصحة والعافية ⚘⚘
    2 points
  12. عذرا استاذى الفاضل واخى الحبيب والله لم انتبه لمشاركتكم واعتذر جدا جدا جدا جدا لا اعرف كيف حدث ذلك
    2 points
  13. جرب هذا الماكرو بالنسبة للملفات HR_test Option Explicit Sub copy_data() Dim S As Worksheet: Set S = Sheets("Shift Schedule") Dim O As Worksheet: Set O = Sheets("Overtime") Dim A As Worksheet: Set A = Sheets("Attendance") Dim Final_S: Final_S = S.Cells(Rows.Count, 1).End(3).Row Dim Final_O: Final_O = O.Cells(Rows.Count, 1).End(3).Row Dim Final_A: Final_A = A.Cells(Rows.Count, 1).End(3).Row Dim Rs As Range: Set Rs = S.Range("A8:AG" & Final_S) Dim RO As Range: Set RO = O.Range("A8:AG" & Final_O) Dim RA As Range: Set RA = A.Range("A8:AG" & Final_A) Dim i%, xO%, XA%, xx% xO = RO.Rows.Count: XA = RA.Rows.Count Rs.ClearContents i = 1: xx = 8 Do Until i > xO S.Cells(xx, 1) = RO.Cells(i, 1) S.Cells(xx, 3).Resize(, RO.Columns.Count - 2).Value = _ RO.Cells(i, 3).Resize(, RO.Columns.Count - 2).Value i = i + 1: xx = xx + 2 Loop i = 1: xx = 9 Do Until i > XA S.Cells(xx, 1) = RA.Cells(i, 1) S.Cells(xx, 3).Resize(, RA.Columns.Count - 2).Value = _ RA.Cells(i, 3).Resize(, RA.Columns.Count - 2).Value i = i + 1: xx = xx + 2 Loop End Sub الملف مرفق Salim_TEST3.xlsm
    2 points
  14. تفضل هذا الاقتراح الضريبة.accdb
    2 points
  15. شكرا أستاذ Barna وشكرا لك أستاذ ابا جودى الطريقتين تعملان و بفعلية شكرا جزيلا
    2 points
  16. اخي الكريم لنفترض انه لديك جدول للمستخدمين (UserId , UserName , Password , UserTayb, Additions (Yeas / No), Deletions (Yeas / No), Edits (Yeas / No)) ففي شاشة الدخول LOGIN نحتاج لتعريف متغيرات عامة من نوع Global حسب جدول المستخدمين ففي حال تطابق اسم المستخدم مع كلمة المرور يتم جلب بيانات المستخدم و تخزينها في المتغييرات اذا فالفكرة العامة بأن نقوم بجلب صلاحيات المستخدم و تطبيقها على جميع النماذج من خلال الاتصال بالموديل Call ففي جميع الأحوال يتم التطبيق حسب حاجة التصميم لديك
    2 points
  17. 2 points
  18. تحياتي الخالصة تفضل المطلوب في الملف المرفق... بن علية حاجي تقرير (1).xlsx
    2 points
  19. هو لا يريد منع الحذف .. يريد منع الحذف من لوحة المفاتيح والسماح بالحذف من النموذج
    2 points
  20. تفضل اخي الكريم هذا الكود لانشاء نسخة احتياطية مماثلة في ازرار النسخة الاحتياطية ضع في حدث عند الضغط الكود التالي كما انصحك بأن تضع هذا كود ضمن امر الحفظ Dim MyFile, DstFile As String Dim Syso As Object On Error GoTo ErrH MyFile = CurrentProject.FullName DstFile = CurrentProject.Path & "\Backup-" & Format(Date, "dd-mm-yyyy") & ".accdb" DBEngine.Idle Set Syso = CreateObject("Scripting.FileSystemObject") Syso.copyfile MyFile, DstFile Set Syso = Nothing Name DstFile As DstFile & ".ptc" DBEngine.CompactDatabase DstFile & ".ptc", DstFile Kill DstFile & ".ptc" MsgBox "تم انشاء قاعدة البيانات بنجاح" & vbNewLine & "Database successfully created" & vbNewLine & vbNewLine & "" & "اسم قاعدة البيانات" & vbNewLine & "The name of the database" & vbNewLine & "" & vbNewLine & "Backup-" & Format(Date, "dd-mm-yyyy") & vbNewLine & vbNewLine & "" & "مسار القاعدة الجديدة" & vbNewLine & "Path of the new rule" & vbNewLine & "" & vbNewLine & DstFile, vbMsgBoxRight + vbOKOnly, "emphasis" & "/" & "تاكيد" Exit Sub ErrH: Select Case Err.Number End Select
    2 points
  21. اخي الكريم ضع في حدث عند الفتح الكود التالي لمنع الحذف Me.AllowDeletions = False =================================== خيارات اخرى يمكن وضعها مع صلاحيات المستخدمين لمنع التعديل Me.AllowEdits = False لمنع الاضافة Me.AllowAdditions = False
    2 points
  22. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 46 Then KeyCode = 0 MsgBox "يمكنك الحذف من النموذج فقط" End If End Sub
    2 points
  23. عليكم السلام عنوان الموضوع غير مناسب ، ولكن دعني أسألك قبل ان نشرع في تعديله بداية يجب ان تعلم انه لا يمكنك نسخ الحقول ذات البيانات المتعددة عن طريق الاستعلام ولكن يمكننا نسخ الجدول بكامله ولصق صورة منه بجانبه وهذا يعني انك في المستقبل وحين تريد اخذ نسخة جديدة ان تأخذ باعتبارك البيانات الموجودة في النسخة السابقة ، وايضا هل البيانات في الجدول الآصلي زادت فقط ام تم حذفها وسجلت البيانات من جديد ؟ يترتب على الكلام اعلاه .. احد اجرائين : 1- تكرار النسخ 2- تحديث النسخة السابقة انتظر ردك وتعليقك
    2 points
  24. أحسنت استاذ مجدى عمل رائع بارك الله فيك ورحم الله والديك
    2 points
  25. ويرزقكم من حيث لا تعلمون مع أن طلبي مختلف عن الكود تماما إلا أن هذا الكود ينفعني كثيرا واستحيت أطلبه من حضراتكم لأني توقعت بناء الكود صعباً ألف ألف شكر وتقدير لك أستاذي سليم على الكود الرائع وما زلت أنتظر تعديل الكود في المرفق في المشاركة الأساسية على حسب ما هو موضح بالصور تحياتي لشخصك الكريم
    1 point
  26. طريقة اخرى بدون الحاجة الى جدول رقم2 عن طريق منشئ التعبير ودالة Switch الضريبة2.accdb
    1 point
  27. هذا على حسب عدد اعمدة كومبوبوكس مثلاً عمود 1 و مصدره نفس حقل في جدول ، كما هو اما اذا عدد أعمدة أكثر من 1 هنا يكن اول عمود رقمي و هذا يعتبر قيمة كومبو بوكس وفي جدول يكن حقل رقمي مصدره ايضا رغم عرض قيمة نصية في كومبو بوكس وفي الحالة يتطلب تغير في الكود. باختصار انشيء مربع نص في نموذج ثم اكتب بداخلها =[ComboboxName] كمصدر تلك المربع اذا عرض نفس نص كما هو في كومبوبوكس ، عادي لا فرق بين كومبوبوكس او غير كومبوبوكس اما اذا عرض رقم، يجب تعديل الكود كي يتعامل مع كومبوبو كحقل رقمي.
    1 point
  28. بارك الله فيك اخي ابو ياسين تمام هذا هو المطلوب وبارك الله فيك وفي الجميع اخي د/ حسين كمال فكرة جدا جميلة شاكر لك ومقدر
    1 point
  29. لو كان الأمر متعلق بتجميع الأفكار - فقيامك ببحث بسيط خلال المنتدي ستجد مئات الأفكار المختلفة وكلها صالحة للتطبيق ان شاء الله. ولكن الأمر كما ذكر أستاذنا الكريم د/حسين كمال. استخدامك لفكرة ما متعلق بحاجة التصميم لديك والفكرة العامة التي يقوم عليها برنامجك.
    1 point
  30. بارك الله فيك استاذى الكريم بن علية-معادلة ممتازة لطلب كان صعب ولكنى ارى ان الأستاذ alaaaltwel لم يتم الضغط منه على الإعجاب على هذه المعادلة الممتازة على الرغم من ان الإجابة اعجبته وتم حل مشكلته فأعتقد ان هذا اقل ما يقدم لأستاذنا الكريم بن علية على حل هذه المشكلة-بارك الله فيه وزاده الله من فضله وجعله دائما وابدا زخرا لنا جميعا
    1 point
  31. غير كود الزر الى: DoCmd.RunCommand acCmdSaveRecord Dim Allsum As Double Dim Part1Sum As Double Dim Part2Sum As Double Dim Part3Sum As Double Dim NewSum As Double NewSum = 0 Dim Db As DAO.Database Dim rst As Recordset Dim rstA As Recordset Set Db = CurrentDb Set rstA = Db.OpenRecordset("SELECT strDepartment_ID,degree FROM tblemploi GROUP BY strDepartment_ID,degree") rstA.MoveFirst Do Until rstA.EOF Set rst = Db.OpenRecordset("SELECT * FROM tblemploi WHERE tblemploi.strDepartment_ID ='" & rstA!strDepartment_ID & "' AND tblemploi.degree=" & rstA!degree & " ORDER BY notedegree DESC") rst.MoveFirst Allsum = DSum("[notedegree]", "tblemploi", "[degree]=" & rstA![degree] & " And [strDepartment_ID]='" & rstA![strDepartment_ID] & "'") Part1Sum = Allsum / 100 * 40 Part2Sum = Allsum / 100 * 80 Do Until rst.EOF rst.Edit If NewSum <= Part1Sum Then rst![mod] = "الدنيا" Else If NewSum <= Part2Sum Then rst![mod] = "الوسطى" Else rst![mod] = "القصوى" End If End If rst.Update NewSum = NewSum + rst![notedegree] rst.MoveNext Loop NewSum = 0 rstA.MoveNext Loop Set rst = Nothing Set Db = Nothing Set rstA = Nothing 'DoCmd.SetOrderBy "notedegree DESC" Form.Requery
    1 point
  32. الاستاذ حسين .. السائل يريد نسخ البيانات من جدول الى جدول آخر في قاعدة البيانات نفسها
    1 point
  33. الاخ سليم دائما بافكار جديدة احسنت وبالتوفيق ان شاء الله
    1 point
  34. السلام عليكم جدول لم ارى افضل منه الى الان للعلامة عبدالله باقشير https://www.officena.net/ib/topic/33013-برنامج-الجدول-المدرسي-الاصدار-الثاني/
    1 point
  35. أحسنتما استاذ حسين كمال والأستاذ محمد عصام أعمال ومعلومات ممتازة بارك الله فيكما وجعله فى ميزان حسناتكما
    1 point
  36. السلام عليكم جمعة مباركة هديتي لكم هذا اليوم فورم بحث وتظهر نتائجه في تاكستات بوكس لكل خلية على شكل قائمة لست وبامكانك التعديل المباشر خلال التاكستات وبدوره تتغير البيانات تلقائيا بالنسبة للتاكست الي فيه لاين طويل يظهر له زر التمرير اثناء وجودك عليه لترى كامل محتوى التاكست ياخذ تلقائيا عرض الليبلات المجهزة داخل الفرمة وبامكانك حذف اوزيادة الليبلات لتشمل بيانات اخرى جعلنا هذا العمل هنا وهو طلب لاحدهم لتعم الفائدة مرفق ملف اكسل 2003 جمعة مباركة على الجميع Listbox Form5.rar
    1 point
  37. تفضل هذا اخى الكريم -1التقرير.xlsm
    1 point
  38. يجب عليك عمل كوبى لهذا الكود فى كل صفحة تريد تغيير الخلايا فيها
    1 point
  39. وهذه طريقة اخرى بوضع هذا الكود فى موديول جديد Public Function getDistance(latitude1, longitude1, latitude2, longitude2) earth_radius = 6371 Pi = 3.14159265 deg2rad = Pi / 180 dLat = deg2rad * (latitude2 - latitude1) dLon = deg2rad * (longitude2 - longitude1) a = Sin(dLat / 2) * Sin(dLat / 2) + Cos(deg2rad * latitude1) * Cos(deg2rad * latitude2) * Sin(dLon / 2) * Sin(dLon / 2) c = 2 * WorksheetFunction.Asin(Sqr(a)) d = earth_radius * c getDistance = d End Function وبعد ذلك ضع هذه المعادلة فى الخلية E3 واسحب للأسفل =GETDISTANCE(A3,B3,C3,D3)
    1 point
  40. وعليكم السلام اهلا بك اخ كريم فى المنتدى تفضل Monthly Time Sheet1.xlsx
    1 point
  41. تفضل هذا بالمعادلة -1استدعاء الاسماء من عمودين وجعلها في عمود واحد بدون فراغات.xlsx
    1 point
  42. هذا ما كنت اعرفه ، فجزاك الله خيرا على هذه المعلومة ولكن نرجع لأصل الموضوع اللي بسببه انا وضعت الكود ، فنرى مدى ما يمكن ان يصل اليه التعقيد عن طريق الداله Format ، وانا على يقين بأنك لم تصل للطريقة الصحيحة للكود من اول مرة او مرتين لهذا السبب ، اعتقد بأن الدالة DateFormat تسهل الكود كثيرا جعفر
    1 point
  43. اخي جعفر طبعا فكرة ادخال الدالة format في الطرفين : طرف المعيار وطرف القيمة المعلمة ! ليست جديدة عليكم ولكن قد يكون تطبيقها هو الذي جعلكم تبحثون عن فكرة وهي ابسط حقوق المبرمج ! الآن راح نشوف الاكسس لضمان تساوي التنسيق ! في ال sql Set rst = CurrentDb.OpenRecordset("Select DISTINCT cen, [Date] From tbl_T Where format([date],'dd/mm/yyyy')='" & Format(idate, "dd/mm/yyyy") & "'") هنا نلاحظ ان السر في عدم استخدام # واستبدالها ب ' لانه اصبحت المقارنة نصية ! والافضل وضع تنسيق التاريخ بهذا الشكل mmddyyyy في دالة ال dcocunt RC4 = DCount("*", "tbl_T", "format([Date],""ddmmyyyy"") =Format(idate, ""ddmmyyyy"")") بالتوفيق
    1 point
×
×
  • اضف...

Important Information