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

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      9

    • Posts

      2,155


  2. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      8

    • Posts

      6,814


  3. kkhalifa1960

    kkhalifa1960

    الخبراء


    • نقاط

      3

    • Posts

      1,688


  4. Eng.Qassim

    Eng.Qassim

    الخبراء


    • نقاط

      2

    • Posts

      2,302


Popular Content

Showing content with the highest reputation on 16 أكت, 2023 in all areas

  1. بالعكس يا بشمهندس والله انت نور المنتدى ... ودائم بتدخل السرور في النفس وما تخرج منك الا كل دعابة حلوة ... بارك الله فيك في نفسيتك الحلوة ...
    2 points
  2. هههههههههههه حاشا لله ، وانت بتعرف كويس إني بهزر معك 🤣
    2 points
  3. يا ترى اساتذتى الكرام الحلوين الاستاذ @kanory والاستاذ @Foksh 😡 بتضحكوا على علشان مبفهمش بسرعة واللا علشان مبفهمش اصلا هههههههه 🤪
    2 points
  4. اولا هات الشجرة علشان اتفرج عليها واتعلم منك وياريت توضح بناء على المرفق طلباتك بشرح وافى لان بصراحة السؤال مش مفهوم ع الاقل بالنسبة لى و انت عارف انا مبفهمش بسرعة بس لو فهمت تلاقينى فوريره اومااااااااااال
    2 points
  5. تصحيح الكودات في موضوعات الوقت والتواريخ المرفق به حالتان : 1- الحالة الأولي بعطيه التاريخ يعطيني عدد الأيام وعدد الأشهر وعدد السنوات ..........ويعمل تمام . 2- الحالة الثانية بعمل العكس بعطيه عدد الأيام وعدد الأشهر وعدد السنوات ليعطيني التاريخ بس فيه شئ خطأ في الأكواد . فبرجاء أن تعديل الكودات لتعطيني النتيجة الصح . فمثلاً (لما أدخل تاريخ 18/01/1960 في الحالة الأولى ) ثم أخذ مفرداته وأدخلها في الحالة الثانية يعطيني الشهر خطأ. ولما أدخل تاريخ 15/01/1958 في الحالة الأولى ) ثم أخذ مفرداته وأدخلها في الحالة الثانية يعطيني الشهر صح !!!!!!!!!!!!!!!!! CalculatAge.accdb
    1 point
  6. هنا لمطلبك قد يكون له تبعات أخرى ، ولكن سأقوم بالتعديل وسأبلغك ، ولا يهمك
    1 point
  7. طيب ركزى معايا نظريا كده علشان تفهمى حضرتك عملتى ايه حضرتك عملتى الدلة تروح للجدول settings_general_tbl وتجيب القيمة اللى فيه +1 ودى القيمة الافتراضية على مربع النص فى النموذج يعنى دايما هتكون كده طيب القيمة x+1 بتتسجل فى جدول reservation_tbl طيب المفروض عند الاضافة الجديدة ياتى بالقيمة الاخيرة من الجدول reservation_tbl ثم يجمع عليها 1 طبعا هذا لا يتم حبة تركيزعلى اعتبار اننا فكرنا فى حل لو القيمة فى الجدول reservation_tbl = 5 يعنى تم استخدام الارقام 1 , 2 , 3 , 4 , 5 ما العمل لو المستخدم اراد بدء الترقيم من 3 مثلا ؟؟؟؟ طيب كيف ابنى الترقيم هل بناء على اعلى واخر قيمة فى الجدول reservation_tbl طيب لو اراد المستخدم بدء الترقيم امتى وازاى نفهم البرنامج يبدء من ترقيم المستخدم اذا كان انا توهت ومش فاهم يبقى هأفهم البرنامج ايه وازاى وامتى بعد ما حضرتك تقرائى وقبل ما تردى على شوفى الموضوع ده وبعدين نكمل يمكن تلاقى طلبك بدون تعب
    1 point
  8. هذا المطلب الاول بعد التعديل ، تفضل Backup.zip
    1 point
  9. بارك الله فيك أخي الكريم بعد استيراد الجداول الطريقة شغالة ممكن طلب تعديل إن امكن النسخة الاحتياطية تكون في ملف اسمه BACKUP وهل فيه طريقة لجعل النسخ الاحتياطي يكون كل يوم مع حذف النسخة وتعويضها التي تكون في نفس اليوم لعدم تراكم النسخ في نفس اليوم تؤدي نفس الوظيفة للآداة التي كنت اشتغل عيها سابقا وشكرا مرة أخرى
    1 point
  10. انت ؟!...هههههه انت هتقول لى عليك المنتدى منور بأهله واحبابه وبيكم .. انتم الثريا و الضياء الذى ينير دروب طلاب العلم وظلمات جهلهم .. جزاكم الله خيـــــرا
    1 point
  11. بداية يجب عليك استيراد الجداول المرتبطة بالقاعدة الرئيسية من ملف TBL ، لإنه حتماً اختلف مسار الارتباط من جهازي لجهازك ؛ حتى تكتمل عناصر النسخ الاحتياطي.
    1 point
  12. أهلا بالجميع.. أولا.. دعوني أتوجه بالشكر للاستاذ @AbuuAhmed لبعد نظره البرمجي.. فليست القضية أن تقدم حلاً! أو تسبق إليه! بل يجب أن يتعدى ذلك إلى كونه صالحا للتطبيق كمنتج! ثانيا.. سبق لى وفي مشاركات عدة تقديم هذا المطلب ضمن الحل.. لكن لم يكن ذلك هو المطلوب من السؤال.. ثالثا.. هناك طريقتان سبق وأن استخدمتهما ضمن الحلول قمت بالمساهمة فيها وهما.. ** استخدام أدوات ActiveX .. لكن ليست هي الأسهل! ولا الأجمل! وتحتاج إلى Class Module لتمرير الأحداث ** استخدام أدات WebBrowser وهي الأسهل! والأجمل! في نظري! هذه الأمثلة لتطبيق الفكرة (استخدم Office64Bit) Database.zip
    1 point
  13. ان شاء الله ان سنحت الفرصة ..لكني اراها غير عملية بالنسبة للمستخدم..لان اهم شيء هو حدث عند النقر ..والمستخدم ليس مبرمج !! ارى بأن طريقة استاذ خليفة واستاذ موسى اكثر عملية
    1 point
  14. جرب هذا المرفق أخي الكريم واذا اردت الحفظ التلقائي عند الخروج للنسخة الإحتياطية ، فقط ضع امر الحدث في زر نسخة احتياطية عند زر الاغلاق او الخروج ، حسب ما تحب Backup.zip
    1 point
  15. الطريقة محدودة ..يعني المستخدم لايستطيع اضافة ازرار اخرى في المستقبل الا اذا عملنا جدول فيه اسم الزر والحدث وغيرها ويتم تمريرها الى الدالة ونجعل خلق الزر داخل حلقة دوران ..والله اعلم
    1 point
  16. تم عمل المطلوب عملت جدول فرعي مرتبط بمعرف المستخدم ، ثم كود برمجي لنسخ تسميات الحقول الى هذا الجدول لجميع المستخدمين المسجلين ---------------------------------------- طبعا المثال لا يحتوي على آلية لتعيين المستخدم وانما يتم ذلك في برنامجك عند بدء فتح البرنامج لذا عملت شيئا من هذا القبيل في النموذج لتعيين مستخدم محدد كي نشاهد نتيجة العملية ------------------------------------- تطبيق الفكرة سهل ويسير فقط تتبع الخطوات من خلال النماذج نبدأ من نموذج الإعداد / ثم نموذج الخيارات / ثم النتيجة في نموذج عرض البيانات آمل ان يحوز على رضاك ويلبي طلبك ،،، Data2.rar
    1 point
  17. المشاركة اللى وضعتها للاستاذ @jjafferr قام فيها سيادته بعمل كود لانشاء زر الامر وكذلك وضع الحدث لهذا الزر اقرأ المشاركة وانظر الى المرفقات
    1 point
  18. قد تكون القاعدة تحتوي على مرفقات ( صور ، ملفات PDF .... الخ ) وهذا سبب ضخامة حجم قاعدة البيانات ؛ هنا ستجد سهولة في فك الارتباط معها واستخراج المرفقات ، وبنفس الوقت ستجد صعوبة في اعادة ربطها مع حقولها التابعة لها . حاول اكتشاف اين المكونات التي زادت من حجم القاعدة ؛ وكمثال لو أنا مكانك :- بداية احتفظ بالنسخة الأصلية بمكان آمن . سأقوم بانشاء نسختين من نفس المشروع بنفس المجلد . سأحذف جميع الجداول من أحدى هذه النسخ وللفرضية أسميها Main . النسخة الثانية سقوم بعمل العكس وهو حذف جميع المكونات باستثناء الجداول ، وأعمل للقاعدة إعادة ضغط وإصلاح ( Compact and Repair Database Tools ) . لاحظ الفرق بالحجم بين النسختين وستحدد من هو الجزء المسؤول عن زيادة حجم القاعدة. * الفكرة هي أنني سابقاً كان عندي مشروع فارغ من البيانات في الجداول وكان حجمه 65 ميغا رغم إنه ليس بالمشروع الضخم ، ولكن عند استيراد المشروع لقاعدة بيانات فارغة جديدة اختلف الحجم معي حتى وصل إلى 8 ميغا على نفس الكمبيوتر ونسخة الأوفيس . المغزى أنه قد تكون جداول النظام في المشروع هي السبب بزيادة الحجم لتلفها أو كونها تقوم بتخزين جميع الحركات في المشروع ( بعد إجراء السابق كمحاولة طبعاً ) هذا ان صح تخميني ، والله أعلم
    1 point
  19. ممنون جداً استاذي العزيز @ابو جودي
    1 point
  20. لو القاعدة مافيها اسار ارفعها على ميديا فير . واشاء الله بنحلها . وممكن تقسم الجداول حسب حجمها الى قاعدتين أو أكثر باك ايند1 وباك ايند2 .............. وتربطهم بالقاعدة الأمامية . كما بالمرفق . Arciving-2.rar
    1 point
  21. يجب تقسيم قاعد البيانات الي قاعدة أمامية وبها النماذج وكل شئ والجداول عليها أسهم بجوارها . القاعدة الخلفية وبها الجداول فقط . من أعلى البرنامج أذهب الى (Database Tool) ثم (Access Database) ثم (Split Database) بيفتح مكان واسم القاعدة الخلفية وللحفظ أذهب لمجلد ملفك ثم (ٍSplit). Arciving-1.rar
    1 point
  22. فكرتك جميلة .. والحاجة هي ام الاختراع سأحاول تنفيذها .. فانتظرني
    1 point
  23. كلامك صحيح لكن بين وفتره والثانيه بأعمل تحديث للبرنامج ، وعند تحديث البرنامج عند المستخدمين بيفقدوا الترتيب اللي هم حافظينه وبعض المستخدمين بيستخدموا أكثر من جهاز فيضطر انه يعمل الترتيب اللي يحتاجه على كل جهاز عشان كذا أحتاج حل أحفظ لهم الترتيب في جدول يصير أقدر استرجع لهم الترتيب تلقائياً وفي أي وقت عن طريق اسم المستخدم
    1 point
  24. يمكنك البحث في جوجل عن aopr
    1 point
  25. ربما يرجع اختلاف الحل المقدم من الأخ الفاضل @محمد هشام. بسبب اختلاف فهم المطلوب أعتقد أن المطلوب * إن كان الاسم الموجود في ( أ) موجود في (ب) يتم كتابة نفس الاسم / وإذا لم يكن موجودا في (ب) يتم ترك الخلية أمامه فارغة (وهذا تم تنفيذه) * إن كان الاسم الموجود في (ب) غير موجود في (أ) يتم كتابة نفس الاسم من (ب) ويتم ترك الخلية أمامه في (أ) فارغة (وهذا لم يتم تنفيذه) بالتوفيق للجميع
    1 point
  26. اخي الكريم ما قدرت أتابع معك لإنشغالي بظرف طارئ في العمل ، إن شاء الله غداً سنحاول إيجاد حل . ولكن للموضوع صلة وشبه بالصلاحيات اعتقد. وهذا يعتمد على عدد النماذج والأعمدة طبعاً 😬.
    1 point
  27. وعليكم السلام ورحمة الله تعالى وبركاته لم استوعب الطلب جيدا لاكن على العموم تفضل جرب ووافينا بالنتيجة Sub Unique_Stores() Dim rng As Range, cRng As Range Dim cell As Range, Lastrow As Long Dim wsDest As Variant, s As String Dim cUnique As Collection Set WSData = ThisWorkbook.Sheets("aaa") 'عمود الفلترة Set rng = WSData.Range("L2:L" & WSData.Cells(WSData.Rows.Count, "L").End(xlUp).Row) Set cUnique = New Collection Application.ScreenUpdating = False Application.DisplayAlerts = False Application.CopyObjectsWithCells = False ' حدف الاوراق السابقة For Each ws In Sheets If ws.Name <> WSData.Name Then ws.Delete Next On Error Resume Next For Each cell In rng.Cells cUnique.Add cell.Value, CStr(cell.Value) Next cell On Error GoTo 0 ' انشاء اوراق جديدة For Each wsDest In cUnique s = wsDest Sheets.Add(After:=Sheets(Sheets.Count)).Name = wsDest ActiveSheet.DisplayRightToLeft = True With WSData Lastrow = .Cells(.Rows.Count, "L").End(xlUp).Row .Range("A2").AutoFilter field:=12, Criteria1:=wsDest ' النطاق المنسوخ Set cRng = .Range("A1:S" & Lastrow) cRng.Copy Sheets(s).Range("A2") .Select .[A2].AutoFilter End With Next wsDest '''''''''تنسيق الاوراق الجديدة ''''''' For Each wsCopy In ThisWorkbook.Worksheets If wsCopy.Name <> WSData.Name Then 'خلية اسم المخزن Set rng = wsCopy.[G1] rng = "المخزن" & "" & wsCopy.Name With rng .Font.Name = "Algerian": .Font.Size = 20: .Font.Color = vbBlue End With ' تنسيق الاعمدة For i = 1 To 19 wsCopy.Columns(i).ColumnWidth = WSData.Columns(i).ColumnWidth wsCopy.Rows(i).RowHeight = WSData.Rows(i).RowHeight ' التحقق من خطأ تنسيق الخلايا Application.ErrorCheckingOptions.BackgroundChecking = False Next '************************************************** ' لتسمية الاوراق باسم المخزن قم بتفعيل السطر التالي ' wsCopy.Name = rng '************************************************* End If Next wsCopy WSData.Activate Application.ScreenUpdating = True Application.CopyObjectsWithCells = True End Sub ترحيل البيانات حسب اسم المخزن.xlsb
    1 point
  28. وعليكم السلام ورحمة الله تعالى وبركاته تفضل اخي Private Sub CommandButton1_Click() With Sheets("main") LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row For J = 2 To LastRow If TextBox1.Text = .Cells(J, 1) Then Me.ListBox1.AddItem Cells(J, 2) 'Me.TextBox1 = Empty End If Next End With End Sub '******************************* Private Sub CommandButton2_Click() ligne = Me.ListBox1.ListIndex If ligne <> -1 Then Me.ListBox1.RemoveItem ligne End Sub 20231013 test.xlsm
    1 point
  29. جميل ابا جودي دائماً تتحفنا بما هو جديد ورائع حبذا لو تضيف زر التالي والسابق :: تحياتي
    1 point
  30. السلام عليكم ورحمة الله وبركاته.. بعد الإستفادة من مجموعة كبيرة من مواضيع المنتدى والإخوة الأعضاء جميعاً بدون الحصر ، أرجو ممن يهتم بإبداء رأيه حول مشروعي الأول ببرنامج محاسبي ( اتمنى ان يكون متكامل من حيث المحتوى والخدمة المقدمة ) .... رابط التحميل على ميديافاير إن لم يتعارض مع سياسة الموقع https://www.mediafire.com/file/0tti9if8w3p1zbz/Wisso_2023.zip/file البرنامج تم إنشاءه على أوفيس 2016 ارتأيت أن أضع المقال بموضوع منفصل حتى يتسنى لي الإستفادة من خبرة الكثيرين بنقاط الضعف ، أو إن غاب عني شيء أثناء التصميم.
    1 point
  31. بارك الله فيك استاذنا ابوجودي روعة جدا وكنا نتمنى وجدة من زمان لكن هذا مايعهد منك الابداع والتألق جزاك الله عنا خيرا
    1 point
  32. تجميع و دمج عده ملفات عمل اكسيل في ملف عمل واحد Acc: Mohamed ElSayed 24 مارس، 2020 اضف تعليق 1,217 زيارة دمج عده ملفات عمل اكسيل في ملف عمل واحد كثيرا من الاحيان نحتاج في اعمالنا اليوميه الي تجميع و دمج عده ملفات عمل اكسيل في ملف عمل لنتعامل مع ملف واحد بدلا من التعامل مع عده ملفات و في هذا المقال نستعرض طريقه عمل ذلك بضغطه زر عن طريق كود برمجي مهما كان عدد شيتات العمل الذي نحتاج الي اضافته تجميع و دمج عده ملفات عمل اكسيل في ملف عمل واحد في البدايه دعنا نتعرف علي طريقه عمل هذا الملف ثم نستعرض فكره عمل هذا الكود كي نتمكن من تطوير هذا الكود في اعمالنا فالاهم من مجرد تطبيق اي كود هو فهمه كي نستطيع التعامل مع هذا الكود خطوات العمل دعنا نبدا بنسخ الكود المرفق و فتح ملف الاكسيل الذي نريد اضافه اليه كل الشيتات الاخري ثم اضغط Alt + F11 او اضغط ضغطه بزر الماوس الايمن علي اسم الشيت ثم اختر view code ليفتح محرر الاكواد ثم اختر من قائمه insert اختر module ثم قم بلصق الكود بعد ذلك قم بالحفظ و اغلق محرر الاكواد ثم انتقل الي الاكسيل و قم باختيرا save as من خلال القائمه file و غير صيغه الملف file type الي اي صيغه تقبل الكود و ليكن الصيغه xlsm الصيغه excel Macro-Enabled Workbook هي صيغه تتيح حفظ الاكواد و الوحدات النمطيه و النماذج داخل شيت العمل و تاخذ الامتداد .Xlsm بعد ذلك قم بنسخ هذا الملف داخل مجلد فارغ و قم بعمل مجلد اخر داخل هذا المجلد الفارغ و قم باعده تسميه هذا الملف الي اسم test ثم قم بوضع كل الملفات المراد دمجها الي مجلد test الجديد ثم انتقل الي ملف العمل الموجود به الكود و افتحه اضغط علي macro من خلال القائمه view اختر CollectWorkbooks اسم الماكرو الذي قمنا باضافته عن طريق الكود بمجرد عمل هذا الكود ينتقل كافه شيتات العمل من المجلد test الي الشيت المفتوح بنفس الترتيب خلال ثواني Option Explicit ()Sub CollectWorkbooks 'تعريف متغير من النوع النصي و اعطيناه اسم '( path) Dim Path As String 'تعريف متغير من النوع النصي و اعطيناه اسم '(Filename) Dim Filename As String 'تعريف متغير من النوع ورقه عمل و اعطيناه اسم ' (SH) Dim SH As Worksheet ' تعريف المتغير لترتيب اوراق العمل بالترتيب الصحيح و قمنا بافتراض قيمه اسميه له 'x Dim X As Long 'افترضنا قيمه افتراضيه للمتغير x بقيمه 1 X = 1 'تعين المتغير ليحدد مسار الملفات المراد دمجها بجوار مسار الملف الاساسي داخل مخلد test كاسم افتراضي Path = ThisWorkbook.Path & "\Test\" 'تعين المصنف ليساوي اسم كل مصنف داخل ملف العمل و مسار ملف العمل بصيغه ملف اكسيل ماكرو كضيغه افتراضيه يمكنها حفظ كود العمل Filename = Dir(Path & "*.xlsm") 'الغاء خاصيه اهتتزاز الشاشه Application.ScreenUpdating = False 'الغاء خاصيه الرسائل التنبهيه Application.DisplayAlerts = False 'حلقه تكراريه لحذف ورقه ما عدا ورقه المسار For Each SH In ThisWorkbook.Sheets If SH.Name <> "Collector" Then SH.Delete Next SH 'حلقه تكراريه للمصنفات الموجوده في المسار المحدد الي ان يجد اي مصنف في هذا المسار Do While Filename <> "" 'فتح المصنف Workbooks.Open Filename:=Path & Filename, ReadOnly:=True 'حلقه تكراريه لكل اوراق العمل داخل المصنف النشط For Each SH In ActiveWorkbook.Sheets 'نسخ ورقه العمل و لصقها بنهايه فهرس اوراق العمل SH.Copy After:=ThisWorkbook.Sheets(X) 'زياده قيمه المتغير بمقدار 1 X = X + 1 'الانتقال لورقه العمل التاليه Next SH 'اغلاق المصنف Workbooks(Filename).Close 'اعاده ضبط المتغير Filename = Dir() Loop 'تنشيط او تحديد ورقه العمل الاولي Sheets("Collector").Activate 'تفعيل خاصيه التنبيه بالرسائل Application.DisplayAlerts = True 'تفعيل خاصيه اهتزاز الشاشه Application.ScreenUpdating = True End Sub حيث ان هذا الكود يقوم بعمل حلقه تكراريه علي اسماء الشيتات داخل المجلد test و البدا باول شيت ثم اعاده عمل حلقه تكراريه اخري جديده علي اسماء الشيتات الموجوده في هذا الشيت لنقلها بالترتيب و بعد الانهاء يقوم باغلاق ملف الاكسيل الاول و الانتقال الي الحلقه التكراريه الاولي لياخذ الملف التالي و يعود و يكرر نفس الحلقه التكراريه حتي ينتهي من كل ملفات الاكسيل داخل المجلد test و بعد الانتهاء تقف الحلقه التكراريه و يقف الكود تم وضع شرح للكود بكافه تفاصيله يمكنك مشاهده داله حساب ضريبه كسب العمل- داله مبرمجه في الاكسيل يمكنك مشاهده تحويل pdf الي ورد او اكسيل بدون برامج يمكنك مشاهده الطباعه في الاكسيل يمكنك مشاهده حمايه البيانات في الاكسيل قد يعجبك ايضا تصميم شيت اليوميه الامريكيه قد يعجبك ايضا شرح داله البحث الداله vlookup بالامثله و التطبيقات العمليه المصدر موقع المحاسب العربي https://acc-arab.com/2020/03/blog-post_24-2.html
    1 point
  33. هنا قاعدة بيانات اكواد VBA للاكسل مع الشرح والامثلة ((( مرجع للجميع ))) السلام عليكم ورحمة الله وبركاته الفكر من الموضوع عمل قاعدة بيانات باكواد VBA للاكسل مع الشرح والامثلة ((( تكون مرجع للجميع ))) امل من الجميع اثراء الموضوع ....
    1 point
  34. الاخ ياسر خليل أبو البراء اين حل الأخ سليم هل جربت ما تقول قبل الاعترض End_Row تحسب اخر صف به صيغ او معادلات وهو الصف 17 وليس اخر صف القيم الظاهره وهو الصف 11 اليك ملف تم تعديل العمود AA لتظهر قييمة في الخلية AI12 جرب ربما تغير رأيك واخبرني النتيجة هذا المرفق غير موجه للعضو x.rar
    1 point
  35. السلام عليكم ورحمة الله أخي الكريم، أكواد الطباعة والأزرار موجودة في الأصل ولم أقم إلا بتعديل طفيف على كود "طباعة كل الشهادات"، ثم ربط الأزرار بهذه الأكواد... أخوك بن علية الملف المرفق : ‫القالب - نسخة 2.rar
    1 point
  36. اللي فهمته انه عند الضغط على مفتاح اضافة يصير رقم الزيارة + 1 ، صحيح ؟؟ في حدث عند النقر لزر اضافة اضيفي اختي الكريمه هذا الكود بعد gotorecord Me.id = me.id+1
    0 points
×
×
  • اضف...

Important Information