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

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      15

    • Posts

      1,589


  2. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      6

    • Posts

      1,054


  3. حسونة حسين

    حسونة حسين

    أوفيسنا


    • نقاط

      3

    • Posts

      932


  4. الحلبي

    الحلبي

    04 عضو فضي


    • نقاط

      2

    • Posts

      595


Popular Content

Showing content with the highest reputation on 26 أبر, 2024 in all areas

  1. اسف اخي لم انتبه فعلا على العموم حل الاستاد حسونة سوف يلبي المطلوب بالتوفيق.
    2 points
  2. تفضل لان الخليه f3 بها تاريخ ظهر لك هذا الخطأ sNewFilePath = ThisWorkbook.Path & "\" & Replace(Range("F3").text, "/", "-") & ".pdf"
    2 points
  3. الله ينفع بك أستاذنا محمد هشام تم تعريف المتغيرات حتى لا تحصل مشاكل مستقبلية تم إضافة جزئية الحصول على مسار سطح المكتب للمستخدم الحالي بحيث ما تتعب مستقبلا في نقل الملف لكمبيوتر آخر Sub SaveBackup() Dim filePath As String Dim FolderName As String Dim copyName As String Dim ThisBook As Workbook Set ThisBook = ThisWorkbook ' هنا سيتم الحصول على مسار الجهاز filePath = Environ("UserProfile") & "\Desktop" FolderName = "BACKUPS" With Application .ScreenUpdating = False .DisplayAlerts = False copyName = filePath & "\" & FolderName & " " & Format(Now, "dd-mmmm-yyyy") If Dir(copyName, vbDirectory) = "" Then MkDir copyName ThisBook.SaveCopyAs copyName & "\" & ThisBook.Name & " " & _ Format(Now, "dd-mmmm-yyyy-HH-MM-SS") & ".xlsm" Application.OnTime Now + TimeValue("00:10:00"), "SaveBackup" .DisplayAlerts = True .ScreenUpdating = True End With End Sub
    2 points
  4. جرب هدا Private Sub TextBox1_Change() Set WS = Sheets("Sheet1") On Error Resume Next If WS.TextBox1.Text = Empty Then WS.[A8:L8].AutoFilter lr = WS.Cells(WS.Rows.Count, "L").End(xlUp).Row Clé = "*" & Replace(WS.TextBox1.Text, " ", "*") & "*" If WS.TextBox1.Text <> "" Then Set rng = WS.Range("A8:L" & lr) '****المفتاح***** rng.AutoFilter field:=12, Criteria1:=Clé '******* اظافة شرط بين تاريخين rng.AutoFilter field:=3, _ Criteria1:=">=" & CDbl(WS.[D4]), Operator:=xlAnd, _ Criteria2:="<=" & CDbl(WS.[F4]) Else WS.[A8:L8].AutoFilter End If End Sub Sub test() Dim desWS As Worksheet: Set desWS = Sheets("Sheet1") Dim dest As Worksheet: Set dest = printing Application.ScreenUpdating = False If Sheets("Sheet1").TextBox1.Text = "" Then Exit Sub rng = Application.WorksheetFunction.Subtotal(3, desWS.Range("L9:L10000")) If rng = 0 Then: MsgBox "لا توجد بيانات للحفظ", vbInformation, "تم إلغاء الإجراء": Exit Sub Set a = desWS.Range("A8", desWS.Range("A" & desWS.Rows.Count).End(xlUp)) ' For r = 1 To 11 لغاية عمود الملاحظات For r = 1 To 12 'مفتاح ' لغاية عمود Set a = Union(a, Intersect(a.EntireRow, a.Columns(r))) Next r Msg = MsgBox("؟" & " " & "PDF " & ":" & " تصدير التقرير بصيغة", vbYesNo, dest.Name) If Msg <> vbYes Then Exit Sub dest.Range("A3:L" & dest.Rows.Count).Clear a.Copy Destination:=dest.Range("A6") 'حفظ PDF Save_As_PDF2 On Error Resume Next desWS.AutoFilter = False Sheets("Sheet1").TextBox1.Text = "" Application.ScreenUpdating = True End Sub فلترة وحفظ PDF +EXCEL V2.xlsm
    2 points
  5. هل يمكن دمج السجلات بهذا الجدول كما بالصورة مرفق.accdb
    1 point
  6. لا أعتقد أن الحذف خطوة جيدة 🤔 إلا اذا كانت السجلات وبياناتها غير مهمة ومفيدة حسب المشروع. ثم ماذا لو كانت اكثر من سجلين 🧐 هل أيضاً سيتم الاستغناء عنها في حال كان احد الحقول غير فارغ مكرراً !!
    1 point
  7. على قددر علمي اقدم لكم هذه الهدية للتحكم فى خيارات العرض والتشغيل كما هو موضح فى الصورة المرفقة اضفت نموذج ارضية وشريط ادوات عائم يمكنتك تطويره يلاحظ ان خاصية autocompact معطلة فى كلا الحالتين يمكنك تفعيلها تقبلوها منى خالصة لوجه الله تعالى وارجوا امدادى بخصائص اخرى حبث انى حديث عهد باكسس ولا تنسوا التقييم والرأي ولفت نظرى لاى خطأ كلمة السر 123 يمكنك تعديلها dboptions.rar
    1 point
  8. ما شاء الله عليك أخي @طير البحر ، سأستمتع بلمساتك والتعديلات غداً إن شاء الله 🤗 بالنسبة لهذا الطلب فهو من صلاحيات الأساتذة - لا الحصر - أذكر منهم:- @Moosak و @jjafferr و معلمنا الفاضل اعاده الله من سفره سالما غانماً @ابوخليل ... والكثيرين الذين نسعد بوجودهم معنا من إدارة المنتدى 🥰.
    1 point
  9. رغم ان العنوان لا يمثل المطلوب وهذا مخالف لترتيبات وقوانين المنتدى ..... لكن بعد الدمج ماهو مصير السجل الثاني ( هل يحذف أم يبقى في الجدول ) .......
    1 point
  10. الأخ @اشرف السيد يوسف منذ ساعة وأنا انتظرك لما تنزل موضوع من اربع ساعات على الاقل كل ساعة ادخل اتفقد الوضع
    1 point
  11. انت حضرتك اشتريت بضاعة بالجملة عددها 30 قطعة وبعت منها 10 قطاعى كم يتبقى عندك وبعدين بعت 2 جملة كم يتبقى عندك بعد العملية الاولى والثانية (هذا هو الرصيد التراكمى) وهكذا بالنسبة لمرتجع الشراء والبيع
    1 point
  12. انا عارف ان حضرتك اجازة اليوم ولما تروح الشغل يكون لنا لقاء
    1 point
  13. ربما لو قمت بارفاق الملف سوف تكون الامور اوضح تفضل جرب Sub General() Dim LatR As Long: Dim sFile As String Set WS = ActiveSheet: sFile = [F3].Value On Error Resume Next LatR = Range("A:A").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row With WS .PageSetup.PrintArea = Range("A2:AF" & LatR).Rows.SpecialCells(xlCellTypeVisible).Address .VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 sNewFilePath = ThisWorkbook.Path & "\" .ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=sNewFilePath & sFile & ".pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End With Sheets("النتيجة2").Select End Sub TEST PDF.xlsb
    1 point
  14. جرب هدا Dim sFile As String sFile = Range("F3").Value sNewFilePath = ThisWorkbook.Path & "\" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=sNewFilePath & sFile & ".pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False مجرد تخمين ربما يفيدك Sub General() Dim LatR As Long: Dim sFile As String Set WS = ActiveSheet: sFile = [F3].Value LatR = Range("a:a").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row WS.PageSetup.PrintArea = Range("A2:AF" & LatR).Rows.SpecialCells(xlCellTypeVisible).Address WS.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1 sNewFilePath = ThisWorkbook.Path & "\" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=sNewFilePath & sFile & ".pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False Sheets("النتيجة2").Select End Sub
    1 point
  15. السلام عليكم ورحمة الله وبركاته وبها نبدأ عدل السطر الى sNewFilePath = ThisWorkbook.Path & "\" & Range("F3").text & ".pdf"
    1 point
  16. تمام .. اذا نفس الفكرة تابع وشاركنا أفكارك وخبرتك
    1 point
  17. نفس الفكرة ، إلا إذا اختلفت صلاحيات المسؤولين حينهم سيكون العمل أوسع بكثير ، طبعاً بالتسلسل حسب صلاحيات المسؤولين 🤔
    1 point
  18. للأسف لم أواجه مثل هذه المشكلة ، ولكن جرب حذف الأوفيس وإعادة تثبيته مرة أخرى ، عل المشكلة في التحديثات الجديدة 🤔 وجهة نظر
    1 point
  19. الخير والبركة فيكم يا صديقي.. طبعاً حسب ما تصورت الفكرة من كلامك سيكون هناك واجهة للجداول وتكون مشتركة بين المدير له واجهة نماذج والمسؤول 1 له واجهة اخرى . وكلاهما سيشترك في الجداول المخصصة له مع فكرة التنبيه لكل طرف منهم بوجود إشعار أو كتاب يحتاج للموافقة أو الرد .
    1 point
  20. من الجبد ولاثراء تامعرفة ان نعمل معا اشكر مجهودك
    1 point
  21. 1 point
  22. بانتظار هذا السؤال 😅 اخي المشروع ضخم الى حد ما مقارنة مع المتطلبات ، لذا يستلزم بداية إنشاء الجداول والنماذج والاستعلامات والتقارير والأكواد بلا شك . وقد يستهلك وقت كثير ، ولكن سأحاول بجهودك إنشاء الجداول أولا والتخطيط لذلك. ولكن غداً إن شاء الله سأحاول رسم الفكرة والبدء بتنفيذها معاك 😊
    1 point
  23. نعم تقدر أيضاً أعتقد ممكن تحقيق ذلك.
    1 point
  24. السلام عليكم دقة الشاشة عندي 1366*768 ونظام وندوز7 واكسس 2010 موقع الصورة مضبوطة جدا وتقع بالضبط اسفل اليمين
    1 point
  25. 😅 الإجابة على ما تفضلت به أخي @Zooro1 في السؤال ، هي نعم . أمااا في التفاصيل الباقية فهي ممكنة إلى حد ما .
    1 point
  26. وكملاحظة لم اقم بتعديلها وتركتها لك لاكتشافها 😉 1. إيقاف قوائم اكسيس ، وإيقاف القوائم المختصرة تعمل بالعكس 2. ستجد بعض رسائل الخطأ قد ظهرت وتحتاج الى تلافيها حسب الكود الخاص بك ، فلم أطلع كثيراً على تسلسل الأحداث في الأكواد بتمعن 😊
    1 point
  27. مليون شكر لأستاذ الفاضل هذا هو المطلوب ... أكرر شكرى
    1 point
  28. اخي الكريم @اشرف السيد يوسف ، قم بما يلي :- انشئ استعلام وقم باختيار الجدول Table1 ، ثم قم بإضافة جميع الحقول ( الاسم ، العمل1 ، العمل 2 ..... إلخ ) . ثم اعمل تجميع واجعل جميع الحقول MAX باستثناء حقل الاسم اتركه Group By. وهذا مثالك أيضاً مرفق.accdb 🤗
    1 point
  29. استاذي محمد هشام. ربنا يكرمك يارب على كرم حضرتك الكبيير ويارب يجعل ما تفعله في ميزان حسناتك .. الحمد لله عرفت اشغله حضرتك معلش والله أنا آسف اخر حاجة انا زهقتك معايا هل ممكن تحطلي البحث بالمفتاح في شيت الأنشطة بجانب البحث بتاريخ لان SHEET1 انا بحط فيه البيانات بتاعتي كلها بتاعة السنة لكن في شيت الانشطة ممكن ادور من تاريخ الى تاريخ أو ممكن استخدم المفتاح علشان ممكن ابحث مثلا على الانشطة المتعلقة مثلا بذوي الهمم التي تمت من تاريخ كذا الى تاريخ كذا وياريت طبعا عند التصدير مايظهرش عامود المفتاح وياريت حضرتك معلش كود عمل نسخة احتياطية كل عشر دقائق في D:/BACKUPS للملف كله محمد هشام. ربنا يحفظ حضرتك يا رب العالمين
    1 point
  30. اخي الكريم @طير البحر ، أرجو ان تقبل هذه التعديلات التي أجريتها والتي لم تمس الوظائف في مشروعك ، وإنما اعتبرها لمساتي بطريقتي المتواضعة 🤗 اولا تم توظيف كود Restart بحيث يتم تنفيذه اذا تم التعديل على الوظائف التي أشرت إليها بصورة 💡 - باستخدام ميزة الـ Tag - والتي تتطلب إعادة التشغيل للبرنامج وذلك بإضافة وظيفتين في نموذج dboptions واحدة عند الفتح والأخرى يتم استدعائها عند تنفيذ الزر تطبيق . فإذا لم يتم تغيير اي من هذه الوظائف التي تتطلب إعادة التشغيل فسيتم تطبيق كودك بشكل عادي كالسابق ، أما اذا تم تغيير اي قيمة فسيطلب منك اعادة التشغيل للبرنامج. بالاضافة الى اجراء إضافة بسيطة في مديول myoptions وذلك بتغيير قيمة gogo في الجدول وإعادتها إلى True في حال تم تغييرها الى False قبل تنفيذ إعادة التشغيل للبرنامج وذلك حتى لا يتم التأثير على عموم الكود الخاص بك . الق نظره واخبرني بالنتيجة 🤗 New_Options.accdb
    1 point
  31. ولا يهمك أخي @طير البحر ، إن شاء الله تعالى 🤗
    1 point
  32. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) اليوم جئتكم بفكرة جديدة وأعتقد أنه لم يسبقني أحد بهذا الطريق ؛ وهو إضافة اختيار واجهة اللغة إلى تطبيقات وبرامج ومشاريع الآكسيس بطريقة جديدة وتقدروا تقولوا 2024 في البداية سأقوم بشرح المطلوب داخل القاعدة التي سيتم التطبيق عليها ، أولاً :- جدول واحد فقط يحتوي على حقل واحد فقط أيضاً وسنسميه بـ SettingsTable ، والحقل الذي بداخله هو Language من نوع نصي ( Text ) . ثانياً :- نموذج Settings وهو طبعاً ليس له مصدر سجلات . وبداخله كومبوبوكس Combo box سيكون اسمه cboLanguage نوع مصدر بياناته Value List ؛ ومصدر بياناته القيم التالية ( "العربية";"English" ) . ثالثاً :- بجانب قاعدة البيانات سنقوم بإنشاء مجلد جديد وسيتم تسميته بـ Language . الآن خطوات العمل :- الموديول Module :- قم بإنشاء Module جديد وسمه بـ Set_Language ؛ وهو مفتاح العمل والذي من خلاله سنعتمد على جلب الترجمة من الملفات التي سنقوم بإنشائها لاحقاً . وهذا الكود مع الشرح الكامل له بين السطور . Option Compare Database Option Explicit ' المتغير العام لتخزين اللغة الحالية Public CurrentLanguage As String ' تحديث اللغة الحالية Public Sub UpdateLanguage() On Error Resume Next ' احصل على اللغة المحددة من جدول الإعدادات CurrentLanguage = DLookup("Language", "SettingsTable") ' قم بتحديث العلامات في جميع النماذج UpdateLabelsInAllForms End Sub ' تحديث العلامات في جميع النماذج Private Sub UpdateLabelsInAllForms() Dim frm As AccessObject ' تحديث العلامات في جميع النماذج المحملة For Each frm In CurrentProject.AllForms If frm.IsLoaded Then UpdateLabelsInForm Forms(frm.Name) End If Next frm End Sub ' تحديث العلامات في نموذج محدد Private Sub UpdateLabelsInForm(frm As Object) Dim arFile As String, enFile As String Dim arLabels() As String, enLabels() As String Dim i As Integer ' احصل على ملف اللغة العربية واللغة الإنجليزية arFile = GetLanguageFilePath("Arabic.txt") enFile = GetLanguageFilePath("English.txt") ' اقرأ الملفات واملأ المصفوفات بالنصوص المترجمة arLabels = Split(ReadFile(arFile), vbCrLf, -1) enLabels = Split(ReadFile(enFile), vbCrLf, -1) ' قم بتحديث العلامات في النموذج For i = 0 To UBound(arLabels) UpdateLabel frm, "Label" & CStr(i + 1), arLabels(i), enLabels(i) UpdateLabel frm, "Command" & CStr(i + 1), arLabels(i), enLabels(i) Next i End Sub ' احصل على مسار قاعدة البيانات الحالية Private Function GetDatabasePath() As String Dim dbPath As String dbPath = CurrentDb.Name GetDatabasePath = Left(dbPath, InStrRev(dbPath, "\")) End Function ' احصل على مسار ملف اللغة Private Function GetLanguageFilePath(fileName As String) As String GetLanguageFilePath = GetDatabasePath() & "Language\" & fileName End Function ' اقرأ ملف النص وارجع النص كنص نصي Private Function ReadFile(filePath As String) As String Dim fileNumber As Integer fileNumber = FreeFile Open filePath For Input As fileNumber ReadFile = Input$(LOF(fileNumber), fileNumber) Close fileNumber End Function ' تحديث علامة محددة في النموذج بناءً على اللغة الحالية Private Sub UpdateLabel(frm As Object, labelName As String, arabicText As String, englishText As String) On Error Resume Next ' قم بتحديث العلامة بناءً على اللغة الحالية frm.Controls(labelName).Caption = IIf(CurrentLanguage = "العربية", arabicText, englishText) On Error GoTo 0 End Sub * ملاحظة :- سنعتمد هنا على طريق بسيط جداً وهو المسميات في النماذج ، فمثلاً لو انشأنا زر في نموذج ما وكانت تسميته Caption هي حفظ وكان اسم الزر Command1 ؛ فعند الترجمة سيصبح كل زر في البرنامج باسم Command1 هو بمثابة زر الحفظ وستكون ترجمته Save ؛ لذا سنعتمد طريقة توحيد المسميات في النماذج وهذا سيجعل الأمر سهلاً جداً للصيانة ، وطبعاً لا يمكن أن يكون لعنصرين ( كائنين ) في النموذج لهما نفس الإسم . رابعاً :- العودة إلى نموذج Settings الذي تم التحدث عنه في النقطة ( ثانياً ) ؛ سنقوم بدايةً باستكمال إنشاء الأكواد الخاصة بتغيير اللغة ، قبل الأحداث للـ Combo Box والنموذج . سنقوم بإدراج هذه الأكواد الثلاثة البسيطة :- ' تحديث العناصر في النموذج بناءً على اللغة المختارة Private Sub UpdateLanguageForControls() On Error Resume Next Dim ctrl As AccessObject For Each ctrl In Me.Controls ' يمكنك هنا إضافة العناصر الأخرى التي تريد تحديثها بناءً على اللغة ' مثلا: If TypeOf ctrl Is ComboBox Then Next ctrl End Sub ' حفظ اختيار اللغة في جدول SettingsTable Private Sub SaveLanguageChoice() CurrentDb.Execute "UPDATE SettingsTable SET Language='" & Me.cboLanguage & "'" End Sub ' تغيير اللغة وتحديث العناصر ذات الصلة Private Sub ChangeLanguage(selectedLanguage As String) CurrentDb.Execute "UPDATE SettingsTable SET Language='" & selectedLanguage & "'" UpdateLanguageForControls End Sub وفي حدث عند الفتح للنموذج سنقوم بإدراج هذا الكود :- ' حدث يتم تنفيذه عند فتح النموذج Private Sub Form_Open(Cancel As Integer) UpdateLanguage End Sub وفي حدث عند التحديث للكومبوبوكس سندرج الكود التالي :- ' حدث يتم تنفيذه بعد تحديث اختيار اللغة من ComboBox Private Sub cboLanguage_AfterUpdate() Dim response As VbMsgBoxResult Dim Language As String ' احصل على اللغة المحددة من ComboBox Language = Me.cboLanguage.Value ' قم بتحديد الرسالة بناءً على اللغة المختارة If Language = "العربية" Then response = MsgBox("هل ترغب في تغيير اللغة إلى العربية؟", vbQuestion + vbYesNo, "التأكيد") ElseIf Language = "English" Then response = MsgBox("Do you want to change the language to English?", vbQuestion + vbYesNo, "Confirmation") End If ' قم باتخاذ الإجراء المناسب بناءً على رد المستخدم If response = vbYes Then SaveLanguageChoice Application.Quit Else SaveLanguageChoice DoCmd.Close End If End Sub الآن نأتي لأهم نقطة في هذا الموضوع ، ألا وهي . أين ستكون الترجمة ؟ طبعاً قمنا سابقاً بإنشاء المجلد Language بجانب قاعدة البيانات ، الآن سنذهب إليه وسنقوم بإنشاء ملفين نصيين Text الأول Arabic.txt ، والثاني English.txt . في الأعلى افترضنا انه لدينا في النموذج زر اسمه Command1 والـ Caption له كانت حفظ ، الآن سنقوم بكتابة المسمى بالعربي وهو حفظ في ملف النص Arabic ، وفي الملف الثاني English سنكتب Save وهو أول أمر قمنا به كتجربة ( لاحظ أن Command يتبعها الرقم 1 ) وعليه فأن أي مسمى Command1 في أي نموذج سيكون اسمه حفظ أو Save عند اختيار الإنجليزية . وفي النهاية سأترك مرفق يحتوي تطبيق لما تحدثنا به سابقاً . والمتابعة لأي استفسار أو توضيح Change Language.zip
    1 point
  33. بارك الله فيك استاذنا الجليل شحاته وجزاك الله كل خير على هذه الهدية الممتازة وشكراً لجهودكم الكريمة
    1 point
  34. شوف عزيز مثل اى برنامج بيع وشراء شراء 40 جملة يكون التراكمى 40 شراء 35 قطاعى يكون التراكمى 47 لان الـ 35 / عدد الوحدات وهى 5 يكون الناتج 7 بيع 7 جملة يكون التراكمى 40 بيع 5 قطاعى يكون التراكمى 39 عشان 5/5 تكون التيجة 1 مرتجع شراء 9 جملة يكون التراكمى 30 مرتجع شراء 5 قطاعى يكون التراكمى 29 عشان تحويل قطاعى الى جملة مرتجع بيع 3 يعنى (بالاضافة) يكون التراكمى 32 الشراء نضيف البيع نخصم ومرتجع بيع (نضيف) مرتجع شراء (نطرح) يعنى (الشراء - البيع - مرتجع الشراء + مرتجع البيع) وكله حسب الوحدة (جملة او قطاعى) / عدد الوحدات فى حالة القطاعى معلش كلام كثير لعلى اكون وصلت الفكرة
    0 points
  35. يبدو انه لا احد في المنتدي او انه مهجور
    0 points
×
×
  • اضف...

Important Information