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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      21

    • Posts

      9937


  2. husamwahab

    husamwahab

    الخبراء


    • نقاط

      9

    • Posts

      1047


  3. أبوبسمله

    أبوبسمله

    الخبراء


    • نقاط

      7

    • Posts

      3463


  4. الرائد77

    الرائد77

    الخبراء


    • نقاط

      4

    • Posts

      238


Popular Content

Showing content with the highest reputation on 04/24/20 in all areas

  1. نعم ، انشئ استعلام خاص "بمعلومات المشرف" فقط ، ثم انشئ استعلام مجاميع لجدول "الزيارات" ، تجمع فيه الحقول m,q, ..... ثم اعمل استعلام ثالث ، تجمع فيه الاستعلامين اعلاه ، وهو يكون مصدر بيانات التقرير "معلومات المشرف" جعفر
    3 points
  2. السلام عليكم في نقاش مع الأستاذ @رمهان في أحد المواضيع اقترح عليا فتح موضوع حول إغلاق البرامج المتصلة بالشبكة من أجل النقاش و إثراء الموضوع. و لقد قمت بهذا الصدد بتصميم مثال يجعل مدير الشبكة يتحكم في إغلاق جميع البرامج (الأجهزة) المتصلة عبر الشبكة. شرح فكرة البرنامج: قمت بإضافة جدول لقاعدة البيانات اسمه tbl1 و وضعت به حقل اسمه code_edit نوعه رقمي تعتمد الفكرة على إعطاء هذا الحقل قيمتين 0 أو 1 في نسخة المستخدم هناك نموذج الواجهة frm يتحسس لقيمة الحقل code_edit إذا وجدها 1 يفتح نموذج آخر يبدأ بالعد التنازلي من 10 لإغلاق القاعدة و عند فتح القاعدة مرة ثانية يظهر نموذج العد التنازلي مرة أخرى لأن قيمة الحقل 1 يتم تغيير قيمة الحقل من خلال زري أمر في نسخة المدير (إغلاق الأجهزة المتصلة و منع الإتصال ، السماح بالإتصال) في المرفق ثلاثة ملفات نسخة المدير و نسخة مستخدم و db بعد تحميل المرفق قم بتحديث إرتباط نسخة المدير و نسخة مستخدم مع القاعدة db افتح الملفين نسخة المدير و نسخة مستخدم و اضغط على زر إغلاق الأجهزة المتصلة و منع الإتصال في نسخة المدير سوف تلاحظ ظهور نموذج العد التنازلي في نسخة المستخدم و إن كانت لك شبكة داخلية تستطيع نقل نسخة المستخدم لجهاز آخر و تحديث الإرتباط و تجربة البرنامج. eloued.rar
    2 points
  3. السلام عليكم . رمضان مبارك تقبل الله منا و منكم في الملف كود لإظهار القيم المكررة مع رقم الصف الموجود فيه التكرار في MSGBOX اظهار المكرر في رسالة.xlsm
    2 points
  4. تم عمل تغيير على الاستعلامات مصدر بيانات التقرير : . والنتيجة . جعفر 1216.visit.accdb.zip
    2 points
  5. معليش فين التكرار نزلت المرفق ولم الحظ التكرار ؟؟؟
    2 points
  6. شکرا لک في الحقيقة انا ما نظرت النتيجة هكذا تخياتي
    2 points
  7. بعد اذن اخي واستاذي @Shivan Rekany المجموع غير صحيح ويمكن استبدال الكود =Nz([male];0)+Nz([Famale];0) بالكود =Nz(Val([male]);0)+Nz(Val([Famale]);0)
    2 points
  8. السلام عليكم ايضا اذا اردنا التخيير بين فتح النموذج لعرض البيانات والتعديل عليها وبين فتحه لإدخال البيانات Private Sub Form_Open(Cancel As Integer) If MsgBox("Yes = لإدخال بيانات جديدة" & vbCrLf & _ "NO = لعرض البيانات والتعديل", _ vbQuestion + vbYesNo, _ "عرض وإدخال") = vbYes Then Me.DataEntry = True Else Me.DataEntry = False End If End Sub
    2 points
  9. تفضل اخي العزيز ارجو ان يكون طلبك لا يوجد بيانات1.rar
    2 points
  10. كنت أعاني من هذا المشكل وتمحله بهذا الشكل #If win64 Then declare PtrSafe Sub Sleep Lib "kernel32" (byval dwmilliseconds as Long ) #Else Declare Sub sleep Lib "kernel32" (ByVal dwmilliseconds As Long) #End If
    2 points
  11. بارك الله بك اخي رائد اليك كود اخر بنفس الموضوع لكنه يفوم بترتيب النتيجة ابجدياً (مع حق اختيار القيم الفريدة) Option Explicit Sub My_code() Dim list As Object Dim Rng As Range, rcell As Range Dim D As Worksheet, Lr_A% Dim Answer As Byte Set D = Sheets("Duplicates") Lr_A = D.Cells(Rows.Count, 1).End(3).Row Set list = CreateObject("System.Collections.ArrayList") Set Rng = D.Range("A2:A" & Lr_A) D.Range("D1").CurrentRegion.Clear Answer = MsgBox("Do you want all data Or Only the Unique values", 4) For Each rcell In Rng.Cells '++++++++++++++++++++++++++++++++++++++++++++++++++ If Answer <> 6 Then list.Add (rcell.Text) '* Else If Not list.Contains(rcell.Text) Then list.Add (rcell.Text) '** End If '+++++++++++++++++++++++++++++++++++++++ Next rcell list.Sort MsgBox Join(list.ToArray, vbCrLf) D.Range("D1").Resize(list.Count) = _ Application.Transpose(list.ToArray()) Set list = Nothing End Sub الملف مرفق Sortig_Data.xlsm
    2 points
  12. بارك الله فيكم أساتذتي الكرام. أنا تلميذ هذا الصرح العظيم و الرائع. كل عام و أنتم بخير و بارك الله فيكم . و جعل كل ما تقدمونه في ميزان حسناتكم. ووفقكم لما يحبه و يرضاه. بارك الله فيك أستاذنا علي . و جزاك الله خيرا
    2 points
  13. السلام عليكم . تقبل الله منا و منكم الصلاة و الصيام و القيام إن شاء الله لقد قمت بإضافة تحديث للبرنامج يمكن الزبون من تأجيل عملية إغلاق البرنامج لأجل حفظ العمل المتواجد بين يده. أضفت زر أمر في نموذج العد التنازلي عند الضغط عليه يغير العد من 60 و يغير حجم النموذج و ينقله للركن العلوي في الجهة اليسرى من الشاشة close pro.rar
    2 points
  14. الخطأ في الفرز لأنه كان يفرز حقل نص ، فاستبدلت الحرف A بالرقم 9999999999 (يعني رقم كبير) ، ثم استخدمت الدالة val لتحويل القيمة الى رقم : . ونفس الشيء في التقرير ، فطلعت النتيجة : . جعفر 1212.1.TEST_QUERY(1).accdb.zip
    1 point
  15. 1. طيب وشو النتيجة ، انت ارفقت ارقام ، ولازم تشرحها ، شو الصح وليش ؟ 2. هاي مو مقبولة (نعم مقبولة لهذا الموضوع) 🙂 3. ما منه فائدة بملاحظتك رقم 2 !! 4. حياك الله أبوآمنة 🙂 جعفر
    1 point
  16. كل عام وانت بخير أخي أحمد @أحمد الفلاحجى بارك الله فيك ....
    1 point
  17. اهى اخى واستاذى محمد @Barna جزاك الله خيرا ورمضان مبارك وكل عام وانتم بخير شوف المشرف عماد رقمه 36
    1 point
  18. اخي بلال 🙂 هناك الكثير من المواضيع في المنتدى بخصوص طلبك ، واخوي @ابوخليل شارك في الكثير منها ، فياريت تعمل بحث ، وان شاء الله تحصل على اللي تريده ، فما في داعي لإعادة العمل مرة اخرى 🙂 جعفر
    1 point
  19. التكرار اللى بيحدث ده من البيانات الاحصائيه للمشرف اللى بتتكرر مع جميع السجلات قم بازالتهم من الاستعلامات ثم انشىء لهم استعلام خاص بهم واجعل مصدر تقدير الخلاصه بالاستعلام الجديد وصفى بيانات بناء ع رقم المشرف عند الاستدعاء جرب ووافنا بالنتيجه
    1 point
  20. السلام عليكم عملنا نموذج لا يفتح اذا كان فارغ من البيانات طبحيث وضعنا وسيط مخفي يعد السجلات فاذا كان العدد صفر تخرج رسالة او نموذج يخبر انه لا يمكنك فتح النموذج كونه لا يوجد يه بيانات طيب الان لو بدنا نستفيد من هذا الامر في برامجنا طبعا لا يعقل ان اطلب من مستخدم البرنامج ان يضيف بيانات من خلال الجدول هل هناك طريقة ان يتم تخيير المستخدم اذا كنت ترغب باضافة بيانات وكان الجواب نعم يتم فتح النموذج رغما انه عدد السجلات صفر مرفق قاعدة البيانات واتمنى ان يكون الشرح واضح لا يوجد بيانات.accdb
    1 point
  21. قمت بتحميله وسوف اقوم بالنظر فيه وان شاء الله احد الاخوه واساتذتنا يساعد ايضا وان شاء الله ربنا ييسر الامور بالتوفيق اخى
    1 point
  22. اخواني الكرام Shivan Rekany kha9009lid بارك الله لكما كفيتم ووفيتم بالمطلوب وتم تعديل المثال ووضعه بعد التعديل بعد اذن اساتذتي الكبار لكي يستفيد منه كل باحث شكرا لكل من ساعدني في ميزان حسناتكم hatem (1).accdb
    1 point
  23. الف الف مبروك للاستادين عبد الفتاح و الرائد رمضان كريم
    1 point
  24. وعلشان يستفيد الجميع 🙂 1. بدأنا في الاستعلام ، فما ممكن ان نكتب اسم الحقل ، ثم نشير الى نفس الحقل في المعادلة (لأنه سيشكل حلقه LOOP في الحصول على النتيجة) : 2. في التقرير ، عينا ولنفس السبب ، فما ممكن ان نكتب اسم الحقل ، ثم نشير الى نفس الحقل في المعادلة (لأنه سيشكل حلقه LOOP في الحصول على النتيجة) : طبعا بإمكاننا ان نعطي الحقل اي اسم ، مثل ZZ ، ولكن حذاري ، فدائما استخدم اسم يعطي معنى للحقل/المتغير ، علشان بعد سنة لما تريد تعدل على الكود ، الاسماء تكون واضحة ولها معنى 🙂 جعفر
    1 point
  25. السلام عليكم استاذ عبد اللطيف سلوم استفسار : فكرة الكود هو انك تسلب اختيار المستخدم اذا لم يوجد سجلات ثم تريد ان تعيد له حرية الاختيار في نفس الكود اعتقد ان الفكرة غير منطقية
    1 point
  26. الشكر لله ثم لمعلمنا العزيز جعف جزاه الله خيرا بارك الله فيك ابوداود بالتوفيق ان شاء الله
    1 point
  27. ارجو تجربة هذا الرابط وهو افضل من الرابط الاول https://www.4shared.com/rar/rTxevKj0iq/MONEER1.html
    1 point
  28. السلام عليكم 🙂 لو تتبعت التاريخ لما يدخل في دالتي ، لوجدت انه غير الذي تم ارساله ، ولم استطع معرفة السبب !! لهذا السبب ، استعمل نفس دالة التجربة التي استعملتها انت ، ولكن ارسل التواريخ الى دالتي اولا ثم الى دالتك ، وسترى ان النتيجة صحيحة ، يعني : بدلا عن ارسال التواريخ الى دالتك اولا Debug.Print YMD_Diff(Date1, Date2) , YMDDif(Date1, Date2) ارسل التواريخ الى دالتي اولا Debug.Print YMDDif(Date1, Date2) , YMD_Diff(Date1, Date2) . جرب Sub Test2() Dim Date1 As Date Dim Date2 As Date Dim yy As Integer, mm As Byte, dd As Byte Debug.Print "YMDDif" ,"YMD_Diff" Date1 = DateSerial(1970, 2, 28) Date2 = DateSerial(1970, 3, 1) Debug.Print YMDDif(Date1, Date2) , YMD_Diff(Date1, Date2) Date1 = DateSerial(1970, 1, 31) Date2 = DateSerial(1970, 2, 27) Debug.Print YMDDif(Date1, Date2) , YMD_Diff(Date1, Date2) 'Debug.Print "--------------------" 'Debug.Print YMD_Diff(Date1, Date2, yy, mm, dd) 'Debug.Print yy, mm, dd 'Debug.Print "--------------------" 'Debug.Print YMD_Diff(Date1, Date2, yy, mm, dd, True) 'Debug.Print yy, mm, dd 'Debug.Print "--------------------" End Sub . لهذا السبب ، لما ارسلت التواريخ مباشرة الى الدالة ، كانت النتائج صحيحة : . ------------------------------------------------------------------------------------------------ ولكن هذا الكلام كله صار بسبب قولك : وفي الواقع تم اثبات ان الاكسس لا يعطي نتائج خطأ بين التاريخين ، وإنما الخطأ كان في دالتك اللي في اول مشاركة لك . وللعلم ، فتجاربك في مشاركتك الاخيرة ، ليست على دالتك الاصل (والتي اثارت كل هذا النقاش) ، وانما على دالتك التي قمت بتعديلها 🙂 ومثل ما قلت سابقا ، طريقة عمل دالتك جميلة 🙂 جعفر
    1 point
  29. بارك الله فيكم جميعا كلها حلول ممتازة كل عام وأنتم بخير
    1 point
  30. وعلى جميع الناس اللهم آمين يا رب العالمين
    1 point
  31. السلام عليكم تفضل اخي العزيز ارحو ان يكون طلبكmicro100.rar
    1 point
  32. الناتج صحيح اخي احمد بارك الله فيك ويذيدك من علمه شكراً
    1 point
  33. تفضل اخي العزيز ارجو ان يكون طلبك في النموذج الثاني فيه طلبك الثاني Root100.rar
    1 point
  34. جميل 🙂 انت استبدلت مكان الحقلين في الاستعلام ، بحيث وضعت الحقل "التسلسل داخل" الذي فيه القيم كاملة اولا ، ثم الحقل "التسلسل خارج" الذي القيم فيه غير كامله ثانيا : . ولكنك لم تنتبه الى ما قاله صاحب الموضوع : فجوابك يصلح للسيناريو الموجود حاليا ، ولكن لما يصير العكس ، فطريقتك لن تعمل 🙂 جعفر
    1 point
  35. من المعروف ان Null قيمته اقل من الارقام ، لذا يجب ان نحتال على الاكسس ، حتى نظهر الارقام (بالتسلسل التصاعدي) فوق الخانات الفارغة Null ، فاللي عملته للحقلين ، هو تغيير اسم الحقلين (بإضافة الرقم 2 عليهم) ، ثم عمل معادلة ، بحيث نطلب من اكسس ان يستبدل الخانة الفارغة بالحرف A : . والنتيجة تصبح مثل ما نريد : . والان في التقرير ، نطلب من الحقل ان يغير القيمة A الى فراغ (حتى نخفي A ) (رجاء ملاحظة تغيير اسماء الحقول مرة اخرى) ، مع استعمال الحقلين للفرز (انظر اسفل التقرير) : . والنتيجة : . جعفر 1212.TEST_QUERY.accdb.zip
    1 point
  36. 1 point
  37. حياك الله 🙂 معلش ، خذني على قدر عقلي ، فأنا فهمي ضعيف 🙂 واكتب لي مثال في الاكسل لوسمحت وارفقه هنا 🙂 شو الموجود حاليا ، وشو اللي لازم يصير 🙂 جعفر
    1 point
  38. اخي يجب ان تطابق ما بين اليوزرفورم والشيت بخصوص العناصر التي يتم ترحيلها وجدت صعوبة في المطابقة الكلمات ليس نفسها كما يوجد خلايا مدمجة بالنسبة لي لااعلم طريقة الترحيل للخلايا المدمجة عليك بالغاء الدمج ان اردت المساعدة هذا ما استطعت القيام به user.xlsm
    1 point
  39. السلام عليكم 🙂 . . ثم في التقرير : . والنتيجة : . اما الطريقة الثانية : انا اعتذر ، كنت اعتقد بأن Combobox موجود عندك في النموذج ، ولكن الظاهر انك عملت Lookup للحقل في الجدول (وهذه الطريقة لا يُنصح بها لمشاكلها ، ومنها ما تواجهه انت الآن) !! فالطريقة اننا نحول الحقل في التقرير الى Combobox ، ثم نأخذ طريقة بيانات الحقل من الجدول ، ونضعه في حقل التقرير : . والنتيجة كذلك: . اما هذه رجاء تشرحها بمثال وبأرقام ، لأني ما سمعت بهكذا عمل سابقا 🙂 جعفر 1212.TEST_QUERY.accdb.zip
    1 point
  40. طيب بالنسبة لأولا : اعمل لكل تاريخ Combobox في التقرير ، بحيث يكون بنفس طريقة الـ Combobox اللي في النموذج (وممكن تعمل نسخة منه من النموذج وتلصقه في التقرير) 🙂 جعفر
    1 point
  41. وعليكم السلام-يمكنك جعل المعادلة بهذا الشكل =IF($E4<=30,$E4*2.786,IF(AND($E4>30,$E4<=60),(30*2.786)+($E4-30)*3.536,IF($E4>60,(30*2.786)+(30*3.536)+($E4-60)*4.036))) 1حساب فاتورة الغاز.xlsx
    1 point
  42. السادة الاعضاء بتاريخ 26 / 12 /2016 طلبت حل لهذه المشكلة وبفضل الله توصلت اليوم الي هذا الحل وذلك باستخدام الدالة CLEAN ويمكن ضرب الناتج من الدالة السابقة في العدد 1 لكي يمكن استخدام النواتج في العمليات الحسابية بهذه الصورة CLEAN( )*1 واشكر الاستاذ / أبو عبد النور لتفضلة بالمشاركة والرد التحوويل من سطرين لسطر واحد.xls
    1 point
  43. اسف هذا هو التعديل الصحيح توزيع الاسم.accdb
    1 point
  44. يمكن هذا الكود يحل المشكلة الكود Option Explicit Sub edit_formula() Application.EnableEvents = False Dim my_rg As Range Dim cel As Range Dim t Dim r% t = Range("a1").Formula Dim lr%: lr = Cells(Rows.Count, 1).End(3).Row On Error Resume Next Set my_rg = Range("a1:a" & lr).SpecialCells(xlCellTypeBlanks) If Err.Number <> 0 Then GoTo 1 On Error GoTo 0 For Each cel In my_rg r = cel.Offset(-1, 0).Row t = Replace(t, "A1", "A" & r + 1) cel.Formula = t t = Range("a1").Formula Next 1: Application.EnableEvents = True End Sub '===================================== Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Row > 1 Then edit_formula End If End Sub الملف مرفق Auto num.xlsm
    1 point
  45. زيادة في اثراء الموضوع هذا الكود البسيط ملاحظة كود على السريع حيث ان البيانات يجب ان تبدأ من العامود A (يمكن التعديل) Sub mylastecel() Dim lr, lc As Integer lr = UsedRange.Rows.Count lc = UsedRange.Columns.Count For i = 1 To lc If Cells(lr, i) <> "" Then Cells(lr, i).Select Selection.Offset(0, 1).Select If Selection = "" Then Selection.Offset(0, -1).Select End If Next End Sub
    1 point
  46. السلام عليكم بعد اذن اخي الحبيب konafa4000 هذا شرح على عجله Sub TRHILL() ' عند وجود خطاء اخرج منه On Error Resume Next ' تحديث الشاشة Application.ScreenUpdating = False ' هنا حلقة تكراريةعدد الصفوف إبتداء من الصف الخامس الى الصف الـ 14 فقط 1 For R = 5 To 14 ' متغير لحفظ قيمة قيمة الحلقة لعمود A 2 TS = Cells(R, 1).Value ' حلقة تكرارية من أول ورقة إلى اخر ورقة في المصنف 3 For S = 1 To Sheets.Count ' شرط اذا إسم الورقة تساوي المتغير 4 If Sheets(S).Name = TS Then ' متغير لحفظ إسم ورقة5 5 sh5n = Sheets("Sheet5").Name ' متغير لحفظ اخر سطر فيه بيانات في الورقة التي تساوي الشرط في السطر الرابع 6 ER = Sheets(TS).Range("D1211").End(xlUp).Row + 1 ' متغير لحفظ اخر خليه فيها بيانات في الورقة الخامسه + سطر واحد 7 E5 = Sheets("Sheet5").Range("B1211").End(xlUp).Row + 1 ' متغير لحفظ الأعمدة التي سيتم نسخها 8 RN = "B" & R & ":G" & R ' متغير لحفظ عملية النسخ التالي والتي هيا لعمودين الدائن والمدين 9 RN2 = "B" & R & ":c" & R ' مدين او دائن ' متغير لعملية النسخ الثالثه 10 RN3 = "D" & R & ":G" & R ' نسخ بيانات متغير RN 'Sheets(TS) 11 Range(RN).Copy ' لصقها في الورقة التي حققت الشرط 'Cells(ER, 4). 'ER ' الصف الاخير + سطر الذي في سطر رقم 6 ' 4 ' رقم العمود الذي يعتبر الـ D 12 Sheets(TS).Cells(ER, 4).PasteSpecial Paste:=xlPasteValues ' نسخر بيانات متغير RN2 13 Range(RN2).Copy ' لصقها في الورقة التي في متغير سطر 5 'Sheets(sh5n) = التي هيا sheet5 'Cells(E5, 2) 'E5 ' لصق في صف متغير سطر 7 '2 ' عمود رقم2 الذي هو B 14 Sheets(sh5n).Cells(E5, 2).PasteSpecial Paste:=xlPasteValues ' sheet5 ' اخر سطر فيه بيانات السطر الذي يليه' ' عمود 4 D الصق فيه متغير TS سطر رقم 2 15 Sheets(sh5n).Cells(E5, 4).Value = TS ' انسخ متغير RN3 16 Range(RN3).Copy ' Sheets(sh5n) = sheet5 'Cells(E5, 5) = سطر متغير E5 ' 5 = عمود E 17 Sheets(sh5n).Cells(E5, 5).PasteSpecial Paste:=xlPasteValues ' إمسح بيانات متغير RN 18 Range(RN).ClearContents ' إنتها الشرط 19 End If ' خروج من حلقة S 20 Next S ' خروج من حلقة R 21 Next R ' الخروج من وضع النسخ الذي 22 Application.CutCopyMode = False ' الخروج من وضع تحديث الشاشة 23 Application.ScreenUpdating = True ' رسالة مسج بنجاح العملية 24 MsgBox "!تـم الترحيل بنجاح", vbInformation + vbMsgBoxRight, "تـــــم الـترحـيل" ' مسح بيانات المدى المعني 25 [a5:g14].ClearContents ' الذهاب الى الخلية المعنيه 26 Range("a5").Select ' في حال وجود خطاء On Error GoTo 0 End Sub
    1 point
×
×
  • اضف...

Important Information