نجوم المشاركات
Popular Content
Showing content with the highest reputation on 24 أبر, 2020 in all areas
-
نعم ، انشئ استعلام خاص "بمعلومات المشرف" فقط ، ثم انشئ استعلام مجاميع لجدول "الزيارات" ، تجمع فيه الحقول m,q, ..... ثم اعمل استعلام ثالث ، تجمع فيه الاستعلامين اعلاه ، وهو يكون مصدر بيانات التقرير "معلومات المشرف" جعفر3 points
-
السلام عليكم في نقاش مع الأستاذ @رمهان في أحد المواضيع اقترح عليا فتح موضوع حول إغلاق البرامج المتصلة بالشبكة من أجل النقاش و إثراء الموضوع. و لقد قمت بهذا الصدد بتصميم مثال يجعل مدير الشبكة يتحكم في إغلاق جميع البرامج (الأجهزة) المتصلة عبر الشبكة. شرح فكرة البرنامج: قمت بإضافة جدول لقاعدة البيانات اسمه tbl1 و وضعت به حقل اسمه code_edit نوعه رقمي تعتمد الفكرة على إعطاء هذا الحقل قيمتين 0 أو 1 في نسخة المستخدم هناك نموذج الواجهة frm يتحسس لقيمة الحقل code_edit إذا وجدها 1 يفتح نموذج آخر يبدأ بالعد التنازلي من 10 لإغلاق القاعدة و عند فتح القاعدة مرة ثانية يظهر نموذج العد التنازلي مرة أخرى لأن قيمة الحقل 1 يتم تغيير قيمة الحقل من خلال زري أمر في نسخة المدير (إغلاق الأجهزة المتصلة و منع الإتصال ، السماح بالإتصال) في المرفق ثلاثة ملفات نسخة المدير و نسخة مستخدم و db بعد تحميل المرفق قم بتحديث إرتباط نسخة المدير و نسخة مستخدم مع القاعدة db افتح الملفين نسخة المدير و نسخة مستخدم و اضغط على زر إغلاق الأجهزة المتصلة و منع الإتصال في نسخة المدير سوف تلاحظ ظهور نموذج العد التنازلي في نسخة المستخدم و إن كانت لك شبكة داخلية تستطيع نقل نسخة المستخدم لجهاز آخر و تحديث الإرتباط و تجربة البرنامج. eloued.rar2 points
-
2 points
-
2 points
-
2 points
-
شکرا لک في الحقيقة انا ما نظرت النتيجة هكذا تخياتي2 points
-
2 points
-
السلام عليكم ايضا اذا اردنا التخيير بين فتح النموذج لعرض البيانات والتعديل عليها وبين فتحه لإدخال البيانات 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 Sub2 points
-
2 points
-
2 points
-
كنت أعاني من هذا المشكل وتمحله بهذا الشكل #If win64 Then declare PtrSafe Sub Sleep Lib "kernel32" (byval dwmilliseconds as Long ) #Else Declare Sub sleep Lib "kernel32" (ByVal dwmilliseconds As Long) #End If2 points
-
الف مبروك و الي الأمام دائما باذن الله2 points
-
بارك الله بك اخي رائد اليك كود اخر بنفس الموضوع لكنه يفوم بترتيب النتيجة ابجدياً (مع حق اختيار القيم الفريدة) 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.xlsm2 points
-
بارك الله فيكم أساتذتي الكرام. أنا تلميذ هذا الصرح العظيم و الرائع. كل عام و أنتم بخير و بارك الله فيكم . و جعل كل ما تقدمونه في ميزان حسناتكم. ووفقكم لما يحبه و يرضاه. بارك الله فيك أستاذنا علي . و جزاك الله خيرا2 points
-
السلام عليكم . تقبل الله منا و منكم الصلاة و الصيام و القيام إن شاء الله لقد قمت بإضافة تحديث للبرنامج يمكن الزبون من تأجيل عملية إغلاق البرنامج لأجل حفظ العمل المتواجد بين يده. أضفت زر أمر في نموذج العد التنازلي عند الضغط عليه يغير العد من 60 و يغير حجم النموذج و ينقله للركن العلوي في الجهة اليسرى من الشاشة close pro.rar2 points
-
1 point
-
1 point
-
( jjafferr )السلام عليكم استاذ جزاك الله خير الجزاء والشكر موصول لكل الاخوة الذين حاولو مساعدتي مع احترامي وتقديري للجميع1 point
-
1. طيب وشو النتيجة ، انت ارفقت ارقام ، ولازم تشرحها ، شو الصح وليش ؟ 2. هاي مو مقبولة (نعم مقبولة لهذا الموضوع) 🙂 3. ما منه فائدة بملاحظتك رقم 2 !! 4. حياك الله أبوآمنة 🙂 جعفر1 point
-
كل عام وانت بخير أخي أحمد @أحمد الفلاحجى بارك الله فيك ....1 point
-
جزاك الله خيرا اخى محمد @Barna وزياده الخير خيرين وكل عام وانتم بخير ارفق موضوع لام عهود جزاها الله خيرا http://arabteam2000-forum.com/index.php?/topic/277583-نسخ-جداول-في-القاعدة-بعلاقاتها-الى-الاستاذة-أم-عهود/#comment-1356700 بالتوفيق اخوانى1 point
-
أخي لو ارفقت مثال للمطلوب كان اسرع في حصولك للاجابة ... على العموم انت صدرت الجداول وتحتاج تصدير للعلاقات جرب الكود التالي لتصدير العلاقات أو ارفق مثال للتجربة .... Function ExportRelations(DbName As String) As Integer Dim ThisDb As DAO.Database, ThatDB As DAO.Database Dim ThisRel As DAO.Relation, ThatRel As DAO.Relation Dim ThisField As DAO.Field, ThatField As DAO.Field Dim Cr As String, i As Integer, cnt As Integer, RCount As Integer Dim j As Integer Dim ErrBadField As Integer Cr$ = Chr$(13) RCount = 0 Set ThisDb = DBEngine.Workspaces(0).OpenDatabase("C:\mydat.mdb") Set ThatDB = DBEngine.Workspaces(0).OpenDatabase(DbName$) For i = 0 To ThatDB.Relations.Count - 1 Set ThatRel = ThatDB.Relations(i) Set ThisRel = ThisDb.CreateRelation(ThatRel.Name, _ ThatRel.Table, ThatRel.ForeignTable, ThatRel.Attributes) ErrBadField = False For j = 0 To ThatRel.Fields.Count - 1 Set ThatField = ThatRel.Fields(j) Set ThisField = ThisRel.CreateField(ThatField.Name) ThisField.ForeignName = ThatField.ForeignName On Error Resume Next ThisRel.Fields.Append ThisField If Err <> False Then ErrBadField = True On Error GoTo 0 Next j If ErrBadField = True Then Else On Error Resume Next ThisDb.Relations.Append ThisRel If Err <> False Then Else RCount = RCount + 1 End If On Error GoTo 0 End If Next i ThisDb.Close ThatDB.Close ExportRelations = RCount End Function وتستدعيها بالكود التالي ... Call ExportRelations("C:\ExpAndImp.mdb") C:\ExpAndImp.mdb هي مسار القاعدة المصدر منها العلاقات .... جرب وأعلمنا بالنتيجة !!!!!!1 point
-
اهى اخى واستاذى محمد @Barna جزاك الله خيرا ورمضان مبارك وكل عام وانتم بخير شوف المشرف عماد رقمه 361 point
-
اخي بلال 🙂 هناك الكثير من المواضيع في المنتدى بخصوص طلبك ، واخوي @ابوخليل شارك في الكثير منها ، فياريت تعمل بحث ، وان شاء الله تحصل على اللي تريده ، فما في داعي لإعادة العمل مرة اخرى 🙂 جعفر1 point
-
التكرار اللى بيحدث ده من البيانات الاحصائيه للمشرف اللى بتتكرر مع جميع السجلات قم بازالتهم من الاستعلامات ثم انشىء لهم استعلام خاص بهم واجعل مصدر تقدير الخلاصه بالاستعلام الجديد وصفى بيانات بناء ع رقم المشرف عند الاستدعاء جرب ووافنا بالنتيجه1 point
-
1 point
-
1 point
-
الف الف مبروك للاستادين عبد الفتاح و الرائد رمضان كريم1 point
-
وعلشان يستفيد الجميع 🙂 1. بدأنا في الاستعلام ، فما ممكن ان نكتب اسم الحقل ، ثم نشير الى نفس الحقل في المعادلة (لأنه سيشكل حلقه LOOP في الحصول على النتيجة) : 2. في التقرير ، عينا ولنفس السبب ، فما ممكن ان نكتب اسم الحقل ، ثم نشير الى نفس الحقل في المعادلة (لأنه سيشكل حلقه LOOP في الحصول على النتيجة) : طبعا بإمكاننا ان نعطي الحقل اي اسم ، مثل ZZ ، ولكن حذاري ، فدائما استخدم اسم يعطي معنى للحقل/المتغير ، علشان بعد سنة لما تريد تعدل على الكود ، الاسماء تكون واضحة ولها معنى 🙂 جعفر1 point
-
الشكر لله ثم لمعلمنا العزيز جعف جزاه الله خيرا بارك الله فيك ابوداود بالتوفيق ان شاء الله1 point
-
السلام عليكم 🙂 لو تتبعت التاريخ لما يدخل في دالتي ، لوجدت انه غير الذي تم ارساله ، ولم استطع معرفة السبب !! لهذا السبب ، استعمل نفس دالة التجربة التي استعملتها انت ، ولكن ارسل التواريخ الى دالتي اولا ثم الى دالتك ، وسترى ان النتيجة صحيحة ، يعني : بدلا عن ارسال التواريخ الى دالتك اولا 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
-
1 point
-
1 point
-
الناتج صحيح اخي احمد بارك الله فيك ويذيدك من علمه شكراً1 point
-
كلمات الشكر قليلة جداً مع انسان رائع مثلك1 point
-
صحيح اخى ومعلمى العزيز ولقد اشرت الى انها اقل ذكاء ومحاوله التعلم استاذى العزيز فاننى ابحث عن كل معلومه واحاول جاهدا التعلم بالمعلومات المتوفره بالعربى جزاك الله خيرا معلمنا العزيز عالتوجيه والافاده اعانكم الله علينا نحن طلاب العلم وتقبل الله منكم صالح الاعمال وجعلها فى موازين حسناتكم ابا حسين1 point
-
1 point
-
نسال الله ان ينفعنا بعلمكم و ان نفيد الاخرين1 point
-
1 point
-
تنقيح للمشاركة الأخرة ، كوني لم أستطع التعديل عليها: Public Function YMD_Diff(inDate1 As Date, inDate2 As Date, _ Optional outY, Optional outM, Optional outD, _ Optional AddOneDay As Boolean = False) As String Dim iYear As Integer Dim iMonth As Integer Dim iDay As Integer Dim dInterim1 As Date 'تصرف من Hawiii ------------------------------------- Dim bkDate1 As Date, bkDate2 As Date bkDate1 = inDate1: bkDate2 = inDate2 If inDate2 < inDate1 Then inDate1 = inDate2: inDate2 = bkDate1 End If Do While Month(inDate1) = 2 Or Month(inDate2) = 2 Or Month(inDate1 - 1) = 2 inDate1 = DateAdd("m", 1, inDate1) inDate2 = DateAdd("m", 1, inDate2) Loop 'AddOneDay عند الرغبة في إضافة يوم في العمر أو المدة inDate1 = inDate1 + AddOneDay 'inDate1 - Abs(AddOneDay) 'تصرف من Hawiii ------------------------------------- iMonth = DateDiff("m", inDate1, inDate2) If Day(inDate1) > Day(inDate2) Then iMonth = iMonth - 1 End If dInterim1 = DateAdd("m", iMonth, inDate1) outD = DateDiff("d", dInterim1, inDate2) outM = iMonth Mod 12 outY = iMonth \ 12 'تصرف من Hawiii ------------------------------------- If outY + outM = 0 Then outD = Abs(bkDate2 - bkDate1) + Abs(AddOneDay) 'تصرف من Hawiii ------------------------------------- YMD_Diff = outY & "y/" & outM & "m/" & outD & "d" End Function1 point
-
السلام عليكم ورحمة الله الاستاذ / عبد الفتاح فى بى اكسيل الاستاذ / الرائد 77 تهنئة مزدوجة بمناسبة حلول شهر رمضان المعظم اعاده علينا وعليكم وعلى الامة الاسلامية بالخير والبركات و المناسبة الاخرى لترقية الزميلين الفاضلين مع اطيب التبريكات و التهانى عن جدارة و استحقاق1 point
-
اخي يجب ان تطابق ما بين اليوزرفورم والشيت بخصوص العناصر التي يتم ترحيلها وجدت صعوبة في المطابقة الكلمات ليس نفسها كما يوجد خلايا مدمجة بالنسبة لي لااعلم طريقة الترحيل للخلايا المدمجة عليك بالغاء الدمج ان اردت المساعدة هذا ما استطعت القيام به user.xlsm1 point
-
وعليكم السلام-يمكنك جعل المعادلة بهذا الشكل =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حساب فاتورة الغاز.xlsx1 point
-
السادة الاعضاء بتاريخ 26 / 12 /2016 طلبت حل لهذه المشكلة وبفضل الله توصلت اليوم الي هذا الحل وذلك باستخدام الدالة CLEAN ويمكن ضرب الناتج من الدالة السابقة في العدد 1 لكي يمكن استخدام النواتج في العمليات الحسابية بهذه الصورة CLEAN( )*1 واشكر الاستاذ / أبو عبد النور لتفضلة بالمشاركة والرد التحوويل من سطرين لسطر واحد.xls1 point
-
1 point
-
يمكن هذا الكود يحل المشكلة الكود 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.xlsm1 point
-
زيادة في اثراء الموضوع هذا الكود البسيط ملاحظة كود على السريع حيث ان البيانات يجب ان تبدأ من العامود 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 Sub1 point
-
السلام عليكم بعد اذن اخي الحبيب 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 Sub1 point
-
جرب هذا الملف المرفق سجل البيانات فى شيت 6 ثم اضغط على button 2 ستجد البينات تم ترحيلها الى شيت العميل وايضا الى شيت 5 تحياتى Konafa4000 جديد .rar1 point