بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 08/24/23 in all areas
-
السلام عليكم أخي الكريم جرب الكود التالي في حدث المصنف 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 points
-
السلام عليكم كذلك يمكن استخدام الدالة INDEX بهذه الطريقة =INDEX({"الأول","الثاني","الثالث","الرابع","الخامس","السادس","السابع","الثامن","التاسع","العاشر","الحادي عشر","الثاني عشر","الثالث عشر","الرابع عشر","الخامس عشر","السادس عشر","السابع عشر","الثامن عشر","التاسع عشر","العشرون"};B1)2 points
-
السلام عليكم إثراء للموضوع وبعد إذن من سبقني إليكم الحل بطريقتين الأولى : باستخدام VlookUp حيث تم وضع الأرقام وتفقيطها في جدول بمجرد أن تكتب الرقم يتم تفقيطه =VLOOKUP($A2;Table1;2;0) الثانية: باستخدام المعادلة التي تعتمد على كود التفقيط NoToTxt الذي قمت بالتعديل على جزء يسير - بعد إذن صاحبه الذي أسأل الله تعالى أن يجعله بميزان حسناته - ليناسب الموضوع. =NoToTxt([@الرقم];"";"") راجياً أن يكون مقبولاً لديكم والسلام عليكم تحويل الأرقام الترتيبية إلى نصوص.xlsm2 points
-
أين وضعت الكود؟ ارفق صورة بالضبط للموديول الذي وضعت به الكود. الكود يوضع في حدث المصنف دبل كليك على ThisWorkbook في نافذة المشروع وقم بلصق الكود في هذا الموديول .. وجرب مرة أخرى1 point
-
أخي الكريم @كمال علام صاحب هذا البرنامج البسيط قام بحماية الأكواد بكلمة مرور وتقريبا يتم وضع المعادلات بالكود لذلك إذا كنت تعرفه اسأله عن كلمة مرور vba لعمل التعديل المطلوب بالتوفيق1 point
-
هذا هو الكود كاملا .. ربما لم تنسخه بأكمله في برنامجك : #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 Function1 point
-
السلام عليكم انا سعيد بالانضمام للمتندى وشكراً لموافقتكم باعتبري عظواً جديد معكم انا لدي سؤال عندي ملف اكسل مبيعات يوجد داخلها صفحتين , الصفحة الاولى داخلها تاريخ بداية الرصيد الصفحة الثانية فيها بيانات المبيعات اريد انا اعمل كود بحيث اذا كان التاريخ (بصفحة المبيعات) يساواي او اكبر من التاريخ (صفحة تاريخ بداية الرصيد) الناتج يقوم الكود بكتابة كلمة "رصيد" في عمود الرصيد للخلية المقابلة للتاريخ مرفقاً نموذج للمف مع جزيل الشكر و التقدير للجميع Book1.xlsx1 point
-
وعليكم السلام بداية اجريت بعض التغيير على القوائم بحيث عند فتح قائمة الدول تكون القائمة الثانية باسماء المسجلين للدولة المختار ثم وضع الشرط لفتح التقرير بمعيارين الملف مرفق Database110.accdb1 point
-
هذا ليس مثال بل مشروع كامل اولا .. يوجد مشاكل برمجية عند فتح المشروع حتى بعد ربط الجداول ثانيا مشروع vba مقفل بكلمة مرور المثال بارك الله فيك .. هو ان تنزع التقرير ومصدر بياناته فقط في قاعدة بيانات جديدة وترفقها هنا1 point
-
وهذا ملف اخر بمجرد كتابة التاريخ فى العمود C فى شيت المبيعات تكتب كلمة رصيد اذا كان اكبر من او يساوى تاريخ اول الفترة فحص التاريخ1.xlsm1 point
-
1 point
-
تفضل تم اعتماد رقم الحيازة ، وحقيق طلبك في اظهار التفاصيل ملحوظة .. حذفت زر التالي والسابق لانه لا معنى لهما .. والسبب ان الفورم خاص بالادخال ويتم عبر البحث والاختيار اعمل فورم خاص للعرض والبحث والتعديل DataFarm6.rar1 point
-
1 point
-
اما اذا اردنا استخدام متغير كما اشار الاستاذ الكبير في الوحدة النمطية نعدل في المتغير الى 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).rar1 point
-
نعم ممكن حقلين وثلاثة وعشرة وهذا الامر للطريقة التي اشار اليها الاخ شايب وايضا لطريقة الاستاذ الكبير ولكن الاخ شايب سوف يشرح ذلك في الطريقة التي اشار اليها في زر الامر نضع الامر التالي DoCmd.OpenForm "frm2", acNormal, , , acFormAdd, , [ID] & "|" & [Discount] هنا لدينا حقلي المعرف والحسم وفصلنا بينهما بـ & "|" & والهدف من ذلك ان نستخدم دالة التقسيم في النموذج الثاني لفصل قيمة المعرف عن قيمة الحسم ثم في نموذج الوجهة اي النموذج الثاني وضعنا الامر التالي Dim a As Variant a = Split(Me.OpenArgs, "|") Me.ID = a(0) Me.Discount = a(1) الملف مرفق اخونا الفاضل شايب db1.rar1 point
-
1 point
-
1 point
-
مشاركة مع استاذنا طريقة اخرى بدون استخدام متغير عام تحميل القيمة مباشرة في امر فتح النموذج باستخدام الامر التالي DoCmd.OpenForm "frm2", acNormal, , , acFormAdd, , ID وفي النموذج الثاني في حدث عند التحميل نضع الامر Me.ID = Me.OpenArgs اخير في تعديل الاستاذ الكبير وكذلك في تعديل اخونا شايب يفضل ان تضع امر معالجة الخطأ في حالة كون حقل id في النموذج الاول فارغ والله الموفق1 point
-
المفروض انك ترفق مثال بسيط لتتعلم الطريقة وتنقلها الى برنامجك ايضا يكون المثال مرجعا سهلا لمن يبحث عن مثل هذا الموضوع تم عمل مثال بسيط لكيفية تطبيق الفكرة القيمة في النموذج الاول اعلنا عنها عند نقر الزر وقبل فتح النموذج 2 الان عند فتح النموذج الثاني وعند حدث التحميل يتم ادراج القيمة بعيدا عن النموذج الأول على افتراض ان البعض يرغب في قفل النموذج الاول بمجرد فتح النموذج الثاني db1.rar1 point
-
1 point
-
لا أدري - أخي الكريم - إن كان هناك مشكلة في النسخة التي لدي أستميحكم عذراً أخي الكريم - حقك عليّ - فأنا بالعادة لكثرة برامج الإكسل التي أستخدمها فإنني أعتمد على الحساب اليدوي بدل التلقائي وقد أخذ مني السن مأخذاً - نسيت التحديث فلم تظهر لي أسماء المدن التي أطلب.. أعتذر مرة ثانية تقبل تحياتي العطرة لشخصكم الكريم والسلام عليكم1 point
-
السلام عليكم ورحمة الله وبركاته بالنظر إلى الصورة التالية يظهر اسم الدولة ويمكن من خلال القائمة المنسدلة يمكن التبديل بين الدول حسب الموقع أما المدن فلا يوجد حسب علمي إلا قائمة بمدن المملكة العربية السعودية . حبذا أن يكون هناك أسماء لمدن أو مواقع أو بلدان دول عربية على الأقل، بارك الله بجهودكم والسلام عليكم.1 point
-
بارك الله لك أخي @أبومروان ويمكن اختصار هذه المعادلة إلى هذه =CHOOSE(B1,"الأول","الثاني","الثالث","الرابع","الخامس","السادس","السابع","الثامن","التاسع","العاشر","الحادي عشر","الثاني عشر","الثالث عشر","الرابع عشر","الخامس عشر","السادس عشر","السابع عشر","الثامن عشر","التاسع عشر","العشرون") بالتوفيق1 point
-
وعليكم السلام جرب هذه المعادله لعلها المطلوب =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
-
1 point