اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      10

    • Posts

      9938


  2. kanory

    kanory

    الخبراء


    • نقاط

      5

    • Posts

      2313


  3. ابو عارف

    ابو عارف

    الخبراء


    • نقاط

      5

    • Posts

      595


  4. احمدزمان

    احمدزمان

    أوفيسنا


    • نقاط

      4

    • Posts

      4386


Popular Content

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

  1. السلام عليكم 🙂 هذا المنتدى للتبادل العلمي ، حتى يستفيد منه الجميع ، وليس صاحب الموضوع / السؤال فقط 🙂 فيا ريت ان نضع الاجابة بالتفصيل في الرد (سواء الخطوات او الكود او صور من شاشة البرنامج) ، ولا نتوقف عند ارفاق المرفق الذي به الرد / الجواب ، والسبب هو ، حتى يستطيع الجميع رؤية الرد ومعرفته مباشرة ، دون اللجوء الى انزال المرفق وفهمه 🙂 نعم ، هذا عبء إضافي ، ولكن نتائجه ستكون مثمرة ان شاء الله 🙂 وتذكروا ، هذا مجرد طلب ورجاء ، وليس اجباري 🙂 شكرا جزيلا 🙂 جعفر
    6 points
  2. انظر التعديل ان شاء الله يكون حسب المطلوب addDateHideRport.accdb
    3 points
  3. السلام عليكم 🙂 في الواقع ، هذا السؤال من الاسئلة التي تُثار بين الحينه والاخرى ، واليك السبب في عدم امكانية الحصول على قيمة ذيل الصفحة ، في رأس الصفحة : التقرير عندك فيه 3 اقسام : . خلينا نشوف قيم التاريخ لصفحة: . والآن خلينا نشوف التاريخ ، بالطريقة اللي اقسام التقرير تشوفه ، بإستخدام حدث التنسيق لكل قسم: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Header= " & Me.Edate End Sub Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Debug.Print " Detail= " & Me.Edate End Sub Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) Debug.Print "Footer= " & Me.Edate Debug.Print End Sub . والنتيجة لصفحتين : Header= 18-Oct-20 Detail= 18-Oct-20 Detail= 19-Oct-20 Detail= 20-Oct-20 Detail= 21-Oct-20 Detail= 22-Oct-20 Detail= 23-Oct-20 Detail= 24-Oct-20 Detail= 25-Oct-20 Detail= 26-Oct-20 Detail= 27-Oct-20 Detail= 28-Oct-20 Detail= 29-Oct-20 Detail= 30-Oct-20 Detail= 31-Oct-20 Detail= 01-Nov-20 Detail= 02-Nov-20 Detail= 03-Nov-20 Detail= 04-Nov-20 Detail= 05-Nov-20 Detail= 06-Nov-20 Detail= 07-Nov-20 Detail= 08-Nov-20 Footer= 07-Nov-20 Header= 08-Nov-20 Detail= 08-Nov-20 Detail= 09-Nov-20 Detail= 10-Nov-20 Detail= 11-Nov-20 Detail= 12-Nov-20 Detail= 13-Nov-20 Detail= 14-Nov-20 Detail= 15-Nov-20 Detail= 14-Jan-21 Detail= 15-Jan-21 Detail= 16-Jan-21 Detail= 17-Jan-21 Detail= 18-Jan-21 Detail= 19-Jan-21 Detail= 20-Jan-21 Detail= 21-Jan-21 Detail= 22-Jan-21 Detail= 23-Jan-21 Detail= 24-Jan-21 Detail= 25-Jan-21 Detail= 26-Jan-21 Detail= 27-Jan-21 Footer= 26-Jan-21 . من هنا نلاحظ ان رأس الصفحة يرى اول سجل ، بينما ذيل الصفحة يرى آخر سجل ، والتقرير يطبع / يُظهر رأس الصفحة قبل ان تكون البيانات وصلت الى ذيل الصفحة (يعني ذيل الصفحة لا يحتوي على اي قيمة حينها ، لما رأس الصفحة يحصل على القيمة) ، لهذا سبب ما نحصل على التاريخين معا في رأس الصفحة !! ------------------------------------------------------------------------------------------------------- الآن وبعد ان عرفنا طريقة عمل التقرير ، خلينا نستفيد منه في عمل المطلوب : خلينا نفتح التقرير بطريقة مخفية ، نأخذ قيمة سجل رأس صفحة التقرير وذيل صفحة التقرير لكل صفحة ، نحفظهم في مصفوفة Array ، ثم نفتح التقرير بالطريقة العادية ونأخذ بيانات رأس وذيل التقرير من المصفوفة ، ونضعهم في التقرير ، في رأس الصفحة 🙂 1. عمل نموذج لحصر البيانات بين قيمتين (مع اننا لسنا بحاجة الى هذه الخطوة ، ولكن لأن جدولك في سجلات بدون قيم تواريخ ، فهذا يعمل خلل في الكود) ، ونعمل استعلام يصفي بيانات الجدول حسب تواريخ النموذج ، ويكون هذا الاستعلام مصدر بيانات التقرير: . 2. النقر على زر فتح التقرير في النموذج ، يحتوي على هذا الكود : والذي يعمل مصفوفة لـ 100 صفحة في التقرير (اذا تقريرك يحتوي على صفحات اكثر ، فقط اجعل هذا الرقم اكبر ، ما يضر اذا تركته = 200 او اكثر) 'accept adding dates Add_Dates = True 'initilize the arrays with a larg number of pages ReDim Fd(100) 'first E_date ReDim Ld(100) 'last E_date 'open the Report in Hidden mode, to put the E_dates in an array DoCmd.OpenReport "rpt_chfit", acViewPreview, , , acHidden 'close the Hidden Report DoCmd.Close acReport, "rpt_chfit" 'stop adding dates Add_Dates = False 'now open the Report in the normal way DoCmd.OpenReport "rpt_chfit", acViewPreview . وهناك وحدة نمطية تحتفظ بقيم المصفوفة ، حتى تكون متوفرة لجميع كائنات البرنامج: Option Compare Database Option Explicit Public Add_Dates As Boolean Public Fd() As Date 'first E_date Public Ld() As Date 'last E_date . والتقرير فيه هذا الكود: Private Sub PageHeaderSection_Format(Cancel As Integer, FormatCount As Integer) If Add_Dates = True Then 'add the array items, based on the Report page number Fd(Me.Page) = Me.F_Edate Else 'show the results Me.myF_Edate = Fd(Me.Page) Me.myL_Edate = Ld(Me.Page) End If End Sub Private Sub PageFooterSection_Format(Cancel As Integer, FormatCount As Integer) If Add_Dates = True Then 'add the array items Ld(Me.Page) = Me.L_Edate End If End Sub Private Sub Report_Close() If Add_Dates = False Then 'Empty the array ReDim Fd(0) 'first E_date ReDim Ld(0) 'last E_date End If End Sub . فإذا قيمة Add_Dates = True في النموذج ، فيعمل التقرير المخفي لعمل المصفوفة ، بينما عندما تتغير قيمة Add_Dates ، فيقوم التقرير بإظهار قيم المصفوفة في التقرير الغير مخفي ، وعند اغلاق التقرير ، نقوم بحذف بيانات المصفوفة 🙂 لذلك ، وللحصول على النتائج الصحيحة ، يجب تشغيل التقرير من النموذج ، حتى يقوم الكود بما يجب 🙂 . . جعفر 1277.addDateHideRport.accdb.zip
    2 points
  4. لم استطع ايجاده الان ايضا 😂 سابحث الامر باذن الله
    2 points
  5. سطرين ؟؟؟؟؟ قصدق سجلين مثل هذا ؟؟؟
    2 points
  6. انظر الصور وطبق ..... combobox1.accdb
    2 points
  7. السلام عليكم و رحمة الله وبركاته اولا : تضع اسم الملف المراد فتحه و المسار كاملا في الخلية J2 في الملف الرئيسي ثانيا : هذا الكود لعمل اللازم - على قدر فهمي لطلبك Sub az_mokhtar() 'نقل البيانات Dim WB1 As Workbook, WB2 As Workbook Dim FS As Worksheet, TS As Worksheet Dim Q1, TR Set WB1 = Workbooks(ActiveWorkbook.Name) Set FS = WB1.Sheets(ActiveSheet.Name) Q1 = FS.Range("J2").Text Workbooks.Open (Q1) 'Workbooks.Open "C:\Users\Ad\Desktop\مختار\mokhtar4 (1).xls" Set WB2 = Workbooks(ActiveWorkbook.Name) Set TS = WB2.Sheets(1) TR = TS.[a65536].End(xlUp).Row + 1 '' TS.Cells(TR, 1) = FS.Cells(1, 2) TS.Cells(TR, 2) = FS.Cells(2, 3) TS.Cells(TR, 3) = FS.Cells(5, 4) TS.Cells(TR, 4) = FS.Cells(3, 3) TS.Cells(TR, 5) = FS.Cells(4, 3) TS.Cells(TR, 6) = FS.Cells(5, 3) TS.Cells(TR, 7) = FS.Cells(1, 7) TS.Cells(TR, 8) = FS.Cells(2, 7) 'With TR ' .PasteSpecial xlValues ' .PasteSpecial xlFormats ' End With WB2.Save WB2.Close FS.Activate End Sub جرب المرفق جزاك الله خيرا مختار.rar
    1 point
  8. ماشاء الله تبارك الله حفظك الله سليم حاصبيا
    1 point
  9. عليكم السلام انت وضعت الحقول في قسم (مقطع) رأس الصفحة يمكن تحقيق مطلوبك ولكن تطبيق الكود داخل تفصيل التقرير اكثر اتقانا سأوافيك بمثالك معدلا وسوف نطبق من خلاله الحالتين
    1 point
  10. تفضل هذه المحاولة ارجو ان تنفعك ملاحظة: جزء من الكود وهو الترقيم التلقائي هذا الكود للاستاذة زهرة وهو ضروري لتجنب حدوث تغيير بالبيانات عند الحذف والاضافة مراعاة عدد السجلات في التقرير لان الكود يعتمد على عدد السجلات المعروضة لذا يجب تعديل الكود بتغير عدد السجلات المعروضة addDateHideRport-1.rar
    1 point
  11. نعم ممكن ان شاء الله تغيير الخلفيه (3).rar
    1 point
  12. جرب هذا الملف لعله يفيدك هذه معادلة مصفوفة =IFERROR(INDEX($A$2:$A$9;SMALL(IF($F$2=TRIM($A$2:$A$9);ROW($A$2:$A$9)-MIN(ROW($A$2:$A$9))+1;"");ROW(A1)));"") اضغط على CTRL+SHIFT+ENTER بحث.xlsx
    1 point
  13. استبدل مصدر الصف في الكمبو بهذا SELECT * FROM (SELECT Table1.item, Table1.main_unit FROM Table1) AS kan UNION SELECT * FROM (SELECT Table1.item, Table1.med_unit FROM Table1) AS kan1;
    1 point
  14. تفضل اخي هذا الحل عسى ان يكون هو ما تبحث عنه حل - ترقيم.xlsx
    1 point
  15. عذرا لخطاء ارفاق ملف دون حفظه في ارشيف و هذا ملف الجديد NewFile.rar
    1 point
  16. ممكن ان تستعين بهذا الملف صفحة (Finish) nany4mg_Final.xlsm
    1 point
  17. mk_mk_79 أين انت من هذه الإجابة الممتازة؟!!! لم أرى اى ضغط على الإعجاب من طرفك , وهل جزاء الإحسان الا الإحسان ؟!!!! أين الضغط على الإعــــجـــــاب , وكما اتفقنا ان هذا أقل ما يقدم لمن له الفضل عليك بعد ربنا فى حل مشكلتك وتفريج كربتك ؟!!! 💙
    1 point
  18. شكرا لكم جميعا وتم حلها بالطريقه التى قام بشرحها الاستاذ / عبدالفتاح فى بى اكسيل وتمت بنجاح وجعل الله علمكم فى ميزان حسناتكم جميعا
    1 point
  19. تفضل طريقة تحويل جملة الاستعلام SQL من الكود الى استعلام ، ومن ثم من الاستعلام الى الكود مرة اخرى : 1. ادخل في نموذج login حتى يكون لدينا اسم المستخدم في المتغير TempVars!mm في ذاكرة الكمبيوتر (وتظل هذه القيمة في ذاكرة الكمبيوتر الى اغلاق برنامج الاكسس) ، ولنختار المستخدم محمد مثلا (ومافي داعي للنقر على زر "دخول") : . 2. نفتح النموذج form2 ، ونذهب الى حدث النقر على الزر "ادفع" حتى نرى الكود : DoCmd.RunSQL "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" . نريد ان نعمل تغيير في جملة SQL هذه ، ونضيف "اسم المستخدم" فيها ، والموجدو في المتغير TempVars!mm ، أ. نعطي جملة SQL الى متغير ، ولنسميه mySQL ، ثم في اسفل نافذة الكود VBE ، في نافذة Immediate (ولفتح هذه النافذة Ctrl+G) ، نرى جملة الـ SQL كما يراها البرنامج : dim mySQL as string mySQL= "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" debug.print mySQL DoCmd.RunSQL mySQL . ب. انقر على الزر "ادفع" ، فنرى جملة SQL في النافذة : . ج. ننسخ هذه الجملة (بما ان الجملة فيها كلمات عربية ، فيجب ان تكون لغة لوحة المفاتيح بالعربية ، حتى نرى الكلمات العربية بالطريقة الصحيحة ، وإلا فهذه الكلمات ستتحول الى حروف اغريقية!!) اذا تم نسخ الجملة التي فيها كلمات عربية ، ولوحة المفاتيح بالانجليزي: . فعند لصقها في الاستعلام (او حتى في المنتدى) ، ستكون هكذا: . لذا يتوجب تغيير لوحة المفاتيح الى العربية . د. نفتح استعلام جديد ، ونطلب منه فتح نافذة الاستعلام في وضع SQL . . هـ. ثم نلصق جملة SQL التي نسخناها من نافذة VBE Immediate ، الى هذا الاستعلام: . ثم نعرض الاستعلام بوضع التصميم ، حتى يسهل علينا فهم جملة SQL : . فيصبح الاستعلام هكذا: . و. وبتغيير كلمة "نقدي" الى 'نقدي' (لأننا في الاستعلام نستخدم الخط الواحد ' وليس خطين " للنص) ، واضفنا حقل "اسم المستخدم" . ز. والآن نحول الاستعلام الى جملة SQL ، وننسخه الى الكود في VBE (ولو اني دائما افضل استعمال الاستعلام بدل الكود ، ولكن الامر راجع اليك) : . . ح. ونضعه في الكود : 'mySQL = "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع] ) SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, ""نقدي"" AS s FROM فرعى;" mySQL = "INSERT INTO المبيعات ( [كود الصنف], [اسم الصنف], المورد, [سعر البيع], اللون, المقاس, التاريخ, [نظام الدفع], [اسم المستخدم] )" mySQL = mySQL & " SELECT فرعى.[كود الصنف], فرعى.[اسم الصنف], فرعى.المورد, فرعى.[سعر البيع], فرعى.اللون, فرعى.المقاس, Date() AS D, 'نقدي' AS s, '" & [TempVars]![mm] & "' AS T" mySQL = mySQL & " FROM فرعى;" Debug.Print mySQL DoCmd.RunSQL mySQL . مع ملاحظة تغيير المتغير الى نص ، حتى يأخذ قيمته مباشرة من TempVars!mm : . . والآن نستخدم النموذج form2 ونجرب الزر: . والنتيجة : . جعفر 1275.المحل نسخة تجريبية.accdb.zip
    1 point
  20. رحم الله والديك استاذ خالد عبد الغفار وانا بالخدمة
    1 point
  21. استاذنا/husamwahab نعم اخى الكريم هذا هو المطلوب بارك الله فيك واعطاك حتى ترضى الف شكر استاذنا الكريم
    1 point
  22. با صديقي الاسماء والمعادلا ت يجب ان توضع في sheet2 فقط والماكرو يقوم بنقل المطلوب الى بفية الشيتات (بالسبة للمعادلات ينقل نتائجها فقط) اذ لا حاجة لكتابتها مرة اخرى في كل صفحة لذلك 1- أضف الاسماء التي تريد في sheet2 مع البيانات التي تخصها 2-اسجب المعادلات (في sheet2 ) كل واحدة من الصف الاول الى اخر صف فيه داتا (أو أكثر كما تريد) 4- نفّذ الماكرو هذا مثال (مرفق الملف) عما أقصده (1100 اسم وهمي ) مع المعادلات في sheet2 فقط ملاحظة: تم التعديل على المعادلات بجيث لا تظهر الأخطاء ولا الأصفار (الق نظرة عليها في sheet2) انسخ الاسماء الحقيقية من ملفك مكان الاسماء الوهمية أو انسخ الكود الى ملفك بعد ادراج الصفحات اللازمة بنفس الأسماء ( Acounting / JobList / Sale ) ولا تنس تسمية الشيت الأساسي بـــ sheet2 nany4mg_1100.xlsm
    1 point
  23. جرب هذا التعديل وارجو ان يكون طلبك وعذرا لسوء فهمي اخي الحبيب db3-3.rar
    1 point
  24. يجب ان يكون نطاق الخلايا المنسوخة لصف واحد او لعمود واحد لكي تتمكن من اللضق لذلك اذافهمنا منك ماهو المطلوب فعلا ممكن ان يتم تجزئة النطاق الى اجزاء و نقلها للمكان الذي تريده تحياتي مختار.rar
    1 point
  25. السلام عليكم و رحمة الله وبركاته كلامك صحيح يوجد خطأ هنا لم تراعي التسلسل في النطاق يجب ان يكون = اسم الملف . اسم الورقة . اسم النطاق الخلايا بينما انت وضعت اسم الملف . ثم نطاق الخلايا ==== بدون اسم الورقة وهذا خطأ
    1 point
  26. في المرة الفادنة 1- رفع ملف ضغير لا يتجاوز 50 صف لأن الماكرو الذي بعمل على صف واحد يمكنه العمل على الألوف منها 2-رفع ملف يحتوي على جدول كامل (كان هناك في الجدول بيانات ناقصة كثيرة وقد قمت بادراج بيانات عشوائيه ) 3- يتم توزيع الموظفين على 3 صفخات مع الاسماء مرتبة ابجدياً ( Acounting / JobList / Sale ) جرب هذا الماكرو Option Explicit Sub filter_and_sort() Dim Sh2 As Worksheet Dim My_sh As Worksheet Dim Rg As Range Dim cret$ With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With Set Sh2 = Sheets("sheet2") Set Rg = Sh2.Range("A1").CurrentRegion If Sh2.AutoFilterMode Then Rg.AutoFilter For Each My_sh In Sheets Select Case True Case My_sh.Name = "Acounting" cret = "ادارة الحاسب" Case My_sh.Name = "JobList" cret = "ادارة شئون العاملين" Case My_sh.Name = "Sale" cret = "ادارة المبيعات" Case Else GoTo Next_sh End Select My_sh.Range("A1").CurrentRegion.Clear Rg.AutoFilter 3, cret Rg.SpecialCells(12).Copy With My_sh.Range("A1") .PasteSpecial (8) .PasteSpecial (12) End With With My_sh.Range("A1").CurrentRegion .Sort Key1:=.Cells(1, 2), Header:=1 .Borders.LineStyle = 1 .InsertIndent 1 .Font.Size = 14 .Font.Bold = True .Rows(1).HorizontalAlignment = 3 End With Next_sh: Next If Sh2.AutoFilterMode Then Rg.AutoFilter With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic .CutCopyMode = False End With Sh2.Select End Sub nany4mg.xlsm
    1 point
  27. لا اظن ان الخطأ هنا اعتقد ان الخطأ يكون هنا حيث ان هنا هذا التعريف هو لفتح الملف ثم انت استخدمته كـ اسم للملف لذلك استبدل هذا السطر Set mokhtar4 = Workbooks.Open("d:/INPOTEXCELL/mokhtar4.xls" بما يلي Workbooks.Open("d:/INPOTEXCELL/mokhtar4.xls") Set mokhtar4 = ActiveWorkbook ان شاء الله رايحة تظبط معاك فضلا جرب و اعلمني بالنتيجة .... مع التحية
    1 point
  28. بارك الله فيكم ..... ربي يحفظكم وينور طريقكم
    1 point
  29. تفضل لك ما طلبت final1.xlsx
    1 point
  30. جزاك الله كل خير استاذ طارق
    1 point
  31. قم بتغيير الرقم 103 الى اي رقم تريد في المعادلة الأولى (مع الضغط غلى Ctrl+Shift+Enter) وليس Enter وحدها واسحب يساراً الى اخر عامود و نزولاً قدر ما تريد
    1 point
  32. وعليكم السلام-لا يمكن عمل ما تريد ولكن يمكن كما تعلم مشاركة ملف الإكسيل لأكثر من شخص شرح مشاركة جدول اكسل للتعديل مع أكثر من شخص عن بعد Excel| انترنت أو شبكة داخلية
    1 point
  33. لعد الناجحين أولى أول لغة عربية =SUMPRODUCT((B2:B8=1)*(E2:E8>=50)) على فرض درجة النجاح من 50 غيرها حسب طلبك و للناجحين أولى 2 =SUMPRODUCT((B2:B8=1)*(E2:E8>=50)) جرب وشوف
    1 point
×
×
  • اضف...

Important Information