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

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      38

    • Posts

      4991


  2. عبدالله بشير عبدالله
  3. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      15

    • Posts

      11651


  4. Moosak

    Moosak

    أوفيسنا


    • نقاط

      11

    • Posts

      2387


Popular Content

Showing content with the highest reputation since 07/16/26 in all areas

  1. بعد تجربة كل الواجهات مع سيكوال من سى شارب الى فيجول بيسك نت الى واجهات البايثون كلهم متجمعين لايساووا مرونة اكسس فى الاتصال والاستعلامات التمريرية وكنت لو اتمنى ان تسعى مايكروسوفت لتطوير اكسس كلغة ليناسب الويب بدلا من دعمها الدائم ل power apps
    6 points
  2. تفضل Public Function GetMissingArabicLetters(ByVal InputText As String) As String Dim strAlphabet As String Dim strOutput As String Dim i As Integer Dim char As String Dim inputLetters As Collection Dim missingCount As Integer ' الحروف العربية الأبجدية (الألف إلى الياء) strAlphabet = "ابتثجحخدذرزسشصضطظعغفقكلمنهوي" ' إنشاء مجموعة لتخزين الحروف الموجودة Set inputLetters = New Collection ' إضافة كل حرف عربي موجود في النص إلى المجموعة (منع التكرار) For i = 1 To Len(InputText) char = Mid(InputText, i, 1) If InStr(1, strAlphabet, char, vbBinaryCompare) > 0 Then On Error Resume Next inputLetters.Add char, char On Error GoTo 0 End If Next i ' بناء النتيجة بالشكل المطلوب (حرف، حرف، حرف) strOutput = "" missingCount = 0 For i = 1 To Len(strAlphabet) char = Mid(strAlphabet, i, 1) On Error Resume Next inputLetters.Item (char) ' محاولة الوصول إلى الحرف If Err.Number <> 0 Then ' إذا حدث خطأ فهذا يعني أن الحرف غير موجود If missingCount > 0 Then strOutput = strOutput & "، " ' فاصلة عربية + مسافة End If strOutput = strOutput & char missingCount = missingCount + 1 End If On Error GoTo 0 Next i ' النتيجة النهائية If missingCount = 0 Then GetMissingArabicLetters = "لا توجد حروف مفقودة" Else GetMissingArabicLetters = strOutput End If ' تنظيف الذاكرة Set inputLetters = Nothing End Function استدعيه بهذا الشكل Private Sub cmdExtract_Click() Me.txtOutput.Value = GetMissingArabicLetters(Me.txtInput.Value) End Sub
    5 points
  3. تم تعديله الكود بالاستعانة ب AI تفقيط معدل.xlsm
    4 points
  4. طيب .. رغم أن الطلب تم تحقيقه من خلال Data Validation ، ولكن هذا لا يمنع من تجربة الفكرة التالية من خلال الأكواد . حيث تم دمج الحدث عند التغيير للورقة من :- If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("B3:B3000")) Is Nothing Then With Target(1, 5) .Value = Date & " " & Time .EntireColumn.AutoFit End With End If ليصبح :- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Or Target.Row < 3 Then Exit Sub If Target.Column = 2 And Target.Value <> "" Then Target.Offset(0, 4).Value = Now If (Target.Column = 4 Or Target.Column = 5) And Trim(Me.Cells(Target.Row, "D").Value) = "بيع" Then Dim r As Long: r = Target.Row Dim itemCode As Variant: itemCode = Me.Cells(r, "B").Value Dim qty As Double: qty = Val(Me.Cells(r, "E").Value) If Not IsEmpty(itemCode) And qty > 0 Then Dim stockSheet As Worksheet: Set stockSheet = Worksheets("المخزن") Dim findCell As Range Set findCell = stockSheet.Range("B3:B800").Find(What:=itemCode, LookIn:=xlValues, LookAt:=xlWhole) If Not findCell Is Nothing Then Dim realAvailableStock As Double realAvailableStock = Val(stockSheet.Range("I" & findCell.Row).Value) + qty If qty > realAvailableStock Then MsgBox "• لا يمكنك إتمام عملية البيع هذه" & vbCrLf & vbCrLf & _ "• الصنــف: " & Me.Cells(r, "C").Value & vbCrLf & _ "• الرصيد المتاح حالياً: " & realAvailableStock & " قطعة" & vbCrLf & _ "• الكمية المطلوبة: " & qty & " قطعة", _ vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "تجاوز الرصيد" Application.EnableEvents = False Me.Cells(r, "E").ClearContents Me.Cells(r, "E").Select Application.EnableEvents = True End If End If End If End If End Sub ملفك بعد التطبيق :- مخزن 1.xlsb
    4 points
  5. اشكر اخى عبدالله بشير عبدالله على هذه الملاحظة وتم التعديل عليها دليل ميزات للمستخدمين والإدارة: وثيقة التحديثات الأمنية ومميزات واجهة تسجيل الدخول المحدثة تم تطوير وتحديث واجهة تسجيل الدخول البرمجية (Login Form) وتزويدها بحزمة من المزايا الذكية التي تضمن أعلى مستويات الأمان، الخصوصية، وسلاسة تجربة المستخدم (UI/UX). تلخص هذه الوثيقة أهم الإضافات البرمجية وفوائدها التقنية والتشغيلية: 1. الفحص الذكي للاتصال بالإنترنت (Active Connectivity Verification) الوصف الفني: يعتمد النظام على استدعاء دوال ويندوز السيادية (WinINet API) للتحقق الفعلي واللحظي من وجود اتصال إنترنت نشط بجهاز المستخدم قبل البدء في معالجة طلب استرجاع البيانات. فوائد العمل: منع الأخطاء البرمجية: يمنع تجمد أو توقف (Freeze) برنامج إكسيل عند محاولة فتح روابط خارجية في غياب الشبكة. توجيه ذكي للمستخدم: يظهر رسالة تنبيهية فورية وواضحة للمستخدم تفيد بأن "الإنترنت غير فعال" مع إيقاف الإجراء فوراً لتوفير الوقت والجهد. 2. التشفير والتخفي البصري للبيانات (Advanced Visual Masking) الوصف الفني: استخدام خاصية الحجب التلقائي PasswordChar لحقول البريد الإلكتروني ورقم الواتساب بمجرد استدعائها وعرضها على الشاشة لتظهر على هيئة رموز نجوم (***). فوائد العمل: حماية الخصوصية: يمنع المتطفلين أو المحيطين بالمستخدم من رؤية بيانات الأمان الحساسة المعروضة على الشاشة. كفاءة برمجية: التشفير بصري فقط على الواجهة؛ مما يعني أن النظام يقرأ ويكتب البيانات الحقيقية من وإلى قاعدة البيانات (شيت إكسيل) بسلاسة تامة ودون أي تعارض. 3. حماية البيانات ضد التعديل والتلاعب (Write-Protection & Locking) الوصف الفني: تطبيق خاصية القفل التام Locked = True على حقول الاسترجاع (البريد والواتساب) فور ظهورها على الشاشة. فوائد العمل: سلامة البيانات: منع المستخدم من الكتابة داخل هذه الحقول أو تعديلها أو مسحها بالخطأ، مما يضمن دقة البيانات المسترجعة. وضوح الرؤية: تضمن هذه الخاصية بقاء النصوص واضحة ومقروءة للمستخدم، على عكس خاصية الإلغاء الكامل (Enabled = False) التي تجعل الحقول باهتة وصعبة القراءة. 4. التنسيق البصري والديناميكي للواجهة (Dynamic UI Alignment) الوصف الفني: إعادة برمجة إحداثيات عناصر الشاشة (الخاصية .Top و .Height) لتتفاعل وتتمدد أوتوماتيكياً عند طلب استرجاع الحساب. فوائد العمل: مظهر احترافي ومتناسق: تم ترحيل زر اختيار لغة البرنامج chkLanguage وزر التذكر وزر الدخول إلى الأسفل بدقة متناهية فور تمدد الحقول، مما يمنع تماماً تداخل العناصر بصرياً ويحافظ على جمالية الواجهة. 5. دعم ثنائية اللغة الفورية (Instant Bilingual Support) الوصف الفني: نظام ترجمة مدمج يتفاعل لحظياً مع اختيار المستخدم للغة (العربية أو الإنجليزية). فوائد العمل: مرونة التشغيل: تترجم جميع العناوين، الحقول، الرسائل التنبيهية، وحتى نوافذ التأكيد فوراً بمجرد الضغط على خيار اللغة دون الحاجة لإعادة تشغيل البرنامج أو إغلاقه. 6. تدوين ومراقبة سجلات الدخول (Automated Security Logging) الوصف الفني: تفعيل نظام تدوين خلفي (سري) يقوم بتسجيل كل حركة دخول ناجحة أو خاطئة في شيتات مخصصة (Log_Success و Log_Failed). فوائد العمل: الرقابة والأمن: تتبع تفصيلي لعمليات الدخول يشمل (التاريخ، الوقت، اسم المستخدم، وعدد المحاولات)، مع حظر المنظومة وإغلاق الملف بالكامل تلقائياً عند تجاوز 3 محاولات خاطئة لحماية أرصدة وبيانات المنشأة. ملحوظة تم اضافة تسجيل المستخدمين سواء كان ادارة او موظفين مع تحديد مستوى المشاهدة والصلاحيات والرجاء من يريد المساهمة فى عمل المشروع لوجة الله تعالى يتفضل مشكورا لتعم الفائدة على الجميع هنا تم عمل شاشة دخول و تسجيل مستخدمين و تحويل يبن المخازن و جارى عمل فاتورة شراء TransferSystem 2027 - Copy - Copy.xlsm
    4 points
  6. اعرض الملف 😉👌 نتائج تحدي المبدعين 14 🏆🌹✨⭐ :: الاختيار المتعدد لفلترة بيانات التقارير :: 🌟 :: السلام عليكم ورحمة الله وبركاته :: تحدي جديد وإبداعات جديدة للأحبة في مجموعة الواتسأب مجتمع أكسس جروب 🙂 وموضوع التحدي هذه المرة : الاختيار المتعدد لفلترة بيانات التقارير :: فكرة التحدي :: لدينا قاعدة بيانات موظفين موزعين على عدة دوائر ونريد الخروج بتقرير عبارة عن قائمة للموظفين للدوائر التي يختارها المستخدم فقط . :: المطلوب :: تنفيذ آلية لعرض تقرير بقائمة موظفي (الدائرة / الدوائر ) المختارة فقط من صفحة التقارير، بحيث : - يمكن اختيار موظفي دائرة واحدة. - ويمكن اختيار أكثر من دائرة في نفس الوقت. - لا يشترط أن تكون الدوائر متتالية . - لك الحرية في تعديل نموذج التقارير واستخدام أي عنصر من عناصر الأكسس تراه مناسبا. :: النتائج :: كانت لدينا 6 مشاركات جميلة وبأفكار مختلفة من 4 مشاركين رائعين : - المهندس / أبو مازن الرازحي (مشاركة). - المهندس/ فادي - Foksh (مشاركتين). - الأستاذ/ أبو ناصر - AbuNassir (مشاركة). - المهندس/ موسى الكلباني (مشاركتين). :: صور المشاركات :: أبو مازن الرازحي : فادي - Foksh : 1 2 أبو ناصر - AbuNassir : موسى الكلباني : 1 2 :: مع تمنيتنا للمشاركين بالتوفيق والنجاح في دنياهم وأخراهم على هذه الإبداعات :: :: ودعواتنا للجميع بالفائدة والاستفادة من هذه الأفكار النيرة :: :: ولا تنسونا من صالح دعواتكم 🙂 :: ⭐ رابط الانضمام لمجموعة الواتسأب : https://drive.google.com/drive/folders/1Ku3j_1TBQ03M199RBAO86DqDcFKcgAk3?usp=drive_link ⭐ رابط جميع ملفات التحديات السابقة 🌟 : https://drive.google.com/drive/folders/1xOqWpWiLqKacPTG2MQDrohJp5DKDRTY2?usp=drive_link 🌸😊 كل التوفيق للجميع 😊🌸 صاحب الملف Moosak تمت الاضافه 08/15/26 الاقسام قسم الأكسيس  
    3 points
  7. حبايب قلبي عشاق برنامج الاكسس تم تحديث نظام lab الطبي نظام متكامل ونظراً لحجمه عملته لكم في رابط ما عليك الا تنزله وفك الضغط في قرص d كلمة المرور ١ حال عدم السماح بالدخول يرجع السبب الى اعدادات الماكرو لديك قم بالدخول الى خيارات من اي ملف اكسس مفتوح ثم إعداد الماكرو واعمل سماح بالتوفيق https://drive.google.com/file/d/1YDRRLchNAfArPzdS129nnpQlqJLHfL8M/view?usp=drivesdk
    3 points
  8. كررت التجربة والملف يعمل ولا يسمح باظافة اي كمية تتجاوز الموحود بالمخزن ولكن هناك سبب يجغل الرصيد في المخزن بالسالب عندما تكتب الكمية اولا ثم تختار توع الحركة بعدها هنا يتم قبول الكمية ولو كان الصنف انتهى من المخزن وهذه حلها الغاء خاصية تجاهل الفراغ حينها لا يقبل اي كمية سواء اخترت نوع الحركة اولا او اخر جرب الغاء الخاصية في ملف الاستاذ Foksh واليك ملف اخر بنفس فكرة Data Validation باستخذام عمود مساعد في العمود o بالرغم انني لا احبذ استخذم الاعمدة المساعدة وله نفس نتائج ملف معلمنا Foksh مخزن 1.xlsb
    3 points
  9. تم التعديل الكود حاليا يقوم بحذف اي صور من النطاق a2:v2 قبل ادراج الصورة الجديدة حتى لا تتراكم الصور فوق بعضها كذلك تم تعديل اسم الصورة ومكانها على الجهاز بحيث يمكنك احتيار اي صورة وباي اسم وباي امتداد من الجهاز ويمكنك اضافة اي امتداد اخر غير مدرج بالكود .Filters.Add "جميع الصور", "*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tiff" تم استتناء ورقة3-ورقة6 من ادراج الصور ويمكنك استتناء المزيد وذلك باظافة اسم الورقة بالكود من الجزء For Each ws In Worksheets If ws.Name <> "ورقة3" And ws.Name <> "ورقة6" Then ادراج صورة (2).xlsm
    3 points
  10. سيكون الحل بطريقتين حسب استخدامك للملف إذا كنت تقوم بفلترة العمود الأول (عمود1) يدوياً ليظهر فقط التواريخ من 8 إلى 11: استخدم المعادلة =SUMPRODUCT(SUBTOTAL(109; OFFSET(I8:I100; ROW(I8:I100)-ROW(I8); 0; 1)); --(H8:H100=E4)) وإذا أردت حصر الجمع تلقائياً بين تاريخين دون الاعتماد على الفلترة اليدوية استخدم المعادلة =SUMIFS(I8:I100; H8:H100; E4; G8:G100; ">=08-يوليه"; G8:G100; "<=11-يوليه") واليك المعادلتان في ملف واحد واختر ما يناسب طلبك جمع القيم لشخص مع الفلترة.xlsx
    3 points
  11. وعليكم السلام ورحمه الله وبركاته اتفضل لعله يكون المطلوب جدول ورديات.xlsm
    3 points
  12. أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. بعد البحث في المنتدى عن مواضيع تتحدث عن أداة تقوم بإنشاء شريط ريبون خاص بالمستخدم ، لم أجد سوى موضوع واحد ، ولكن بطريقة إلى حد ما تحتاج المهارة والتدخل اليدوي في إنشاء الشريط . لذا وبفضل الله تعالى وكرمه توصلت الى فكرة تفاعلية ومرنة إلى أبعد حد يخطر ببال المستخدم . 1️⃣ التعامل باللغتين العربية والإنجليزية كلغة واجهة الأداة . 2️⃣ إنشاء شريط تفاعلي يدعم المعاينة الفورية لشكل الشريط . 3️⃣ إمكانية استيراد ( فتح ) مشروع شريط ريبون محفوظ مسبقاً . 4️⃣ إمكانية تعيين وظائف عامة من آكسيس أو خاصة باستدعاء دوال خاصة بمشروعك . 5️⃣ التحكم التام والكامل والمرن بأيقونات الأزرار ومسمياتها . 6️⃣ التحكم بعرض / إخفاء تبويبات آكسيس الأفتراضية . 7️⃣ التحكم بالقوائم المختصرة الإفتراضية لآكسيس . 8️⃣ عرض كود XML للشريط الذي يتم انشاؤه . 9️⃣ إمكانية دمج الأداة كوظيفة أساسية في آكسيس Add-ins . 🔟 إمكانية تصدير الشريط عند تصميمه إلى قاعدة بيانات أخرى ، أو القاعدة الحالية لمشروعك . 1️⃣1️⃣ دعم عرض الشريط بالإتجاهين من اليمين لليسار - من اليسار لليمين . دعم نسخ آكسيس العربية الواجهة . 1️⃣2️⃣ إضافة المكونات الخاصة بالشريط من خلال قائمة منسدلة . حيث المكونات هي ( تبويب ، مجموعة ، فاصل داخل المجموعة نفسها ، زر ، مربع تسمية ) وسيتم شرحها لاحقاً . 1️⃣3️⃣ إمكانية نقل وتحريك المكونات داخل الشريط من خلال السحب والافلات . 1️⃣4️⃣ إمكانية تحديد مفتاح اختصار للتنقل بين المكونات ، من خلال النقر على مفتاح Alt + الحرف الذي تم تحديده للعنصر . 1️⃣5️⃣ إمكانية إعادة تسمية أي عنصر أثناء تصميم الشريط بسهولة من خلال قائمة مختصرة سريعة ، أو من خلال مربعات نص الخصائص . 1️⃣6️⃣ إمكانية حذف أي عنصر أثناء التصميم بسهولة أيضاً من خلال قائمة مختصرة سريعة ، أو من خلال مربعات نص الخصائص . 1️⃣7️⃣ دمج سليم وبرمجي للأيقونات التي تم تخصيصها للأزرار داخل قاعدة البيانات بحيث تعمل معك في أي جهاز دون أي مشاكل . 1️⃣8️⃣ إمكانية إضافة تلميح لوظيفة أي عنصر داخل الشريط . 1️⃣9️⃣ إمكانية حذف شريط الريبون من قاعدة بياناتك بسهولة وسلاسة . 2️⃣0️⃣ إمكانية حذف مشروع شريط ريبون كامل من سجلات الأداة ، لتلافي التراكم والفلترة . والمزيد من الخصائص والوظائف المدمجة في الأداة ، التي ستتمتع باكتشافها بنفسك عزيزي القارئ . 📸 صور من واجهة الأداة باللغتين العربية والإنجليزية :- ♻ كيف تعمل الأداة ؟ أنشئ مشروع جديد ، وحدد اسمه كما ترغب . قم بالنقر مرتين على اسم المشروع الذي تم ادراجه في قائمة المشاريع المحفوظة . من القائمة المنسدلة "إضافة عنصر جديد الى الشريط" ، اختر تبويب لإضافة تبويب جديد . ثم غير اسم التبويب كما تريد . كمثال "Home" - "الرئيسية" ... إلخ . انقر على التبويب بعد تغيير اسمه لتحدده ، ثم قم بإضافة "مجموعة" . وأيضاً حرر اسم المجموعة كما تريد . مثال "التقارير" . وحدد الخصائص التي تريدها لها . انقر على اسم المجموعة الجديدة التي أضفتها ، ثم قم بإضافة زر جديد داخل المجموعة . وأيضاً حدد خصائصه كما تريد . مثل اسمه وأيقونته ، أو حتى مفتاح اختصاره السريع ، أو حتى الحدث المخصص له ... وهكذا لبقية العناصر . وفيما يلي شرح مصور بسيط لآلية العمل بشكل كامل من الألف إلى الياء . فيديو توضيحي لطريقة الاستخدام بشكل سريع .. ملف الأداة للتحميل للإصدار 64 :- Ribbon Builder.zip ملف الأداة للتحميل للإصدار 32 :- Ribbon Builder - 32.zip الملف المستخدم للتجربة هو من أحد المشاريع في المنتدى ، من باب التجربة ليس إلا ..
    2 points
  13. الذي فهمته من ردك الاخير انك تريد حماية A2&C2 فقط من التعديل وترك B2 قابل للتعديل والعمل سيكون على هذا الصف فقط المعادلة تنض غلى اذا كان تاريخ العمولة (B2) اقل من التاريخ الثابت (A2) تكون النسبة 50% وان كانت اكبر 100% اذا كان العكس غير علامة < الى > الخليتان محميتان بدون كلمة مرور تحياتي حساب النسبة المئوية.xlsx
    2 points
  14. أضف إلى ذلك أيضاً حرف "ئ ، ى ، ؤ ، ء" الألف المكسورة وغيرها أو حتى التاء المربوطة أو الهاء المربوطة .. فمثلاً ، كم حرف لم يأت ذكره في الآية الكريمة :- وعلى الله فليتوكل المؤمنون
    2 points
  15. سؤال ولو فيه نوع من التطفل اخي @zozzz بارك الله فيكم ماذا عن هذه الحروف "أ", "إ", "آ" اليس المفروض احتسابها على انها ا ام ماذا ؟ اشكرك على سعة صدرك ... لاني لا اعلم بطبيعة عمل برنامجك ولكن من باب الفائدة فقط
    2 points
  16. وعليكم السلام ورحمة الله وبركاته اهلا بك جرب هذا Private Sub cmdExtract_Click() Dim strInput As String Dim strAlphabet As String Dim strOutput As String Dim i As Integer Dim char As String Dim inputLetters As Collection Dim missingCount As Integer strAlphabet = "ابتثجحخدذرزسشصضطظعغفقكلمنهوي" strInput = Me.txtInput.Value Set inputLetters = New Collection For i = 1 To Len(strInput) char = Mid(strInput, i, 1) If InStr(1, strAlphabet, char, vbBinaryCompare) > 0 Then On Error Resume Next inputLetters.Add char, char On Error GoTo 0 End If Next i strOutput = "" missingCount = 0 For i = 1 To Len(strAlphabet) char = Mid(strAlphabet, i, 1) On Error Resume Next inputLetters.Item (char) If Err.Number <> 0 Then If missingCount > 0 Then strOutput = strOutput & "'، '" End If strOutput = strOutput & "'" & char & "'" missingCount = missingCount + 1 End If On Error GoTo 0 Next i If missingCount = 0 Then Me.txtOutput.Value = "لا توجد حروف مفقودة" Else Me.txtOutput.Value = strOutput End If Set inputLetters = Nothing End Sub
    2 points
  17. اقترب موعد إطلاق النسخة الأولى من أداة صانع شريط الريبون 😎 كونوا على الموعد .. قريباً ⏳
    2 points
  18. هذا هو الحل المنطقي ولكن ولأن الأخ أحمد في ظل الأمر الواقع فلماذا لا نصل لهذه النتيجة بطريقة أخرى؟ قمت بإرفاق المثال بعد إنشاء إستعلام توحيدي يضم الثلاثة الجداول مع إضافة حقل (داخل الإستعلام) بإسم ClassNo يتم فيه إضافة رقم الصف لكل جدول وجعلت هذا الإستعلام هو مصدر بيانات التقرير ثانيا من زر أمر فتح التقرير لكل نموذج قمت بإضافة معيار رقم الصف لتصفية بيانات التقرير مثلاً في النموذج الأول سيصبح معيار التصفية كالتالي ClassNo=1 And onlyyou=true ثالثاً بإستخدام دالة Choose قمت بكتابة رقم الصف في التقرير لا أعلم إذا كان هذا الحل سيناسب أخونا @أحمد العيسى أم أن هناك مشاكل أخرى ستظهر عنده؟ ملاحظة أخيرة : جدول الصف الثالث لم يحتوي على الحقول (Address + Work_father + Telephone) لذلك قمت بإضافتها في الإستعلام مع تعيين قيم فارغة لها تحياتي db.mdb
    2 points
  19. للتوضيح ، حيث ما تم تعديله أنه عند القيام بعملية بيع ، تقوم المعادلة حالياً بإعادة إضافة الكمية المكتوبة حالياً إلى الرصيد المحسوب في ورقة المخزن ، فيسترجع التحقق من الصحة الرصيد الفعلي المتوفر قبل إدخال الحركة الحالية وتكتمل العملية بنجاح عند إدخال 5 أو 4 أو أي رقم ضمن حدود الرصيد المتوفر . عذراً على التأخر في اكتشاف الخلل .. والشكر موصول للأستاذ @عبدالله بشير عبدالله على مشاركته وملاحظاته معنا .
    2 points
  20. وعليكم السلام جرب الكود المعدل بالملف تغيير لون الخلايا المحدده بالماوس من خلال اليوزر فورم_085825.xlsm
    2 points
  21. وعليكم السلام ورحمة الله وبركاته الكود المرفق يقوم :- بالغاء حماية الشيتات المستهدفة 123 ثم يتم اظهار الصفوف 1-2 ثم يمسح الصور السابقة بعد ادراج الصور يتم اخفاء الصفوف1-2 ثم حماية الصفحات من جديد 123 استبدل الكود السابق بهذا تم تجربة الكود على 28 صفحة في حدود 3 الى 4 ثانية Private Sub CommandButton13_Click() Dim ws As Worksheet Dim Pic As Shape Dim shp As Shape Dim rng As Range Dim fd As FileDialog Dim imgPath As String Dim i As Long Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .Title = "اختر الصورة المراد إدراجها" .Filters.Clear .Filters.Add "جميع الصور", "*.jpg; *.jpeg; *.png; *.bmp; *.gif; *.tiff" .AllowMultiSelect = False If .Show = -1 Then imgPath = .SelectedItems(1) Else Exit Sub End If End With Application.ScreenUpdating = False On Error Resume Next Application.CommandBars.FindControl(ID:=549).Execute On Error GoTo 0 For Each ws In Worksheets If ws.Name <> "قائمة" And ws.Name <> "مخزن" Then On Error Resume Next ws.Unprotect Password:="123" On Error GoTo 0 ws.Rows("1:2").Hidden = False Set rng = ws.Range("A2:V2") For i = ws.Shapes.Count To 1 Step -1 Set shp = ws.Shapes(i) If shp.Type = msoPicture Or shp.Type = msoLinkedPicture Then On Error Resume Next If Not Intersect(shp.TopLeftCell, rng) Is Nothing Then shp.Delete End If On Error GoTo 0 End If Next i Set Pic = ws.Shapes.AddPicture( _ Filename:=imgPath, _ LinkToFile:=msoFalse, _ SaveWithDocument:=msoTrue, _ Left:=rng.Left, _ Top:=rng.Top, _ Width:=rng.Width, _ Height:=rng.Height) With Pic .LockAspectRatio = msoFalse .Placement = xlMoveAndSize End With ws.Rows("1:2").Hidden = True ws.Protect Password:="123" End If Next ws Application.ScreenUpdating = True MsgBox "تم إدراج الصورة بنجاح!", vbInformation, "تم بنجاح" End Sub كما يمكنك الغاء اكوادالحماية وغيرها من ملفك لانها اصبحث من صمن الكود السابق
    2 points
  22. السلام عليكم ورحمة الله وبركاته من خلال التجربة لملف Data Validation الاول - طلب السائل الكريم يتحقق مع تعديل النمط الى ايقاف كما تصحته في مشاركة لاحقة ولا اعتقد انه يمكن اظافة اي جديد اكثر مما تم عمله هذا حسب اعتقادي والله اعلم تحياتي لكما
    2 points
  23. و عليكم السلام ورحمة الله و بركاته تفضل الملف. ملحوظة تم تعديل الاسماء و أرقام الاقامة لان من غير المنطقي أن تكون كل البيانات متشابهة تماما ماعدا رقم اللوحة مما يفقد البحث بالاسم أو رقم الاقامة فائدته فواز_معدل_للبحث_محدث (2).xlsx
    2 points
  24. يمكننا الإنتظار مشاركات جديدة .. فلا تستعجل بإغلاق الموضوع باختيار الإجابة 🙂
    2 points
  25. وعليكم السلام ورحمه الله وبركاته
    2 points
  26. 2 points
  27. السلام عليكم ورحمة الله وبركاته تحياتي لك ولاستاذنا Foksh مشكلة الملف به امتددان ادراج صورة.xlsm.xlsx بحذف الامتداد xlsx يعمل الملف لاظافة الخاصية المطلوبة اولا يجب حذف كلمة Private ليصبح اسم الكود Sub Comm() ثانيا يجب أن تكون الصورة موجودة بالفعل داخل القرص D بهذا الاسم بالضبط (عنوان.jpg) ثالتا امتداد الملف هو jpg وليس png أو jpeg؛ لأن عدم تطابق الامتداد سيتسبب في ظهور خطأ عند تشغيل الكود. في حال تغير مكان الضورة او امتدداها قم بالتعديل بالكود اليك الكود بعد اظافة الخاصية xlMoveAndSize نقل الخلايا وتغيير حجمها Sub Comm() Dim ws As Worksheet Dim pic As Object For Each ws In Worksheets Set pic = ws.Pictures.Insert("D:\عنوان.jpg") pic.Placement = xlMoveAndSize Next ws End Sub ادراج صورة.xlsm
    2 points
  28. أخواني وأساتذتي ومعلمينا ( دون استثناء ) أشارككم في هذا الموضوع أداة بسيطة وفعالة قمت بتطويرها لأغراض إنشاء واستعادة نسخ احتياطية من قواعد بيانات اكسيس . ✔️ الهدف الأساسي من الأداة هو توفير طريقة مرنة وآمنة لأخذ نسخ احتياطية من الجداول المهمة بشكل دوري أو عند الحاجة ، وتسهيل استعادتها لاحقاً بنفس البنية والبيانات . صورة من واجهة الأداة :- الواضح من الواجهة ، أن الأداة ستمكنك من :- أولاً :- إنشاء نسخة احتياطية ضمن الإعدادات التي تحددها في زر "خيارات الحفظ" . عند النقر عليه ستجد هذه الإعدادات في الصورة .. مسار الحفظ للنسخ الإحتياطية سيكون فقط في المجلد Backup في المجلد الرئيسي Data الموجود بجانب قاعدة البيانات . نوع الملحق سيكون MDB و DAT . وهما النوعين الأكثر شمولاً واستخداماً في جميع الأفكار التي لها نفس الوظيفة . عدد النسخ التي ستحتفظ بها هو فقط ما تحدده . وسيتم حذف النسخ الأقدم تباعاً . بإمكانك تحديد كلمة مرور لحماية قاعدة بيانات الجداول . ولا ننصح بتغييرها لكل نسخة كي لا تتوه وتفقد بياناتك . إمكانية النسخ التلقائي حسب عدد الأيام أو الساعات الي تريد أخذ نسخة تلقائية فيه . ثانياً :- إنشاء نسخة احتياطية لجداول تقوم بتحديدها - ولك حرية اختيار الجداول في كل نسخة - حيث أنها لن تؤثر على سير عملية الإسترجاع لاحقاً . انظر الصورة للتوضيح :- على اليمين تظهر أسماء الجداول في القاعدة الحالية ( مرتبطة أو محلية ) . ولك الحرية باختيار جداول محددة بالنقر المزدوج على الجدول ، أو تحديد الكل / إلغاء الكل . حسب حاجتك . ثالثاً :- الأزرار كما هي في صورة واجهة الأداة ، تشير إلى :- زر "حفظ نسخة إحتياطية جديدة" :- لإنشاء نسخة إحتياطية حسب الإعدادات اتي تم تحديدها . زر "تحديث بيانات النُسخ الإحتياطية" :- لإعادة ترتيب السجلات في الجدول حسب النسخ الموجودة في مجلد انسخ الإحتياطي . زرا "نُسخ محددة" و "كافة النُسخ" :- لحذف محدد أو لجميع النسخ الإحتياطية . زر "إنشاء" في قسم "نسخة خاصة" :- مخصص لإنشاء نسخة خاصة في مكان يقوم المستخدم بتحديده وليس ضمن المسار المحدد في الإعدادات ، وبإسم متغير كيفما يريد . زر "استرجاع" في قسم "نسخة خاصة" :- مخصص لإسترجاع نسخة يقوم المستخدم بتحديدها بشكل يدوي من خلال مربع حوار اختيار ملف . زر "استرجاع" في قسم "استرجاع النسخة رقم" :- مخصص لاختيار نسخة محددة برقمها . حيث تظهر النسخ التي تم أخذها إحتياطياً ، في أعلى جزء النموذج والتنقل بينها من خلال الزرين < > . رابعاً :- في هذا الإصدار ( V1.0 ) من الأداة على عدم الإعتماد على أي مكتبات خارجية أو من مكتبات أكسيس . حيث تمت التجربة على إصدارات اكسيس ( 2010 فما فوق ) . Backup 2025 - V1.0.accdb.zip :- دائماً يسعدني إبدائكم الرأي والملاحظات حول الأخطاء والمشاكل التي يمكن مواجهتها في أي مشروع يتم تأسيسه في آكسيس أو غيره من لغات البرمجة . أولاً تأكد من وجود جدولي الأداة ( USysMyCopies و USysOptCopies ) عند نسخها الى مشروعك . مع العلم أنها مخفية كجداول نظام ، ويمكنك إظهارها كما في الصورة التالية :- ثانياً ، قم بالدخول الى خيارات الحفظ ، والنقر على زر "انقر لضبط مسار مجلد الحفظ بشكل آلي" لضبط وتحديد مسار مجلد الحفظ الرئيسي . فقط لأول مرة .
    2 points
  29. و عليكم السلام و رحمة الله و بركاته دالة الترحيل كانت موجودة لكن فيها خطأ برمجي (كانت تجلب دائمًا نفس الصنف الأول لكل الصفوف)، بالإضافة لخطأين آخرين: اسم الزبون والتاريخ كانا يسحبان من أعمدة خاطئة. كما أن دالة tafket() المستخدمة للتفقيط غير موجودة أصلاً في الملف (دالة خارجية غير معرفة، لذلك كانت تظهر كخطأ). جرب الملف المرفق الفاتورة(2).xlsx
    2 points
  30. و عليكم السلام ورحمة الله و بركاته هذا الملف من روائع العلامة خبور و هو ملف تعليمي فارغ و لذلك مذكور كلمة السر صراحة و هي 1 و به امكانية حذف الحماية أيضا
    2 points
  31. وعليكم السلام ورحمة الله 🙂 بل التحدي على المتصفح القديم .. وكان التحدي الأكبر هو كيف تجعل المتصفح القديم يفتح الصفحات المصممة بالتقنيات الحديثة Html, Js , Css وأنت تعلم بإن المتصفح القديم لا يدعم ذلك !! ولكن بفضل الله تم كسر هذا القيد (بمساعدة أبو الشباب AI طبعا )
    2 points
  32. الامر له علاقة باضدار الاوفيس ونظام 64 بت جرب التعديل التالي عبارة ترحيبية.xlsm
    1 point
  33. تعتمد ميزة اقتراحات التصميم (Designer) على محتوى الشريحة، مثل النصوص والصور، ثم تقدم اقتراحات تصميم مختلفة يمكنك اختيار الأنسب منها، مما يوفر الوقت ويساعدك على الحصول على تصميم جذاب دون الحاجة إلى بناء التخطيط من الصفر. كيفية الاستخدام: أنشئ شريحة جديدة وأضف إليها المحتوى، مثل العنوان والنص أو الصور. انتقل إلى تبويب الشريط الرئيسي (Home) واختر اقتراحات التصميم (Designer). ستظهر لوحة جانبية تحتوي على مجموعة من اقتراحات التصميم. اضغط على التصميم الذي يعجبك لتطبيقه مباشرة على الشريحة. يمكنك تجربة عدة اقتراحات حتى تصل إلى التصميم الأنسب لمحتوى الشريحة. 💡 نصيحة: لا تتعامل مع اقتراحات التصميم (Designer) على أنه مصمم يقوم بكل شيء نيابةً عنك، بل اعتبره مصدرًا للأفكار والإلهام. إذا لم يعجبك الاقتراح الأول، جرّب تغيير ترتيب المحتوى أو إضافة صورة مناسبة، ثم راجع الاقتراحات مرة أخرى؛ فقد تظهر لك تصاميم مختلفة تمامًا.
    1 point
  34. بعد إذن أخي @Foksh كنت قد قمت بالرد على الطلب في المرة السابقة (يبدو أنه تم حذف الموضوع السابق وأعيد نشره هنا) عموماً كان ردي على النحو التالي : يجب علينا معرفة أنه عند إجراء عملية حسابية بين حقلين لكلا منها نوع بيانات مختلف فإن أكسس يقوم بإعطاء الناتج النوع الأقوى بين الإثنين أو نوع أقوى من الإثنين ومن خلال المثال المرفق سابقاً فإن نوع الحقل Quantity كان (صحيح طويل أو Long Integer) وحقل Price كان (فردي أو Single) لذلك فقد قام الأكسس بجعل ناتج ضرب الحقلين من النوع (مزدوج أو Double) ولتوضيح معنى كلامي قمت بإرفاق المثال بعد أن أضفت إليه نموذج جديد أضفت فيه أربعة مربعات نص يتم فيها ضرب الحقل Quantity في الحقل Price أول مربع نص Auto يوضح ناتج الضرب كما هو الحال في مثالك (وفيه سيتم تحويل نوع البيانات آلياً من قبل أكسس) ومربع النص الثاني قمت فيه بتحويل الناتج إلى نوع البيانات مزدوج وفي الثالث حولته إلى صحيح طويل والرابع إلى فردي وسنلاحظ أن مربع النص المحول إلى مزدوج سيطابق ماتم تحويله آلياً وهذا يعني أن أكسس هو من قام بتحويله إلى مزدوج والذي بعده ولأني حولته إلى عدد صحيح فقد قرب الكسور إلى أقرب رقم صحيح وآخر مربع نص والذي حولناه إلى فردي فقد طابق النتيجة التي تريد الوصول لها إذا في الأخير فإن أمامك حل من إثنين - إما أن تقوم بتحويل النتيجة إلى نوع رقم فردي كما هو موضح في النموذج الذي قمت بإضافته في الثال المرفق - أو أن تقوم بتغيير نوع الحقل Quantity إلى (فردي أو Single) تحياتي برنامج الفواتير سيرفس الجديد 2026 02-08-2026 (1).accdb
    1 point
  35. الخبراء الافاضل بعد التحية اشكركم شكر خاص على مساعدتكم لى فى كل مرة احتاج لكم فيها
    1 point
  36. الله ينور استاذنا الكريم وهذا هو المطلوب بالفعل ..بارك الله فيك وأكرمك الله فى الدارين واسف جدا على تعب حضرتك معايا وشكرا جزيلا لهذا المجهود العظيم , اللهم وسع فى رزقك
    1 point
  37. ما تم تعديله على الملف :- عمود الوارد H (إجمالي المشتريات) في ورقة المخزن :- =SUMIFS('الحركات اليومية'!$E$3:$E$800,'الحركات اليومية'!$B$3:$B$800,$B3,'الحركات اليومية'!$D$3:$D$800,"شراء") عمود الصادر G (إجمالي المبيعات) في ورقة المخزن :- =SUMIFS('الحركات اليومية'!$E$3:$E$800,'الحركات اليومية'!$B$3:$B$800,$B3,'الحركات اليومية'!$D$3:$D$800,"بيع") في ورقة الحركات اليومية تم ضبط Data Validation للعمود E ليصبح :- =OR($D3="شراء",$E3<=VLOOKUP($B3,المخزن!$B$3:$I$800,8,FALSE)) أيضاً في الـ Data Validation تم ضبط رسالة الخطأ لتصبح :- أيضاً في الخلية C3 في ورقة الحركات اليومية ، تم ضبط الخلية لتجلب اسم الصنف تلقائياً من خلال المعادلة :- =IFERROR(VLOOKUP(B3,المخزن!$B$3:$C$800,2,FALSE),"") الآن جرب ملفك بإدخال حركة شراء لصنف معين ، وحركة بيع لهذا الصنف ، ولاحظ عملية تحديث الرصيد له في ورقة المخزن . ومن ثم جرب ادخال حركة بيع لكمية أكبر من رصيد الصنف هذا وراقب النتيجة . الملف جربه علي أكون قد وُفقت في تعديلاتي البسيطة مخزن 1.xlsb
    1 point
  38. وعليكم السلام ورحمة الله وبركاته .. هل الصورة التالية كنتيجة صحيحة ؟؟ إن كانت النتيجة صحيحة ، فالمعادلة :- =IF(C3="","",IF(I3<=0,"نفذ المخزون بالفعل",IF(I3<=3,"أوشك المخزون على النفاذ",""))) طبعاً هذا إذا كان منطقك التجاري هو: الرصيد ≤ 0 :- نفذ المخزون بالفعل الرصيد من 1 إلى 3 :- أوشك المخزون على النفاذ الرصيد أكبر من 3 :- لا تعرض شيئاً = فارغ
    1 point
  39. استاذنا الفاضل دا ملف فيه المطلوب ارجو ان اكون وفقت جمع القيم لشخص مع الفلترة.xlsx
    1 point
  40. وعليكم السلام ورحمة الله وبركاته اليك التعديل والكود في الملف المرفق تلقائي حيث يتم استدغاؤه بدل كتابة الكود بالكامل وكذلك بزر مرتبطا بزر جلب البيانات اعتقد ان الكود اسرع ويحتاج الامر منك الى التاكد من النتائج لانه يوجد العديد من الاوامر بالكود الاصلي تحتاج الى وقت للتاكد من النتائج في حالة عدم توافق النتائج ارجو تحديد الجزء او الاجزاء الغير متوافقه مع تحديد الحلايا والشيتات في انتظار تنتائج تجربتك للكود شهادات1.xlsb
    1 point
  41. فكرة جميلة ، وقد تكون من الإضافات التي يمكن للمطور تحوير الفكرة الأساسية من الأداة ليطوعها كيفما يريد . كفكرة القائمة المختصرة المؤقتة او المقرونة بنموذج او تقرير محدد. ولكن بحكم أن الأداة حالياً ما زالت قيد الإنشاء و التطوير ، فقد أقوم بتمكين المستخدم لها بإن يقرر إظهار / إخفاء أشرطة آكسيس الأساسية عند تصديره للشريط بعد بناءه الى قاعدة بياناته الشخصية.
    1 point
  42. لفتة جميلة الى هذه الفكرة .. ولكن انظر لهذه النتيجة التي ستمنع ظهور اي خصائص 😉 . هل هذه كافية ؟؟ أم هذه النتيجة :- شكراً لك أخي أبو الحسن
    1 point
  43. الملف مفتوح المصدر و ليس به أي كلمات سر
    1 point
  44. هل ما فهمته صحيح حسب الصورة
    1 point
  45. ما شاء الله تبارك الرحمن 😀 من أجمل المواضيع التي أنزلتها أخي @منتصر الانسي .. جزاك الله كل خير .. 😊 مكتبة غنية شاملة واستعراض جميل جدا للأكواد والأمثلة .. تبارك الله ... وسلمت يمناك 🌹 هذه الخدمة تغني عن تصميم عشرات النماذج التنبيهية والإرشادية 🙂
    1 point
  46. اخي الكريم الموقع تعليمي مجاني وليس تجاري او اعلان عن برامج مدفوعة والافضل لك ان تعرض الرابط مفتوح
    1 point
  47. ألف مبروك استاذ عمرو وبالتوفيق والنجاح دائماً ووفقك الله
    1 point
  48. بارك الله فيك استاذ محمد وزادك الله من فضله
    1 point
×
×
  • اضف...

Important Information