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

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

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      5

    • Posts

      12,158


  2. أبوأحـمـد

    أبوأحـمـد

    03 عضو مميز


    • نقاط

      4

    • Posts

      347


  3. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

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


    • نقاط

      4

    • Posts

      13,165


  4. محمد حسن المحمد

    • نقاط

      4

    • Posts

      2,216


Popular Content

Showing content with the highest reputation on 24 أغس, 2023 in all areas

  1. السلام عليكم أخي الكريم جرب الكود التالي في حدث المصنف ThisWorkbook Private Sub Workbook_NewSheet(ByVal Sh As Object) Dim R As Integer, G As Integer, B As Integer Randomize R = Int(Rnd() * 256) G = Int(Rnd() * 256) B = Int(Rnd() * 256) Sh.Tab.Color = RGB(R, G, B) End Sub سيعمل الكود فقط عند إضافة ورقة عمل جديدة
    3 points
  2. تفضل جرب هذا تسمية النطاقات.xlsm
    2 points
  3. السلام عليكم كذلك يمكن استخدام الدالة INDEX بهذه الطريقة =INDEX({"الأول","الثاني","الثالث","الرابع","الخامس","السادس","السابع","الثامن","التاسع","العاشر","الحادي عشر","الثاني عشر","الثالث عشر","الرابع عشر","الخامس عشر","السادس عشر","السابع عشر","الثامن عشر","التاسع عشر","العشرون"};B1)
    2 points
  4. السلام عليكم إثراء للموضوع وبعد إذن من سبقني إليكم الحل بطريقتين الأولى : باستخدام VlookUp حيث تم وضع الأرقام وتفقيطها في جدول بمجرد أن تكتب الرقم يتم تفقيطه =VLOOKUP($A2;Table1;2;0) الثانية: باستخدام المعادلة التي تعتمد على كود التفقيط NoToTxt الذي قمت بالتعديل على جزء يسير - بعد إذن صاحبه الذي أسأل الله تعالى أن يجعله بميزان حسناته - ليناسب الموضوع. =NoToTxt([@الرقم];"";"") راجياً أن يكون مقبولاً لديكم والسلام عليكم تحويل الأرقام الترتيبية إلى نصوص.xlsm
    2 points
  5. أين وضعت الكود؟ ارفق صورة بالضبط للموديول الذي وضعت به الكود. الكود يوضع في حدث المصنف دبل كليك على ThisWorkbook في نافذة المشروع وقم بلصق الكود في هذا الموديول .. وجرب مرة أخرى
    1 point
  6. أخي الكريم @كمال علام صاحب هذا البرنامج البسيط قام بحماية الأكواد بكلمة مرور وتقريبا يتم وضع المعادلات بالكود لذلك إذا كنت تعرفه اسأله عن كلمة مرور vba لعمل التعديل المطلوب بالتوفيق
    1 point
  7. هذا هو الكود كاملا .. ربما لم تنسخه بأكمله في برنامجك : #If VBA7 Or Win64 Then Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As LongPtr, ByVal wParam As LongPtr, lParam As Any) As LongPtr Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As LongPtr Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As LongPtr, ByVal wMsg As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As LongPtr) As LongPtr Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As LongPtr #Else Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook as long, ByVal ncode as long, ByVal wParam as long, lParam As Any) as long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) as long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook as long) as long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg as long, ByVal nIDDlgItem as long, ByVal wMsg as long, ByVal wParam as long, ByVal lParam as long) as long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd as long, ByVal lpClassName As String, ByVal nMaxCount as long) as long Private Declare Function GetCurrentThreadId Lib "kernel32" () as long #End If 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 #If VBA7 Or Win64 Then Private hHook As LongPtr #Else Private hHook As Long #End If Public Function NewProc(ByVal lngCode As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Dim RetVal Dim strClassName As String Dim lngBuffer As LongPtr If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As String On Error GoTo ExitProperly Dim lngModHwnd As LongPtr Dim lngThreadID As LongPtr lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook ExitProperly: UnhookWindowsHookEx hHook End Function
    1 point
  8. السلام عليكم انا سعيد بالانضمام للمتندى وشكراً لموافقتكم باعتبري عظواً جديد معكم انا لدي سؤال عندي ملف اكسل مبيعات يوجد داخلها صفحتين , الصفحة الاولى داخلها تاريخ بداية الرصيد الصفحة الثانية فيها بيانات المبيعات اريد انا اعمل كود بحيث اذا كان التاريخ (بصفحة المبيعات) يساواي او اكبر من التاريخ (صفحة تاريخ بداية الرصيد) الناتج يقوم الكود بكتابة كلمة "رصيد" في عمود الرصيد للخلية المقابلة للتاريخ مرفقاً نموذج للمف مع جزيل الشكر و التقدير للجميع Book1.xlsx
    1 point
  9. وعليكم السلام بداية اجريت بعض التغيير على القوائم بحيث عند فتح قائمة الدول تكون القائمة الثانية باسماء المسجلين للدولة المختار ثم وضع الشرط لفتح التقرير بمعيارين الملف مرفق Database110.accdb
    1 point
  10. هذا ليس مثال بل مشروع كامل اولا .. يوجد مشاكل برمجية عند فتح المشروع حتى بعد ربط الجداول ثانيا مشروع vba مقفل بكلمة مرور المثال بارك الله فيك .. هو ان تنزع التقرير ومصدر بياناته فقط في قاعدة بيانات جديدة وترفقها هنا
    1 point
  11. وهذا ملف اخر بمجرد كتابة التاريخ فى العمود C فى شيت المبيعات تكتب كلمة رصيد اذا كان اكبر من او يساوى تاريخ اول الفترة فحص التاريخ1.xlsm
    1 point
  12. تفضل جرب هذا الملف فحص التاريخ1.xlsm
    1 point
  13. تفضل تم اعتماد رقم الحيازة ، وحقيق طلبك في اظهار التفاصيل ملحوظة .. حذفت زر التالي والسابق لانه لا معنى لهما .. والسبب ان الفورم خاص بالادخال ويتم عبر البحث والاختيار اعمل فورم خاص للعرض والبحث والتعديل DataFarm6.rar
    1 point
  14. رائع استاذ احمد عبدالحليم هو ده المطلوب تسلم يمينك ويداك الف الف شكر والله
    1 point
  15. اما اذا اردنا استخدام متغير كما اشار الاستاذ الكبير في الوحدة النمطية نعدل في المتغير الى Public myNumId(1) As Variant غيرنا المتغير ليكون يقبل قيمتين وغيرنا نوعة من رقم الى غير محدد ليقبل اي نوع من الحقول ثم في النموذج الاول نضع الامر myNumId(0) = Me.ID myNumId(1) = Me.Discount DoCmd.OpenForm "frm2", acNormal وفي النموذج الثاني في حدث عند التحميل نضع Me.ID = myNumId(0) Me.Discount = myNumId(1) لم نحتاج الى دالة التقسيم في حال كنت مبتدي وليس لديك معرفة لمعالجة رسائل الخطا فان طريقة الاستاذ الكبير اسهل الملف مرفق db1(2).rar
    1 point
  16. نعم ممكن حقلين وثلاثة وعشرة وهذا الامر للطريقة التي اشار اليها الاخ شايب وايضا لطريقة الاستاذ الكبير ولكن الاخ شايب سوف يشرح ذلك في الطريقة التي اشار اليها في زر الامر نضع الامر التالي DoCmd.OpenForm "frm2", acNormal, , , acFormAdd, , [ID] & "|" & [Discount] هنا لدينا حقلي المعرف والحسم وفصلنا بينهما بـ & "|" & والهدف من ذلك ان نستخدم دالة التقسيم في النموذج الثاني لفصل قيمة المعرف عن قيمة الحسم ثم في نموذج الوجهة اي النموذج الثاني وضعنا الامر التالي Dim a As Variant a = Split(Me.OpenArgs, "|") Me.ID = a(0) Me.Discount = a(1) الملف مرفق اخونا الفاضل شايب db1.rar
    1 point
  17. إضافة للموضوع تم إدراج الأرقام من 1 إلى 99 ويمكن التطوير حسب حاجة الأعضاء فقط حدد الأرقام واضغط تحويل تفقيط الأول.xlsm
    1 point
  18. مشاركة مع استاذنا طريقة اخرى بدون استخدام متغير عام تحميل القيمة مباشرة في امر فتح النموذج باستخدام الامر التالي DoCmd.OpenForm "frm2", acNormal, , , acFormAdd, , ID وفي النموذج الثاني في حدث عند التحميل نضع الامر Me.ID = Me.OpenArgs اخير في تعديل الاستاذ الكبير وكذلك في تعديل اخونا شايب يفضل ان تضع امر معالجة الخطأ في حالة كون حقل id في النموذج الاول فارغ والله الموفق
    1 point
  19. المفروض انك ترفق مثال بسيط لتتعلم الطريقة وتنقلها الى برنامجك ايضا يكون المثال مرجعا سهلا لمن يبحث عن مثل هذا الموضوع تم عمل مثال بسيط لكيفية تطبيق الفكرة القيمة في النموذج الاول اعلنا عنها عند نقر الزر وقبل فتح النموذج 2 الان عند فتح النموذج الثاني وعند حدث التحميل يتم ادراج القيمة بعيدا عن النموذج الأول على افتراض ان البعض يرغب في قفل النموذج الاول بمجرد فتح النموذج الثاني db1.rar
    1 point
  20. ارفع مثالك كي تمكن اخوانك من مساعدتك بشكل اسرع
    1 point
  21. لا أدري - أخي الكريم - إن كان هناك مشكلة في النسخة التي لدي أستميحكم عذراً أخي الكريم - حقك عليّ - فأنا بالعادة لكثرة برامج الإكسل التي أستخدمها فإنني أعتمد على الحساب اليدوي بدل التلقائي وقد أخذ مني السن مأخذاً - نسيت التحديث فلم تظهر لي أسماء المدن التي أطلب.. أعتذر مرة ثانية تقبل تحياتي العطرة لشخصكم الكريم والسلام عليكم
    1 point
  22. السلام عليكم ورحمة الله وبركاته بالنظر إلى الصورة التالية يظهر اسم الدولة ويمكن من خلال القائمة المنسدلة يمكن التبديل بين الدول حسب الموقع أما المدن فلا يوجد حسب علمي إلا قائمة بمدن المملكة العربية السعودية . حبذا أن يكون هناك أسماء لمدن أو مواقع أو بلدان دول عربية على الأقل، بارك الله بجهودكم والسلام عليكم.
    1 point
  23. بارك الله لك أخي @أبومروان ويمكن اختصار هذه المعادلة إلى هذه =CHOOSE(B1,"الأول","الثاني","الثالث","الرابع","الخامس","السادس","السابع","الثامن","التاسع","العاشر","الحادي عشر","الثاني عشر","الثالث عشر","الرابع عشر","الخامس عشر","السادس عشر","السابع عشر","الثامن عشر","التاسع عشر","العشرون") بالتوفيق
    1 point
  24. وعليكم السلام جرب هذه المعادله لعلها المطلوب =IF(B1=1,"الأول",IF(B1=2,"الثاني",IF(B1=3,"الثالث",IF(B1=4,"الرابع",IF(B1=5,"الخامس",IF(B1=6,"السادس",IF(B1=7,"السابع",IF(B1=8,"الثامن",IF(B1=9,"التاسع",IF(B1=10,"العاشر",IF(B1=11,"الحادي عشر",IF(B1=12,"الثاني عشر",IF(B1=13,"الثالث عشر",IF(B1=14,"الرابع عشر",IF(B1=15,"الخامس عشر",IF(B1=16,"السادس عشر",IF(B1=17,"السابع عشر",IF(B1=18,"الثامن عشر",IF(B1=19,"التاسع عشر","العشرون")))))))))))))))))
    1 point
  25. تفضل التحاليل الطبية.xlsx
    1 point
×
×
  • اضف...

Important Information