بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 01/16/21 in all areas
-
وعليكم السلام-تفضل يمكنك استخدام هذه المعادلة =IFERROR(DATEDIF(TODAY(),E12,"y") & "سنة " &DATEDIF(TODAY(),E12,"ym")&" شهور "&DATEDIF(TODAY(),E12,"md")&" يوم ","") 1رقم قومي - نسخة.xlsx3 points
-
وعليكم السلام اخوي ابو ابراهيم 🙂 طريقه جميلة ، شكرا لك على هذه التحفة 🙂 ولكني اخاف على صاحب الموضوع منها ، لأنها بطيئة ، وسيدخل في WebBrowser وحلاوة الوانه وخصوصا في البحث ، ويضيع ، مثل اخونا وائل عبد الرحمن 🙂 جعفر3 points
-
السلام عليكم اتفضلى هل هذا ما تريديه ؟ انا قمت بادخال المعيار فالاستعلام الداخلى للتقرير لانى لا اعرف فى اى نموذج سوف يتم استدعاء التقرير بالتوفيق ايجار معدات للغير1.rar2 points
-
ويمكنك استخدام الكود في حدث الشيت Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("a2:l2")) Is Nothing Then If Not IsNumeric(Target.Value) And Target.Value <> vbNullString Then Target.Interior.Color = xlNone GoTo 1 End If '================= If Target >= 100 Then Target.Interior.Color = 255 End If '================== If Target < 100 Then Target.Interior.Color = 5296274 End If End If 1: End Sub2 points
-
أهلا بكم جميعا.. عندي طريقة يمكن أن تعجبكم! افتح ملف الورد وقم بحفظه على هيئة ملف Html بالإمتداد (html,htm) ومن ثم قم باستراده أو ربطه بأكسس! إذا استخدمت أسلوب الربط، فإن بإمانك العمل بين الورد والأكسس! لكن هذا الأسلوب يتميز بأنه بطيء. ولتجنب هذا الأمر يمكن تجربة المرفق. ImportFromWordTable.zip2 points
-
2 points
-
وعليكم السلام-تفضل لك ما طلبت بمعادلات المصفوفة ... لابد من الضغط على (Ctrl+Shift+Enter) بعد نسخ المعادلة وليس Enter فقط كباقى المعادلات MM1.xlsx2 points
-
الأفضل رقع ملفات بدون زركشة الوان (اسهل على المتابعة) مبدئياً هذا الكود (يتحاهل النصوص والفراغات) Sub sum() Dim mr As Worksheet Dim lr%, i%, x% Set mr = Sheets("mark-s") With mr lr = .Range("c" & Rows.Count).End(xlUp).Row For i = 9 To lr For x = 12 To 103 Step 13 With .Cells(i, x) .Value = _ Val(.Offset(, -3)) + _ Val(.Offset(, -2)) + _ Val(.Offset(, -1)) End With Next x Next i End With End Sub2 points
-
بالاضافة الى ما تفضل به الاخوة ولهم الشكر تفضل اخي الكريم اضف هذه الوحدة النمطية Option Compare Database Option Explicit Function CalcAgeY(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcAgeY = vYears End Function Function CalcAgeM(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcAgeM = vMonths End Function Function CalcAgeD(vDate1 As Date, vdate2 As Date) As String Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If Day(vDate1) = 31 Then vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) - 1 If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcAgeD = vDays End Function ثم في الاستعلام ادرج التالي Frook3: DateDiff("m";[AGAM1];[AGAM2])+IIf(CalcAgeD([AGAM1];[AGAM2])>22;1;0) UP-New Microsoft Access 11111.rar تحياتي2 points
-
وعليكم السلام 🙂 وههلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : https://www.officena.net/Tips/Questions.htm الطرق الاسهل: 1. استخدم الامر OpenArgs لإرسال اسم النموذج ، عند فتح النموذج Z02_Load_File ، هكذا : DoCmd.OpenForm "Z02_Load_File",,,,,,me.name او لإرسال الرقم 123456 DoCmd.OpenForm "Z02_Load_File",,,,,,"123456" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال me.OpenArgs ، وطبعا تقدر ترسل اي عدد من القيم بهذه الطريقة ، الشرط ان القيم تكون بين "" ، مثل : DoCmd.OpenForm "Z02_Load_File",,,,,,"123456|Finance_Department" ثم في النموذج Z02_Load_File ، تستعمل الامر Split لتفرق بين هذه القيم. 2. ان تعمل متغير في وحدة نمطية مستقلة ، هكذا : Option Compare Database option explicit Global myValue as string او public myValue2 as integer ثم لم تعطي القيمة قبل ان تفتح النموذج Z02_Load_File ، هكذا: myValue = "This is a test" DoCmd.OpenForm "Z02_Load_File" او myValue = 998877 DoCmd.OpenForm "Z02_Load_File" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال اسم المتغير myValue او myValue2 ، 3. او نفس طريقة #2 ، ولكن باستعمال TempVar جعفر2 points
-
السلام عليكم ورحمة الله وبركاته هذا الموضوع اُثير اكثر من مرة في الآونة الاخيرة ، ورأيت من الافضل ان اضع مثال ليقتدي به الجميع وقبل ان نبدأ ، اود ان اشير الى انني اعمل على اكسس 32 بت ، ولا املك نسخة من اكسس 64 بت احب ان اشير الى الرابط الذي شرحت فيه ان مايكروسوفت توصي بتنصيب الاوفيس / اكسس 32 بت ، بغض النظر عن نوع الوندوز المنصّب على الكمبيوتر ، سواء كان 32 بت او 64 بت: http://www.officena.net/ib/topic/64036-هل-استخدم-اوفيس-32-بت-او-64-بت/ ولكن ، ماذا نفعل اذا عملنا برنامجنا على اكسس 32 بت ، واتضح ان الزبون عنده جهاز فيه اكسس 64 بت المثال التالي يشتغل على 32 بت و 64 بت ، ونستطيع ان نستفيد منه لعمل برنامجنا البرنامج المرفق ، بعد فك الضغط ، سيحتوي على 3 برامج: . هذا برنامج No_Password_BE.accdb ، وبه جدول واحد ، ولا يحتاج الى كلمة سر لفتحه: . هذا برنامج Password_is_jj_BE.accdb ، وبه جدول واحد ، وكلمة السر لفتحه هي jj: . البرنامج: JStreetAccessRelinker2.accdb من الرابط http://www.jstreettech.com/downloads.aspx ، وبه ماكرو ووحدات نمطية تعمل على 32 بت و 64 بت (فالفضل في هذا المثال يعود للبرنامج وليس لي ) ، وقد قمت بإضافة نموذج لربطه مع احد برنامج الجداول اعلاه ، ومبدئيا فهو مرتبط مع البرنامج No_Password_BE.accdb ، . وعند فتح البرنامج لأول مرة ، سوف يفتح نافذة تطلب معرفة مكان برنامج الجداول No_Password_BE.accdb ، وتستطيع ان تنقر على الزر Link Another BE ، وستفتح لك نافذة تطلب منك معرفة مكان برنامج الجداول الجديد الذي تريد ان تربطه (بدل البرنامج No_Password_BE.accdb) : . وبما ان البرنامج هذا محمي بكلمة سر ، فسوف تظهر لك نافذة لإدخال كلمة السر (لاحظ ان الادخال مشفر) : . وعندما يتم الربط ، سترى رسالة التاكيد: . الرجاء من الشباب الذين لديهم نسخة من الاكسس 64 بت ، التاكد من ان البرنامج يشتغل على كمبيوترهم بدون اخطاء. عندما نريد ان نعمل برنامج يشتغل على النسختين 32 و 64 بت ، فكود النماذج هو نفسه بين نسختي 32 بت و 64 بت ، والشئ الوحيد الذي يتغير هو دوال الوحدات النمطية API ، والكود الذي ينادي هذه الوحدات (بغض النظر سواء كان في نموذج او في وحدة نمطية مستقلة) ، هنا سوف اعطي مثال واحد من الكود عن طريقة العمل للنسختين 32 و 64 بت: الكود التالي يستعمل دالة API فتح نافذة اختيار ملف ، والدالة هي 32 بت (لاحظ comdlg32.dll ) : Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long الان اذا اردنا ان نجعل هذه الداله API تعمل على 64 بت كذلك ، فالكود يجب ان يكون: #If VBA7 Then 'هذه لنسخة 64 بت Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Boolean #Else 'وهذه لنسخة 32 بت Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long #End If ولاحظ في كود البرنامج ، انه تم جمع جميع الدوال مع بعض ، وجمعها في if# و else# و end if# واحدة. وهناك اصدار جديد لكود الربط ، ويمكن انزاله من هنا: http://www.jstreettech.com/files/JStreetAccessRelinker2.zip جعفر 238.Work_on_32Bits_and_64Bits.zip1 point
-
ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته اعرض الملف السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر صاحب الملف jjafferr تمت الاضافه 14 ينا, 2021 الاقسام أدوات عامة1 point
-
السلام عليكم، كثيراً ما ارى طلبات "كيفية عمل صلاحيات المستخدمين" قمت بعمل مثال بطريقة مبسطة جدا لكيفية عمل هذه الصلاحيات في تحديد فتح النماذج لمن لا يعرف ماذا اقصد بصلاحيات المستخدمين, مثال: اليوزر A غير مسموح له بفتح فورم الاعدادات مثلاً، اما اليوزر B مسموح له بفتح فورم الاعدادات اي سؤال انا موجود. تحياتي لكم Permission.accdb1 point
-
1 point
-
مفيش ازعاج ولا حاجه وانا مش استاذ انا طالب علم هنا مثلك وبتعلم من مشاركتكم الحلول على اسئلتكم فلا تخاطبنى بكلمة استاذ وجزاهم الله خيرا اخواننا واساتذتنا الذين نتعلم منهم نرجع لموضوعنا نبعد شويه عن الكود ونخلينا فالجدول ماذا ستفعل عند ادخالك بيانات فرعين او اكثر فى تاريخ واحد مثلا تاريخ اليوم فى وضعك مفتاح اساسى للتاريخ ؟ فى انتظار الاجابه لنمشى خطوه خطوه1 point
-
ما كنت ادري اذا صرحت بالامر ، يمكنني قفز المتغيرات المطلوبة من الامر !! شكرا اخوي خالد على هذه المعلومة 🙂 ، وهل بإمكاننا المضي على هذا المنوال بالنسبة لبقية الاوامر كذلك؟ جعفر1 point
-
السلام عليكم لديا مشاركة بسيطة في الاحتساب لقيمة معينة بناء على ثلاث شرائح او نسب بطريقة بسيطة ومختصرة بدلا من المعادلة المطولة وصولا للمعلومة بسرعة ويدويا بمجرد النظر للمبلغ ولاي شريحة يندرج فيتم تخفيض (تنقيص)مبلغ ثابت من المبلغ الاساسي وضرب الباقي في قيمة النسبة المئوية او العكس من صافي المبلغ كيف اضيف له قيمة الشرائح للحصول على المبلغ الاساسي والشرح موضح في ملف الاكسل المرفق طبعا المثال الذي عملت عليه تم اقتباسة من احدى مشاركات المنتدى وكذلك الحل وعملت حل بطريقة مختصرة قد يستفيد البعض من ذلك. وتقبلوا خالص تحياتي معادلة مختصرة لايجاد القيمة بناءعلى عدة شرائح.xlsx1 point
-
1 point
-
وعليكم السلام-عليك بإستخدام هذه المعادلة =IFERROR(IF($A2="خاص",VLOOKUP($O2,المسافة!$B$2:$G$110,6,0)/2,VLOOKUP($O2,المسافة!$B$2:$G$110,6,0)),"") معادلة - 1خاص.xlsm1 point
-
1 point
-
جرب الكود التالي في حدث قبل التحديث Cancel = chkIfExists() If Cancel Then Me.Undo Call showDuplicate End If تواجهني مشكلة اللغة كوني أستعمل الأوفيس فرنسي لم أستطع التعديل كما هو مطلوب على كل الفنكشيون أضعه للإخوة للتعديل عليه بما يفي الغرض Private Function showDuplicate() With Me.RecordsetClone .FindFirst _ "[probation officer name]='" & mstrOfficer & "' and " & _ "[date of work]=#" & format(mdteDateOfWork, "mm\/dd\/yyyy") & "#" Me.Bookmark = .Bookmark End With End Function1 point
-
الحقيقة انا لم احمل الملف ولاعلم لي بطريقة انشاء الملف وقد تكون هناك حلول اخرى ولكن يمكن معالجة موضوع التكرار بان نجعل مفتاح اساسي ثنائي لحقلي التاريخ ورقم الفرع وان كنت لا افضل ذلك الا في حالات معينه نضطر فيها لمفتاح اساسي متعدد الحقول1 point
-
احسنت وسهلت جزاك الله خيرا اخى واستاذى العزيز خالد 💐1 point
-
1 point
-
أهلا بك أ. جعفر أهم شيء أنها أجبتك.. سبب مشاركتي هو التطرق لمعالجة البطئ الناتج عن تحميل الملفات الكبيرة! وليس الاستعراض بصفحة الويب.. يعتمد المرفق الذي أدرجة في المشاركة على سبب البطئ وكيفية معالجته. ولتسهيل الأمر؛ فإن البطء يكمن في أن معالجة البحث في البيانات الكبيرة التي تعتمد على (SELECT...... WHERE) تحتاج إلى تحميل مصدر السجل بعدد الحروف التي تبحث عنها! وهذا يرهق قاعدة البيانات وقد يؤدي إلى أغلاقها.. ولهذا نحن بحاجة إلى تحميل مصدر السجل مرة واحدة، ومن ثم نقوم بترشيح البيانات حسب الطلب.. وإذا ما جعلناه هذا الأمر يجري في الخلفية ثم عرضنا النتائج على النموذج المستمر فلن نشعر بالتأخر أو الثقل..1 point
-
1 point
-
ماشاء الله عليك يا ابا عبد الله احيانا استخدم OpenArgs ولكني اصرح بذلك في الامر ليكون DoCmd.OpenForm"frm_4", OpenArgs:=Me.Name او DoCmd.OpenForm"frm_4", OpenArgs:=Me.Caption للتسمية الخاصة بالنموذج1 point
-
تفضل هذا البرنامج يقوم بعمل الصلاحيات والحماية واشياء اخرى كثيره AccessMaster2000-2010.rar1 point
-
1 point
-
تفضل اخي الكريم Private Sub سنة_التأهيل_Click() If DLookup("[سنة التأهيل]", "STABLE2-2", "[AA ID]=" & [AA ID] & " AND [سنة التأهيل]='" & [سنة التأهيل] & "'") > 1 Then ' Me.strtawgod = Nz(DMax("strtawgod", "STABLE2-2", "[AA ID] = " & [AA ID]), 0) MsgBox "هذا العام مكرر من قبل" Me.Undo Exit Sub Else Me.strtawgod = Nz(DMax("strtawgod", "STABLE2-2", "[AA ID] = " & [AA ID]), 0) + 1 End If End Sub data2.rar تحياتي1 point
-
هذا الكود Sub button1_click() Dim last_E% Dim last_L% Dim col%, i% Dim E As Worksheet Dim L As Worksheet Set E = Sheets("entry") Set L = Sheets("list") last_E = E.Cells(Rows.Count, "L").End(3).Row last_L = L.Cells(Rows.Count, 2).End(3).Row + 2 col = 15 For i = 3 To last_L If Application.CountA(E.Cells(i, "L").Resize(, col - 1)) <> 0 Then L.Cells(last_E, 2).Resize(, col - 1).Value = _ E.Cells(last_E, "L").Resize(, col - 1).Value End If Next E.Range("L3:y" & last_E) = vbNullString End Sub1 point
-
وهل هذه مشكلة اصلا هذه موجودة في نظام الاكسيل من الاساس لا اعلم اذا كان هناك طريقة لكن اعذرني لا اجد اي فائدة مما تطلبه1 point
-
1 point
-
1 point
-
من الطبيعي الا يكرر نفس العام ولكن على كل حال قم بتعديل الكود كالتالي Private Sub سنة_التأهيل_Click() If Me.[سنة_التأهيل] = DLast("[سنة التأهيل]", "STABLE2-2", "[AA ID] = " & [AA ID]) Then Me.strtawgod = Nz(DMax("strtawgod", "STABLE2-2", "[AA ID] = " & [AA ID]), 0) Else Me.strtawgod = Nz(DMax("strtawgod", "STABLE2-2", "[AA ID] = " & [AA ID]), 0) + 1 End If End Sub data1.rar تحياتي ولعدم تكرر العام استخدم الكود التالي If Me.[سنة_التأهيل] = DLookup("[سنة التأهيل]", "STABLE2-2", "[AA ID] = " & [AA ID]) Then ' Me.strtawgod = Nz(DMax("strtawgod", "STABLE2-2", "[AA ID] = " & [AA ID]), 0) MsgBox "هذا العام مكرر من قبل" Me.Undo Exit Sub Else Me.strtawgod = Nz(DMax("strtawgod", "STABLE2-2", "[AA ID] = " & [AA ID]), 0) + 1 End If1 point
-
اذن نقوم بتعديل الوحدة النمطية ونجعلها لا تقسم على 12 كالتالي Option Compare Database Option Explicit Function CalcAgeY(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths Mod 12 CalcAgeY = vYears End Function Function CalcAgeM(vDate1 As Date, vdate2 As Date) Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths 'Mod 12 CalcAgeM = vMonths End Function Function CalcAgeD(vDate1 As Date, vdate2 As Date) As String Dim vYears As Integer, vMonths As Integer, vDays As Integer vMonths = DateDiff("m", vDate1, vdate2) vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) If Day(vDate1) = 31 Then vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) - 1 If vDays < 0 Then vMonths = vMonths - 1 vDays = DateDiff("d", DateAdd("m", vMonths, vDate1), vdate2) End If vYears = vMonths \ 12 vMonths = vMonths 'Mod 12 CalcAgeD = vDays End Function ويكون في الاستعلام كالتالي Frook3: CalcAgem([AGAM1];[AGAM2])+IIf(CalcAgeD([AGAM1];[AGAM2])>22;1;0) UP-New Microsoft Access 11111.rar تحياتي1 point
-
هذا من مميزات / عيوب تنسيق الحقل AutoNumber / ترقيم تلقائي عند عملية الضغط والاصلاح يبدأ الترقيم من جديد اذا كان الجدول فارغ واذا لم يكن فارغ يبدأ من اخر رقم مسجل بالحقل +1 لذلك الافضل دائماً لا تستخدم ترقيم تلقائي كترقيم للفاتورة ولكن استخدام حقل رقم ومن خلال الكود اضافة ترقيم للفواتير تحياتي1 point
-
1 point
-
1 point
-
1 point
-
الحمد لله وهذا ما كنت نوهت لك عليه في المشاركة الأولي1 point
-
على حسب ما فهمت جرب هذه الدالة =max(0;a1-b1) convert negative to 0.xlsx1 point
-
الكود الصحيح Sub button1_click() Dim last_E As Integer Dim last_L As Integer Dim col% last_E = Sheets("entry").Cells(Rows.Count, "K").End(3).Row last_L = Sheets("list").Cells(Rows.Count, 1).End(3).Row + 1 col = 15 Sheets("list").Cells(last_E, 1).Resize(last_E - 2, col).Value = _ Sheets("entry").Cells(3, "K").Resize(last_E - 2, col).Value End Sub hamdy.xlsm1 point
-
وعليكم السلام ... يمكنك استخدام هذه المعادلة بالتنسيقات الشرطية =OR(AND(I5=$F5,I5<>""),AND(I5=$G5,I5<>"")) حساب.xlsx1 point
-
جرب هذا الماكرو Option Explicit Sub ALL_in_one_cells() Dim ro, st$, i% ro = Cells(Rows.Count, 1).End(3).Row For i = 1 To ro If Cells(i, 1) <> vbNullString Then st = st & Cells(i, 1) & "," End If Next st = Mid(st, 1, Len(st) - 1) & "." Cells(3, 4) = st Cells(3, 4).Columns.AutoFit End Sub الملف مرفق One_for_All.xlsm1 point
-
الاخوة الاعزاء تجدون في المرفقات فكرة في طور التطوير لعمل قوائم بأبسط الطرق و بالأدوات المتاحة آمل المزيد من اقتراحاتكم شكرا لكم ... . برنامج شئون الموظفين.rar1 point