بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 10/13/19 in مشاركات
-
السلام عليكم اقدم لكم نسخه من برنامج كاشير للمطاعم حسب ارقام الطاولات رقم المظلل بالاحمر يعني ان الطاولة رقم ... محجوز يمكنك رجوع اليها وعمل اوردر من تعديل البرنامج سهل للغايه يعمل فقط على الماوس * - الجدول : _ الفواتير المسدده يمكنك رجوع وتعديل عليها عن طريق الجدول وضغط دبل كليك على المراد تعديله * - التقرير :_ *- حذف الفواتير :_ يمكنك حذف الفواتير عن طريق تحديد الرقم وضغط على حذف يمكن استعلام على الفواتير المحذوفه من التقرير - فواتير محذوفه *- نقل الطاولة :_ يمكن نقل الطاولة حسب طلبك بتحديد على الطاولة المراد نقلها واختيار امر نقل الطاولة يظهر مربع تختار رقم الطاولة الجديد بحيث لا يكون مظلل بالاحمر . *- تعديل على الفاتورة : _ في حال رغبت الزبون طلب اوردر تختار رقم الطاولة المظلل بالاحمر وتغضط تعديل الفاتورة وتضيف الاوردر الثاني ويمكنك تكرار العملية في حال تكرار الصنف تضغط دبل كليك على الصنف +1 في حال الغاء -1 يوجد زر بجانب الشاشة الاصناف -1 في حال الغاء الصنف يوجد زر بجانب الشاشة * * - الاصناف : _ يمكنك اضافة اصناف رئيسية واصناف فرعيه الاصناف لا تحتاج الى كود لانها تختار كود اتوماتيكي طباعه الفواتير بشكل جديد دينماكيه صلاحية كامله للبرنامج الدخول : الدعم الفني كلمة سر : 123 يمكنك اضافت صلاحيات ومستخدمين كما قلت لكم نسخه قيد تطوير ... الحقوق النشر محفوظه ... اتنمنى ان ينال اعجابكم لتحميل : _ كاشير-توزيع.xlsb3 points
-
3 points
-
أحسنت استاذ سليم كود ممتاز جعله الله فى ميزان حسناتك3 points
-
حبيبي أبا بسملة بل الشكر لك علي حسن متابعتك من فضلك قم بازالة علامة التعجب من الكود وضع بدلا منها النقطة ليصبح الكود هكذا If Me.PrintBillCount = 0 Then Me.Picture = CurrentProject.Path & "\Original.jpg" Else Me.Picture = CurrentProject.Path & "\Copy.jpg" End If وعند وضع النقطة تأكد من أن كلمة Picture موجودة بالفعل في خيارات الاكمال التلقائي في محرر الأكواد في 2003 ثم قم بعمل compile مرة أخري وتأكد من وجود الصورتين فى نفس مسار قاعدة البيانات ووافنا بالنتائج2 points
-
2 points
-
يمكنك استخدام هذا الكود فسوف يتم عمل ملف منفصل برقم الفاتورة عند الضغط على ترحيل فبذلك يمكنك طباعة اى فاتورة تريدها Sub Splitbook() Dim xPath As String ActiveSheet.Name = ActiveSheet.Range("AP2") & " NO" & Range("E6") xPath = Application.ActiveWorkbook.Path Application.ScreenUpdating = False Application.DisplayAlerts = False For Each xWs In ThisWorkbook.Sheets xWs.Copy Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & xWs.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True Range("E6") = ([E6]) + 1 End Sub Invoice.xlsm2 points
-
2 points
-
2 points
-
وعليكم السلام-دائما وابداً باتأكيد لابد من رفع الملف لإستجابة الأعضاء والأساتذة فى مساعدتك تفضل يمكنك استخدام هذه المعادلة =IF(A13<20,25,IF(AND(A13>=20,A13<=30),25+(A13-20)*1.5,IF(AND(A13>30,A13<=40),25+(9*1.5)+(A13-31)*2,IF(A13>40,25+(9*1.5)+(9*2)+(A13-41)*2.5,"")))) مثال توضيحي1.xlsx2 points
-
2 points
-
اخ سكت بالكلام الحلو .... والله المنتدى هذا عجيب ... علم وادب . ومودة ... لدرجة اني احيانا اقرأ واضحك كالمجنوب ... ادام الله الود بيننا .2 points
-
2 points
-
استاذ ابو صلاح معادلة الأستاذ سليم تعمل بكل كفاءة ,فهى لا تحتاج اى تعديل -فاذا اعطت لك خطأ فمنك انت:-وذلك لأحد سببين, فهذه معادلة مصفوفة لابد من الضغط على Ctrl+Shift+Enter وليس Enter فقط كما اخبرك استاذنا سليم و الأخر اذا مازالت لا تعمل معك فعليك باستبدال الفاصلة العادية بفاصلة منقوطة ; فربما نظام الكمبيوتر لديك مختلف2 points
-
وعليكم السلام -تفضل ~$زيادة او نقصان سنة في عدة صفوف عن طريق زر.xlsm2 points
-
الكثير منا يلجأ لاستخدام التبويب في النماذج ولكن مشكلة هذه التبويبات كلها تكون بنفس لون الخلفية فإليكم الفكرة التالية منقول من احد المواقع الاجنبية ( تم تعريب بواسطتي ) انظر المرفقات Colored Tabs.rar1 point
-
هل هذا المطلوب مقارنة واحتساب الفرق عند تساوي رقم الايصال مثال.accdb1 point
-
جرب هذا الكود Option Explicit Sub get_data() Application.ScreenUpdating = False Dim S As Worksheet Dim Cus As Worksheet Dim m%: m = 3 Dim R% Set S = Sheets("Summary") With S .Cells.Clear For Each Cus In Sheets If Cus.Name Like "Customer" & "#" Then R = Cus.Range("B9").CurrentRegion.Rows.Count Cus.Range("B9").CurrentRegion.Copy .Cells(m, 1) With .Cells(m - 1, 1) .Value = Cus.Name .Interior.ColorIndex = 6 End With m = m + R + 2 End If Next Cus .Range("C:C,D:D,H:H").EntireColumn.Delete End With Application.ScreenUpdating = True End Sub الملف مرفق My project.xlsm1 point
-
مشكور وما قصرت وبيض الله وجهك استاذي القدير1 point
-
1 point
-
جزاك الله خيرا استاذ سليم وجعله الله في ميزان حسناتك1 point
-
لا حاجة لهذا الكم الكبير من Loop يكفي هذا الماكرو Option Explicit Sub consolidate_new() Dim First As Worksheet, Second As Worksheet Dim F_Rg As Range, S_RG As Range Set First = Sheets("ورقة1") Set F_Rg = First.Range("A1").CurrentRegion Set Second = Sheets("ورقة2") Set S_RG = Second.Range("A1").CurrentRegion With Sheets("ورقة3") .Range("A1").CurrentRegion.Offset(1).ClearContents F_Rg.Offset(1).Resize(F_Rg.Rows.Count - 1).Copy .Cells(2, 1) S_RG.Offset(1).Resize(S_RG.Rows.Count - 1).Copy .Cells(F_Rg.Rows.Count + 1, 1) End With End Sub1 point
-
1 point
-
1 point
-
في الطريقة السابقة سوف تجد ان حقل id سوف يكون مكرر لبعض السجلات نفس الترقيم للسجلات السابقة فاذا رغبت في ترتيب تلقائي غير مكرر نستبدل استعلام 2 الخاص بانشاء جدول الى استعلام الحاق ونقوم بانشاء جدول tbl4 فارغ ثم ننفذ استعلام الحاق INSERT INTO tbl4 ( n_name ) SELECT استعلام1.n_name FROM استعلام1; انظر المرفقات توحيد.accdb1 point
-
ممكن هذا الكود تم تغيير اسماء الصفحات للغة الاجنبية لسهولة التعامل مع الكود من حيث النسخ واللصق دون ظهور احرف غير مفهومة Option Explicit Sub Extract_by_16() Rem Created by Salim Hasbaya On 12/10/2019 Application.ScreenUpdating = False Dim my_rg, i%, X, last_range As Range Dim S As Worksheet Dim T2 As Worksheet Set S = Sheets("sheet1") Set T2 = Sheets("Templete_2") Dim lra%: lra = S.Cells(Rows.Count, 1).End(3).Row Dim m%: m = 13 For i = m To 2500 Step 37 T2.Cells(i, 4).Resize(16, 2).ClearContents Next m = 13 For i = 2 To lra Step 16 If lra - S.Cells(i, 1).Row < i Then X = lra - i Set last_range = _ S.Cells(i, 1).Resize(X + 1, 2) Exit For End If Set my_rg = S.Cells(i, 1).Resize(16, 2) T2.Cells(m, 4).Resize(16, 2).Value = _ my_rg.Value m = m + 37 Next i If Not last_range Is Nothing Then T2.Cells(m, 4).Resize(X + 1, 2).Value = _ last_range.Value End If Application.ScreenUpdating = True End Sub الملف مرفق VIVA_Mia.xlsm1 point
-
كما تعلم أن الكمال المطلق لا يكون الا لله سبحانه ووجود ما هو حماية مطلقة لا اعتقد انه شئ موجود علي أرض الواقع - لم احب أن اقول شئ مستحيل حتي لا تصاب بالاحباط - ولكن قوة وسلامة اجراءاتك المتخذة ستجعل الأمر صعب أول قل ان شئت شبه مستحيل علي المبتدئين - مثلي - والمتوسطين وقبيل مرحلة الاحتراف. واكرر ما قال أستاذنا عصام ربيع في موضوع مشابه أيهما أسهل تعديل تصميم لغيرك أم انشاء تصميم جديد؟! بطبع اختيار انشاء تصميم جديد بالنسبة للمحترفين هو الخيار الأمثل من اضاعة الوقت في فحص وتحليل وفهم تصميم آخر ثم القيام بتعديله بعد ذلك. وازيدك اطمأنان: لا تقلق بشأن العبث ببرنامجك فمهما بلغ تصميمك لن يساوي شئ أمام برامج يتم بيعها بمئات أو آلاف الدولارات. (ولا تغضب مني بشأن هذا فأنا لا أقلل من قيمة عملك) ولكن أنبهك أن لمن عنده النية لتكريك برنامج لديه ما يصرفه عنك فهو انما يبحث عن الصيد الثمين! تمنياتي بالتوفيق1 point
-
ابا جودى والله لقد أخجلتنى كرما بارك الله لك فيما تملك ورزقك من حيث لا تحتسب1 point
-
السلان عليكم اعتذر يا دكتور على التأخير كنت بأصلى اتفضل يا دكتور استخدم احد الكودين الاتيين على زر امر الترقيم Me.k = Nz(DMax("k", "t1", "[xdate] = #" & Format(Me.txtXdate, "yyyy/mm/dd") & "#" & "And [manager] = '" & txtManager & "'"), 0) + 1 'Me.k = Nz(DMax("k", "t1", "xdate=[Forms]![F1]![txtXdate]and manager=[Forms]![F1]![txtManager]"), 0) + 1 ولعدم تغيير القيمة ان وجدت بالحقل Select Case Nz(Me.k.Value, "") Case "" Me.k = Nz(DMax("k", "t1", "[xdate] = #" & Format(Me.txtXdate, "yyyy/mm/dd") & "#" & "And [manager] = '" & txtManager & "'"), 0) + 1 'Me.k = Nz(DMax("k", "t1", "xdate=[Forms]![F1]![txtXdate]and manager=[Forms]![F1]![txtManager]"), 0) + 1 Case Else Exit Sub End Select صل على رسول الله - صل الله عليه وسلم وعلى اله وصحبه يا دكتور هذا ما اريده فقط ولا اريد غير ذلك اما انت يا استاذى الجليل وسيدى الفضيل ومعلمى القدير يكفينى انك على اسم ابى فوالله لو طلبت كل ما املك فلن تجدنى الا ملك يمينك بكل ما املك احبكم فى الله ولوجه الله تعالى1 point
-
بعد اذن استاذنا بن علية حاجى وذلك لأن هذه معالات مصفوفة وليست معادلات عادية فلابد بعد نسخ المعادلة الضغط على Ctrl+Shift+Enter وليس Enter فقط كباقى المعادلات1 point
-
1 point
-
تفضل اخى الكريم كود الترحيل يعمل الأن معك المشكلة كانت لأنك لم تغير رقم الصفحة المرحل منها وهى 1 فى الشيت الجديد المرسل منك لأن ترتيبها اصبح الصفحة الثالثة وليست الأولى كما فى الملف القديم حساب عملاء.xlsm1 point
-
1 point
-
جرب هذا بمجرد ادخال الرقم خطأ والضغط على انتر يقوم بمسح التكست بوكس Microsoft Excel Worksheet.xlsm1 point
-
تفضل لا تقوم بالكتابة والإدخال اليدوى الا فى عمود ID/Iqama بالنسبة للجداول فى صفحات الشهور الانشطة.xlsx1 point
-
1 point
-
يمكن عمل الكودين فقط فى حالة اذا تم فتح صفحات بإسم الصنف ولكن انصحك بعمل ملف اخر لهذا الطلب أفضل لأنه كلما زاد من حجم الملف الواحد كلما ثقل وصعب العمل بكفاءة تفضل الملف بعد تحرير عمود السعر 11حساب العملاء(1).xlsm1 point
-
اخى الكريم كل البيانات الناتجة تمام بالنسبة للمعطيات فعل سبيل المثال ليس للصف الأول المتوسط اجمالى اقساط للمدرسة م8 ,فمنطقى ان لا يعطى نتيجة ,فلمل تقول النتائج غير دقيقة النتائج بالنسبة لما هو معطى مع المعادلة 100 % صحيحة ولكن سأنفذ لك الملف على المرحلة فقط كما تريد تفضل لك ما طلبت اقساط طلاب.xlsx1 point
-
مثال على استعمال And: If UserName="أبو خليل" And Password=2017 Then MsgBox"مرحبا أستاذ أبو خليل" End If في هذا المثال إذا كان اسم المستخدم هو أبو خليل و كلمة المرور هي 2017 سوف يقوم البرنامج بعرض رسالة ترحيبية MsgBox"مرحبا أستاذ أبو خليل" و إذا إختل أحد الشرطين فلن يتم تنفيذ التعليمة. يعني لتنفيذ التعليمة يجب تحقق الشرطين في نفس الوقت. مثال على استعمال Or: If Died_Father=true Or Died_Mother=False Then MsgBox "يتيم" End If في هذا المثال يكفي تحقق أحد الشرطين ليتم تنفيذ التعليمة (رسالة تخبرنا بأن هذا الشخص يتيم) و إذا تحقق الشرطين معا أيضا يتم تنفيذ التعليمة إذا هناك شخص أبوه متوفي فهو يتيم و إذا كانت أمه متوفية فهو يتيم و إذا كان كلا والديه متوفيين فهو أيضا يتيم. ((((((اللهم أرحم جميع موتى المسلمين يا أرحم الراحمين يا رب العالمين))))))1 point
-
الــدرس الثاني : الجملة الشرطية ( IF ) تعتبر الجملة IF من أشهر الجمل الشرطية و أكثرها استعمالا في جميع لغات البرمجة ولها عدة صيغ كلها تبدأ بــIf و تنتهى بكلمة End If ما عدى صيغة واحدة. وتستخدم الجملة IF لتنفيذ عمليات معينة حسب شرط محدد, يعني إذا تحقق الشرط ينفذ و إلا فلا. طرق استعمال الجملة ((if: 1- الصيغة ( If –Then ) : - وصيغتها العامة : IF condition THEN statements - ومعنى هذه الصيغة : انه اذا تحقق الشرط (condition ) فسيتم تنفيذ الامر ( statements ) مثال : " مسن" IF age >=65 THEN category = 2- الصيغة ( If – Then – End If ) : صيغتها العامة : IF condition THEN statements1 Statements2 END IF تقوم هذه الصيغة بتنفيذ مجموعة من الاوامر اذا تحقق الشرط (Condition) بدلا من تنفيذ امر واحد. مثال : If age >= 25 Then category ="شباب" travail ="السن مقبول" End if 3- الصيغة ( If – Then – Else ) : صيغتها العامة : If condition Then statements1(التعليمات المنفذة في حال تحقق الشرط ) Else statements2(التعليمات المنفذة في حال عدم تحقق الشرط) End If - هذه الصيغة تنفذ مجموعة الأوامر (statements1 ) عندما يتحقق الشرط (condition ) و عندما لا يتحقق الشرط فإنها تنفذ مجموعة الأوامر (Statements2). مثال : If grade >= 50 Then Text1 ="ناجح" Else Text1 ="راسب" End If 4- الصيغة ( If – Then –ElseIf ) : - صيغتها العامة : If condition1 Then statements1( التعليمات المنفذة في حال تحقق الشرط الأول) ELSEIF condition2 THEN statements2(التعليمات المنفذة في حال عدم تحقق الشرط الأول و تحقق الشرط الثاني) ELSE statements2(التعليمات المنفذة في حال عدم تحقق جميع الشروط السابقة) End If مثال : If grade >= 90 Then Text1 ="ممتاز" ElseIf grade >= 80 Then Text1 ="جيد جدا" ElseIf grade >= 70 Then Text1 ="جيد" ElseIf grade >= 60 Then Text1 ="مقبول" Else Text1 ="راسب" End If ملاحظات: - في الصيغة الأخيرة ( If – Then –ElseIf ) اذا تحقق احد الشروط فان البرنامج ينفذ العملية ثم يذهب الى نهاية الجملة و لا يتحقق من الشروط الباقية. - في حالة أردنا إستعمال شرطين معا أو أكثر نستعمل العبارة And. - في حالة أردنا تحقق أحد شرطين ليتم تنفيذ العملية نستعمل Or1 point
-
اضفت بعض الملاحظات في مشاركتي الاولى: شو قصدك اخي صالح ، انا اعرف ان المتغيرات باللغة اللاتينية ، فرجاء اعطنا مثال لوسمحت جعفر1 point
-
أيضا يستحسن كتابة أسماء المتغيرات باللغة اللاتينية من أجل تسهيل التعامل معها و عدم حدوث مشاكل فيما بعد1 point
-
طرق استعمالها: 1. اذا اردنا استعمال المتغير في الحدث / الوحدة النمطية فقط (يعني لا يمكن اخذ قيمتها من نماذج/تقارير/استعلامات/وحدات نمطية اخرى) ، فنستخدم: Dim UserName as string او Private UserName as string ويجب ان نستخدم Dim لكل حدث في النموذج/التقرير ، اي نعيد كتابته لكل حدث ، بينما يمكننا ان نضع Dim / Private مرة واحدة في اعلى الصفحة ، ولا تكون داخل اي حدث ، هكذا Option Compare Database Private User_Name As String 2. بينما اذا اردنا ان تكون القيمة متوفرة في جميع كائنات البرنامج ، فنستخدم التالي في وحدة نمطية (حتى ولو كانت وحدة نمطية فارغة): Public UserName as string مثال هذا ، عندما تستعمل نموذج المستخدمين ، ثم تريد الاحتفاظ باسم المستخدم في الكود ، فكل الذي تعمله هو: UserName = "jjafferr" ثم من اي مكان في البرنامج تستطيع ان تستعمل هذا المتغير UserName ، مثلا: User_Prevliage = iif(UserName = "jjafferr" , "Admin", "User") . ويمكننا ان نجعل الكود لا يعمل إلا بتعريف المتغير ، وفي الواقع هذه صعبة في البداية ، ولكن في النهاية سيكون برنامجك افضل ، وهكذا نجعل الكود يفرض علينا استعمال المعرف: . . واهمية هذه الخطوة هي عندما تريد ان تحفظ البرنامج لاحقا بصيغة mde او accde ، فيجب عليك ان: . واذا كانت المتغيرات في الكود معرّفة ، فلن تحصل على اخطاء في التحويل جعفر1 point
-
على بركة الله نبدأ أول درس و ننتظر ملاحظاتكم حول أي شيء نسيته و هو متعلق بهذا الدرس أو أي معلومة أخطأت بها: الــدرس الأول : المتغيرات تعتبر المتغيرات النواة الأساسية أو حجر الأساس بالنسبة لكل برنامج في أي لغة برمجة كانت. يعني قبل البدأ يجب أن تقوم بتعريف المتغيرات التي تحتاجها و تحدد نوعها قبل كل شيء. 11- أنواع المتغيرت: هناك العديد من أنواع المتغيرات و كل نوع يخصص له حجم معين في الذاكرة. سوف نقوم بإضافة شرح جميع أنواع المتغيرات و الحجم الذي يأخذه كل نوع من الذاكرة: String: نص يتسع المتغير النصي إلى 2 جيجا بايت و كل حرف يشغل 1 بايت Boolean: ياخذ نوعين من القيم True و False (طوله 2 بيت ) Byte: بايت يكون رقم بين 0 من 255 (طوله 1 بايت) Integer : عدد صحيح (طوله 2 بيت ) قيمته من 32768- إلى 32767 Long : عدد صحيح طويل (طوله 4 بيت) قيمته من 2,147,483,648- إلى 2.147.483.647 Signal: عدد عشري (طوله 4 بيت) قيمته من 3.402823x1038- إلى 1.401298x10-45- للقيم السالبة و من 1.401298x10-45 إلى 3.402823x1038 للقيم الموجبة Currency: عملة (طوله 8 بيت) قيمته من 922،337،203،685،477.5808- إلى 922،337،203،685،477.5807 Double : مزدوج عدد عشري (طوله 8 بيت) قيمته من 1.79769313486231x10308- إلى 4.94065645841247x10-324- للقيم السالبة. و من 4.94065645841247x10-324 إلى 1.79769313486232x10308 للقيم الموجبة Date: نوع البيانات تكون على شكل تاريخ (طوله 8 بيت) يبدأ تاريخ vba من 1/1/100 حتى 31/12/9999 Object : لتخزين الكائنات التي تحتوي على خصائص و وظائف و يتم تعيينه بجملة set ويشغل في الذاكرة 4 بايت أو حسب خصائص و وظائف الكائن المحدد. و سوف نخصص درس لعرض أنواع الكائنات. Variant : لتخزين كل الأنواع السابقة ويمكن تخزين المصفوفات بداخله أيضاً 2- طريقة الإعلان عن المتغيرات: الإعلان عن متغير يعني حجز مكان في ذاكرة الكمبيوتر باسم هذا المتغير و يحدد حجمه حسب نوع المتغير. و يتم تعريف المتغير أو الإعلان عنه بواسطة العبارة DIM . مثال: Dim A as Integer للإعلان عن أكثر من متغير: Dim a,b as integer للإعلان عن أكثرمن متغير لأنواع مختلفة في نفس السطر: Dim A As Double, B As Integer 3- ملاحظات: - - يفضل الإعلان عن نوع المتغير لزيادة سرعة التعامل معه . - - المتغيرات التي لم تحدد نوعها يعمل فيجول بيسك علي الإعلان عنها تلقائيا من النوع Variant وهو أبطأ أنواع المتغيرات . - - بالنسبة للإعلان عن أكثر من متغير من نفس النوع بالطريقة التالي: Dim a,b as integer هنا b فقط من النوع integer أما a فهو في هذه الحالة يعتبر من النوع Variant يجب أن يتم التعريف بهذا الشكل: Dim a integer,b as integer أو Dim a as Integer Dim b as Integer 4- شروط تسمية المتغيرات: - - اسم المتغير يجب أن يبتدأ بحرف . - - يمكن استعمال الحروف التي تلي الحرف الأول رقم أو حرف أو الإثنين معا. - - لا يجب أن تكون هناك فراغات بين أسماء المتغير و يمكن استعمال الشكل التالي: id_user - - يجب عدم استعمال نقطة أو رمز خاص مثل ( ؟ ، * ، ) ، ( ، /......... إلخ ) ولكن يمكن استخدام الشرطة السفلية ( _ ) - - أن لا يكون اسم المتغير من الكلمات المحجوزة في الأكسس.1 point
-
لا داعي للاعتذار على الإطلاق فأنت لم تخطيء في شيء أبداً ..بالعكس الكثير يفضل الحلول السريعة والحلول التي لا تطول الموضوع ، وأنا بطبعي أطلب التوضيح بشكل ملفت للنظر ، وذلك لكي لا يكون توابع في الموضوعات بشكل كبير .. وفي النهاية كل يقدم المساعدة حسب علمه ووقته .. وعلى الأخوة الأعضاء مراعاة ذلك ، وألا يثقلوا على الأعضاء بإرسال رسائل خاصة ، فهذا الأمر يزعجني أنا شخصياً .. فتقديم المساعدة مكفول بوقت الفراغ والعلم بالأمر تقبل الله منا ومنكم صالح الأعمال .. تقبل وافر تقديري واحترامي1 point
-
السلام عليكم اذا كان هناك تعليق على الخلية سيقوم باضافة قائمة وسيقوم باستخدام الاسم الموجود في التعليق لنطاق القائمة شاهد المرفق 2003 FrameScrollBars1.rar1 point
-
السلام عليكم الموضوع جميل وشيق تسلم أخي الحبيب ياسر (أبا البراء) علي الفكرة الحلوة ============== أخي الغالي / سليم الفكرة في سؤالك أن الأرقام المتتالية من 2 إلي 6 حاصل ضربهم بالمعادلة Fact سيكون 720 و Fact لمن لايعلم هي إختصار للدالة Factorial أي المضروب باللغة العربية وهي تعني حاصل ضرب الرقم (في حالتنا 6) من أول 6 إلي 2 (أي 6 × 5 × ... ×2) صيغتها كالتالي =FACT(6) الجزء التالي من السؤال أول 10 أرقام تقبل القسمة علي ذلك وهذا يعني 720×1 ، 720×2 ، 720×3 ، 720×4 ،،، ، 720×10 مع إضافة 1 لكل من النواتج إذن ستحتاج إلي 10 صفوف لإظهار الناتج وتحتاج لمعادلة صفيف كالتالي في عشرة صفوف {=ROW(INDIRECT("1:10"))*FACT(6)+1} وستجد النواتج 721 1441 2161 2881 3601 4321 5041 5761 6481 72011 point
-
1 point
-
1 point
-
تفضل وحدة نمطية مع الشرح يمكن من خلالها طباعة الصفحات من تقريرين تنازليا مهما بلغت الصفحات وايضا يمكن تحديد نقطة البداية او صفحة البداية فلو فرضنا ان لديك تقريرين كل واحد منهما يحتوي على 100 صفحة وتريد ان تبدأ الطباعة من الصفحة رقم 20 تنازليا فكل ما عليك هو ان تضع رقم صفحة البداية في الحقل المخصص في النموذج افتح محرر الفيجوال والصق الوحدة النمطية التالية : Function PrintDscOrder(Rep1 As String, Rep2 As String) Dim PgNum As Integer, _ PgNum2 As Integer, PagesCnt As Integer 'اعلان عن متغيرات رقمية تمثل مجمل الصفحات وارقام الصفحات المحددة PagesCnt = Me.RepageCnt.Value 'مجمل الصفحات = قيمة الحقل في النموذج For PgNum = PagesCnt To 1 Step -2 'دوارة تنازلية زوجية PgNum2 = PgNum - 1 'تحديد رقم الصفحة الثانية وهي هنا اقل من الحالية بواحد DoCmd.SelectObject acReport, Rep1, True 'تحديد التقرير الأول DoCmd.PrintOut , PgNum, PgNum2, 1 'طباعة الصفحات المحددة DoCmd.SelectObject acReport, Rep2, True ' تحديدالتقرير الثاني DoCmd.PrintOut , PgNum, PgNum2, 1 'طباعة الصفحات المحددة Next PgNum 'عودة لبداية الدوران End Function 'تصميم وترتيب ابوخليل وفي حدث بعد النقر لزر الطباعة الصق السطر التالي : Call PrintDscOrder("استقطاعات", "استحقاقات") طباعةالصفحات تنازليا من تقريرين.rar1 point
-
سأعرض الحل هنا مع توضيح بعض النقاط المهمة فالجملة البرمجية التي تستخدم لفتح ثم طباعة الصفحات المحددة من التقرير DoCmd.OpenReport stDocName, acPreview DoCmd.PrintOut acPages, pageFrom, pageTo لا تقوم بالمهمة كما ينبغي وكما رسمت له فمن المعلوم ان تنفيذ هذا الكود سيكون من خلال النموذج لذا يصعب التنفيذ بل يمتنع وتظهر بعض العقبات غير المتوقعة فمنها : - طباعة النموذج بدلا من التقرير وقد يتم طباعة الاثنين معا - عدم طباعة الصفحات المحددة وانما يتم طباعة الجميع - هذا الكود يقوم بفتح التقرير وهذه مشكلة بحد ذاتها حيث يستلزم اخفاؤه او تصغيره ثم غلقه وهل هناك بديل ؟ نعم وهو يقوم بكل لطف وصمت بطباعة صفحات محددة من تقارير عدة والحل سطران فقط ومن اراد الزيادة فعليه ان يكررهما ما شاء الاول يقوم بتحديد التقرير لا فتحه DoCmd.SelectObject acReport, "استقطاعات", True والثاني لطباعة الصفحات المحددة DoCmd.PrintOut , 14, 13, , 1 رقم 1 يمثل عدد النسخ في المرفقات تحقيق وتطبيق طباعة واختيار الصفحات من عدة تقارير.rar1 point