بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 11/05/24 in مشاركات
-
2 points
-
وعليكم السلام 🙂 بإختصار ، الاكسس يعمل كل عمله على حاسبة المستخدم. الاستعلام يستورد البيانات المطلوبة من الجداول (سواء جداول محليه او على الشبكة او في السحاب) ، ويقوم بتحليلها محليا. لهذا السبب ، وحسب تصميم برنامجك (فهرست الحقول في الجداول ، وهي الحقول التي نستخدمها في الفرز او التصفية او ربطها بجدول آخر) ، 1. ممكن الاستعلام يستورد سجلات قليلة وبسرعة لحقل مفهرس (فالحقول المفهرسة لها مكان يشبه الجداول ، والتي ينظر فيها الاستعلام اولا) ، لأنه يعرف مكان هذه السجلات بحسب الحقل المفهرس ، 2. او اذا لم يكن هناك حقل مفرس ، يضطر الى استيراد الجدول كاملا لقراءته محليا ، ويعطيك نتائج الاستعلام ، وهذه الطريقة تأخذ وقت اطول. قواعد البيانات الاخرى مثل SQL Server ، والتي يجب ان تكون على سيرفر به مواصفات عالية ، تقوم بعمل كل شيء على السيرفر وتعطي النتيجة جاهزة لواجهة البرنامج والذي عادة يكون المتصفح (الواجهة) . اما اذا استعملت الاكسس كواجهة ، مع SQL Server كخلفية ، فيمكنك عمل الاثنين ، استعلامات في الواجهة (والتي ستكون بطيئة ، لأنها تستورد البيانات من السيرفر ، إلا اذا كان الاستعلام لبيانات قليلة او مفهرسة) ، او يمكنك عمل استعلامات في SQL Server (والتي تسمى Views او Stored Procedure) . كنت اعتقد كلامي كان بإختصار 😁 جعفر2 points
-
2 points
-
السلام عليكم ورحمة الله وبركاته الأخوة الكرام / أسعد الله أوقاتكم أخي الكريم @عمر ضاحى شكراً لك أخي الفاضل @Foksh تفضل أخي الكريم المثال المرفق مصدر وظائف التحقق من الموقع من هنا : 1- https://www.devhut.net/using-regex-to-validate-a-url/ 2- https://www.devhut.net/vba-validate-if-a-url-exists/ تم التعديل فقط لتناسب الفكرة تم إضافة الكود التالي للوظيفة الرئيسية MsgLog وهو ليس ضروري ويمكن استبدالة بمعرف ثابت (ليعمل داخل الاكسل) TempVars.Remove "tempLog" TempVars!tempLog = Replace(fullMessage, vbCrLf, vbCrLf & String(18, " ")) أمثلة للأختبار ? MSXML_URLExist("https://httpstat.us/408") ? MSXML_URLExist("https://www.yahoo.com/" & String(50000, "a")) ? MSXML_URLExist("https://www.google.com/" & String(50000, "a")) ? MSXML_URLExist("https://httpstat.us/504") ? MSXML_URLExist("https://httpstat.us/200?sleep=10000") ? MSXML_URLExist("https://www.google.com") ? MSXML_URLExist("https://httpstat.us/503") ? MSXML_URLExist("https://httpstat.us/414") إذا كنت تختبر الأمر في وضع المطور علي شاشة تحرير الأكود فعليك تعديل الخيارت التالية إلي Public Const Debugging_Mode_ON As Boolean = True Public Const MsgBox_Mode_ON As Boolean = False أرجو لكم التوفيق والسداد MsgLog_UrlChecker.accdb2 points
-
بما أنك لم تجب عن سؤالي إليك طريقة أخرى ستقوم بإظافة عنصر جديد بإسم Line لإستخراج رقم صف المحدد عند الإختيار من عناصر الكومبوبوكس وإعتمادا عليه سنقوم بتعديل وحدف الصفوف Private Sub SearchData() Dim fnd As Range Dim ColA As String, ColB As String, ColC As String Dim criteria As Range, found As Boolean Dim rowNum As Long ColA = Me.ComboBox1.Value ColB = Me.ComboBox2.Value ColC = Me.ComboBox3.Value If Len(ColA) = 0 Then Exit Sub Set criteria = WS.Range("A4:C" & WS.Cells(WS.Rows.Count, "A").End(xlUp).Row) found = False For Each fnd In criteria.Rows If fnd.Cells(1, 1).Value = ColA And _ (ColB = "" Or Format(fnd.Cells(1, 2).Value, "dd-mmm") = ColB) And _ (ColC = "" Or fnd.Cells(1, 3).Value = ColC) Then For i = 1 To 62 Me.Controls("TextBox" & i).Value = fnd.Cells(1, i).Value Next i rowNum = fnd.Row found = True Exit For End If Next fnd If Not found Then ClearTextBoxes Me.Line.Value = "" Else Me.Line.Value = rowNum End If End Sub Private Sub CommandButton2_Click() Dim r As Integer, n As Variant Dim i As Integer, X As Integer Dim rowNum As Long, fnd As Range If IsNumeric(Me.Line.Value) Then rowNum = CLng(Me.Line.Value) Else MsgBox " يرجى تحديدالبيانات المرغوب تعديلها", vbExclamation Exit Sub End If If rowNum < 5 Then: Exit Sub If SaisieText(1, 2) Then Exit Sub r = MsgBox("تعديل البيانات؟", vbYesNo, "تأكيـــد") If r <> vbYes Then Exit Sub Application.ScreenUpdating = False Set fnd = WS.Cells(rowNum, 1) For i = 1 To 62 On Error Resume Next n = Me.Controls("TextBox" & i).Value On Error GoTo 0 If IsDate(n) Then fnd.Offset(0, i - 1).Value = CDate(n) Else fnd.Offset(0, i - 1).Value = n End If Next i Call UpdateNum(WS) Clear_TextBox UserForm_Initialize Application.ScreenUpdating = True MsgBox "تم التعديل بنجاح", vbInformation End Sub Private Function SaisieText(startIdx As Integer, endIdx As Integer) As Boolean Dim i As Integer, X As Integer Dim arr() As String, TexArr As String For i = startIdx To endIdx If Me.Controls("TextBox" & i).Value = "" Then TexArr = Me.Controls("cnt" & i).Caption ReDim Preserve arr(X) arr(X) = TexArr X = X + 1 End If Next i If X > 0 Then MsgBox ": يرجى التحقق من " & Chr(10) & Join(arr, " - "), vbInformation SaisieText = True Else SaisieText = False End If End Function ترحيل مع كمبوبوكس البحث بحقلين V3.xlsm2 points
-
السلام علبكم 🙂 بسبب اختلاف تنسيقات ملفات الاكسل (او CSV) ، وخصوصا تلك التي من مواقع وزارة التعليم في المملكة العربية السعودية ، كنا نضطر ان نتعامل بالكود مع كل تنسيق بطريقة تختلف عن الملف الآخر ، مما يجعل الحل لا يتناسب مع التنسيقات الملفات الاخرى ، وهذا الكود ليس بالسهل تعديله. ولكن ، تقريبا جميع مستخدمي الاكسس يعرفون التعامل مع الاستعلام ، لهذا السبب دعونا نتعامل مع بيانات الاكسل في استعلام ، استعلام مسقط 🙂 هذه واجهة النموذج الذي يتم كل شيء عن طريقه: 1. لتصفح الملفات ، واختيار ملف الاكسل (xls, xlsx, xlsm, csv) ، وسيظهر اسم الملف الذي تم اختيارة في الحقل رقم 2 ، 3. ستظهر قائمة بأسماء الاوراق (Sheets) الموجودة في الملف ، ويجب اختيار الورقة المطلوبة ، 4. هذا نموذج جدولي ، و ستظهر بيانات ورقة الاكسل هنا ، ويمكننا التعامل مع فرز وتصفية البيانات هنا ، وبعدة طرق ، 5. سيظهر استعلام مناداة ورقة الاكسل هنا (بدون فرز وتصفية) ، على شكل SQL ، وبأسماء حقول الورقة ، والتي يمكن نسخها لأي قاعدة بيانات خارجية ، 6. سيظهر استعلام مناداة ورقة الاكسل هنا (بدون فرز وتصفية) ، على شكل SQL ، وبدون أسماء حقول الورقة ، والتي يمكن نسخها لأي قاعدة بيانات خارجية ، 7. يجب النقر هنا حتى نرى نتائج الفرز والتصفية كجزء من الاستعلام في الحقول 8 و 9 ، 8. سيظهر استعلام مناداة ورقة الاكسل هنا (بالفرز والتصفية) ، على شكل SQL ، وبأسماء حقول الورقة ، والتي يمكن نسخها لأي قاعدة بيانات خارجية ، 9. سيظهر استعلام مناداة ورقة الاكسل هنا (بالفرز والتصفية) ، على شكل SQL ، وبأسماء حقول الورقة ، والتي يمكن نسخها لأي قاعدة بيانات خارجية ، 10. يمكنك عمل استعلام جاهز (للورقة بدون فرز وتصفية) او جدول ، سواء في قاعدة البيانات هذه ، او اختيار قاعدة بيانات خارجية (يجب ان تكون مغلقة حتى تستطيع تصدير استعلام او جدول لها) ، وسيكون اسم الاستعلام نفس اسم الورقة ، مثلا اسم الورقة ABC ، فيصبح اسم الاستعلام: qry_ABC ، او يكون جدول بإسم tbl_ABC حسب اختيارك من الرقم 11 ، او حتى الحاق بيانات الاستعلام الى جدول موجود سابقا (طبعا يجب مراعاة ان يكون الجدول بنفس حقول الورقة) ، 12. لنسخ الاستعلام الى ذاكرة الكمبيوتر ، بحيث يمكنك استعمال لصق ctrl+v لكائن الاستعلام (انظ الفيديو التوضيحي) ، 13. عادة لا نغير اي شيء هنا. طريقة العمل: . نرى من اعلاه: 1. انه تم عمل استعلام ياسم qry_Sheet1 في قاعدة البيانات الخارجة Testing.accdb ، 2. كذلك نسخنا استعلام التصفة الى ذاكرة الكمبيوتر (تابع في الفيديو التالي) . ممكن خلط عمل الفرز و التصفية بعدة طرق ، منها كما في الفيديو اعلاه ، و الصور التاليه . . لنفتح قاعدة البيانات الخارجية ونرى ما فيها ، هنا نحن نتعامل مع استعلام اكسس عادي ، فيمكننا حذف الحقول التي لا نريدها ، او نخفي اخرى ، او .... . عند فتح قاعدة البيانات الخارجية ، وحصلت على رسالة الخطأ هذه ، فهذا معناه ان برنامج "استعلام مسقط" لايزال مفتوح ، وملف الاكسل مفتوح به ، لذا يجب اغلاق برنامج "استعلام مسقط" قبل استعمال ملف الاكسل : . البرنامج يتعامل مع ملف واحد فقط ، ويعمل له استعلام ، واذا اردنا ان نتعامل مع اكثر من ورقة اكسل ، فيمكننا عمل مجموعة من استعلامات ، ثم نعمل امر لتنفيذها واحدة تلو الاخرى ، وبما انه عندنا استعلام ، فيمكننا تحويله الى جميع انواع الاستعلامات ، سواء استعلام الحاق ، او استعلام اضافة ، او استعلام لعمل جدول. هناك عدة ميزات في استعمال هذه الطريقة عن ربط الاكسل كجدول : 1. اسرع بكثير ، 2. عند استيراد كائنات قاعدة البيانات الى قاعدة اخرى ، فالاكسس يتوقف كثيرا عند الجداول الاكسل المرتبطة ، بينما لا يأخذ اي وقت لهذا الاستعلام 3. اختار الحقول اللي تريدها فقط ، جعفر Muscat_Query.zip1 point
-
وعليكم السلام ورحمة الله وبركاته ,, بدايةً قمت بتغيير بعض اسماء العناصر من العربية الى الانجليزية ، ولكنها ليست ذات صلة بالحل . اجعل هذا الاستعلام مصدر سجلات التقرير SELECT tbl_info_fonctionnaire.grade_poste_actuel, Sum(IIf(tbl_info_fonctionnaire.sex="ذكر" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=0 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<30,1,0)) AS عدد_الذكور_أقل_من_30, Sum(IIf(tbl_info_fonctionnaire.sex="أنثى" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=0 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<30,1,0)) AS عدد_الإناث_أقل_من_30, Sum(IIf(tbl_info_fonctionnaire.sex="ذكر" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=30 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=40,1,0)) AS عدد_الذكور_بين_30_و_40, Sum(IIf(tbl_info_fonctionnaire.sex="أنثى" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=30 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=40,1,0)) AS عدد_الإناث_بين_30_و_40, Sum(IIf(tbl_info_fonctionnaire.sex="ذكر" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=41 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=50,1,0)) AS عدد_الذكور_بين_41_و_50, Sum(IIf(tbl_info_fonctionnaire.sex="أنثى" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=41 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=50,1,0)) AS عدد_الإناث_بين_41_و_50, Sum(IIf(tbl_info_fonctionnaire.sex="ذكر" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=51 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=55,1,0)) AS عدد_الذكور_بين_51_و_55, Sum(IIf(tbl_info_fonctionnaire.sex="أنثى" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=51 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=55,1,0)) AS عدد_الإناث_بين_51_و_55, Sum(IIf(tbl_info_fonctionnaire.sex="ذكر" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=56 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=59,1,0)) AS عدد_الذكور_بين_56_و_59, Sum(IIf(tbl_info_fonctionnaire.sex="أنثى" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=56 And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())<=59,1,0)) AS عدد_الإناث_بين_56_و_59, Sum(IIf(tbl_info_fonctionnaire.sex="ذكر" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=60,1,0)) AS عدد_الذكور_أكبر_من_60, Sum(IIf(tbl_info_fonctionnaire.sex="أنثى" And DateDiff("yyyy",tbl_info_fonctionnaire.date_naissance,Date())>=60,1,0)) AS عدد_الإناث_أكبر_من_60, Count(IIf(tbl_info_fonctionnaire.sex="أنثى",1,Null)) AS عدد_الإناث_حسب_الدرجة, Count(*) AS المجموع_الكلي FROM tbl_info_fonctionnaire GROUP BY tbl_info_fonctionnaire.grade_poste_actuel; الملف بعد التعديل base_S - Copy.accdb اعتذر ، لم أر تعليق الأستاذ @ابو البشر ، ولكن له الأصل في حق الإجابة كنت في الصفحة ولم اقم بعمل تحديث لها قبل الرد أثناء كتابة الاستعلام والتجارب عليه1 point
-
السلام عليكم اتفضل وانصحك باستخدام الداله فى الموضوع التالى لاخى ومعلمى العزيز جعفر بالتوفيق رصيد_تراكمى_1.accdb1 point
-
المعذرة اخي ابو البشر ما توقعت انه التعديل على الطلب سيكون متعب لك كنت اتوقع ان الموضوع هو تغير مواقع المعذرة مرة اخرى1 point
-
ما شاء الله عليك أخي الكريم @Ahmos ، أبدعت في السيطرة على الفكرة وبلورتها حسب حاجتك جزاك الله خيراً ، وبارك الله فيك وزادك علماً نافعاً1 point
-
1 point
-
فعلا لا يمكن تحويل الملف من 64 الى 32 بص انت تنزل نسخه على جهاز وهمي وتسطب فيها اوفيس 32 بت ومنها تفتح الملف وتحول الى accde ف هيكون ان شاء الله شغال عن تجربه1 point
-
1 point
-
1 point
-
1 point
-
اليك حل اخر بالاكواد لعله يفيد حضرتك وممكن تعدل عليه علي حسب رغبه حضرتك Private Sub Worksheet_Change(ByVal Target As Range) Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim hijriDate As String ' تعيين الورقة النشطة Set ws = ThisWorkbook.Sheets("Sheet1") ' تأكد من تغيير اسم الورقة إذا كان مختلفًا ' التحقق إذا كان التغيير في النطاق X3 إلى آخر خلية تحتوي على بيانات If Not Intersect(Target, ws.Range("X3:X" & ws.Cells(ws.Rows.Count, "X").End(xlUp).Row)) Is Nothing Then ' العثور على آخر صف يحتوي على بيانات في العمود X lastRow = ws.Cells(ws.Rows.Count, "X").End(xlUp).Row ' تكرار عبر الصفوف من X3 إلى آخر صف For i = 3 To lastRow ' قراءة التاريخ الهجري من الخلية hijriDate = ws.Cells(i, "X").Value ' التحقق إذا كانت الخلية تحتوي على تاريخ If hijriDate <> "" Then ' التحقق إذا كان حرف "هـ" موجودًا بالفعل If InStr(hijriDate, "هـ") = 0 Then ' تحويل التاريخ إلى التنسيق المطلوب وإضافة حرف "هـ" ws.Cells(i, "X").Value = Format(hijriDate, "yyyy/mm/dd") & "هـ" End If End If Next i End If End Sub مثل التاريخ.xlsm1 point
-
السلام عليكم ورحمة الله وبركاته جرب المعادلة =IF(AND(B2=0; A2>0); A2 + 1; IF(AND(B2>=1; A2=0); 0; IF(AND(B2>=1; A2>0); A2 - B2; A2))) الملف المصنف1.xlsx1 point
-
هذه الجملة نفت الموضوع وأعطت له جواب قطعي1 point
-
بسم الله بسم الله .. ما شاء الله ما شاء الله .. بسم الله المكين .. نعوذ بالله من السحر والعين لا هذي يبغالها سطل قهوة على صحن برياني على دست حلوى عمانية علشان الواحد يستوعب كم الإبداع والعبقرية الي يحويها هذا الموضوع 😅👌 الاسم لوحده تحفة 😄🖐🏻 شكرا ألف على كل هذي الدرر .. شيخ المعلمين 😊🌹🌷1 point
-
أتوقع الحل بدمج دالتي VLOOKUP COUNTIF بهذه الطريقة =IFERROR(VLOOKUP(L2;$R$2:$T$13;2;FALSE)-1+COUNTIF($L2:$L$2;L2);"") ترقيم بشروط1.xlsx1 point
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته اليكم برنامج خبور المحاسبي المعدل الذي قمت فيه باجراء بعض التعديلات التي اثمرها لنا تجاوبكم معي في الاصدارين الاول والثاني وكانت الاراء تنصب اساسا في التالي : اولا- الدليل المحاسبي : عملته بالشكل التالي : جدول للدليل تضبط من خلالها السلسلة الرقمية لكل اختيار من الاسم في الدليل , مثلا لو اخترنا اصول ثابتة نضبط السلسلة الرقمية لها مثلا من الرقم 11 الى الرقم 99 والبرنامج بيتعامل مع هذه السلسلة في اضافة الحسابات لهذا الاسم للعلم ان لك حرية اختيار السلسلة الاسمية والرقمية فقط ان تكون في ترتيب متسلسل داخل جدول الدليل يعني ممكن تعمل اسمان لسلسلة واحدة مثلا اصول متحركة / صناديق من 1201 الى 1500 اصول متحركة / بنوك من 1501 الى 2000 واثناء اضافتك لاي حساب سيظهر لك قائمة الاسماء التي وضعتها في جدول الدليل لاختيار الصنف الذي تريده لترتيب حساباتك في ميزان المراجعة 2- نتيجة لهذه الاضافات حذفت قائمة العملاء والموردين الموجوده في الاصدارات السابقة واضافتهم ستكون في ميزان المراجعة (الذي اصبح مكون من 1000 سجل ) حسب التسلسل الذي ستضبطه في دليلك ممكن تعمل للعملاء سلسلة رقمية وللموردين سلسلة رقمية اخرى صفحة ميزان المراجعة: تعمل التالي : 1- هي المحتوى الكلي للحسابات تظهر من خلالة جميع الحسابات متسلسلة بالضابط الدليلي مجاميع وارصدة بالعملة الرئيسية وارصدة العملات الاخرى مع تعريف للحساب اذاكان مدين اودائن واسماء العملات المستخدمة لكل حساب ويظهر فيه فرق سعر العملات التلقائي قبل المجاميع الكلية 2- تتحول اثناء استخدامك للتصفية من عمود الدليل الى كشوفات تحليلية للحسابات حسب الصنف الدليلي المختار مثلا اذا اخترت اصول ثابتة تظهر لك الحسابات المشتملة على هذا الاسم مع المجاميع والارصدة الخاصة بها ويتحول الاسم من ميزان المراجعة الى كشف تحليلي لحساب الاصول الثابتة وهكذا بالنسبة لجميع الاصناف الدليلية 3- تتحول اثناء استخدامك للتصفية من عمود العملة الى كشف بحسابات العملة المختارة. ثانيا: بالنسبة للتعديلات وهي ملاحظة الاخ تويتي يمكنك تعديل القيد مثلا: اذا كان لديك القيد الاتي 50000 من حـ مصروفات نثرية 50000 الى حـ الصندوق يمكنك التعديل الى 15000 من حساب مصروفات نثرية 35000 من حـ مصروفات صيانه 50000الى حـ الصندوق والعكس وطبعا لديك صفحة القيود تتكون من 200 سجل يمكنك التعديل بدون اي مشاكل لعدد السجلات في اي قيد ممكن تعدل القيد المكون من 2 سجل الى 200 سجل والعكس وهو ياخذ الترتيب التلقائي حسب رقم القيد ويمكنك التأكد من ذلك بنسخ البيانات ( وهو زر جديد) لنسخ البيانات في ملف جديد ستلاحظ الترتيب التسلسلي لبياناتك حسب الترتيب التصاعدي للقيود اضافات جديدة : 1- لا يفتح البرنامج الا باسم المستخدم وكلمة المرور اسم المستخدم " خبور" كلمة المرور"بسم الله" يمكنك بعد ذلك تعديل اسم المستخدم وكلمة المرور من زر اسم المستخدم في صفحة الاعدادات ويمكنك تعديل كلمة المرور للتعديلات من نفس الزر كلمة المرور للتعديلات "بسم الله" 2- صفحة القيود هي الصفحة التي يتم فيها التعديل واصبحت صفحة دفتر الاستاذ صفحة للتنقل السهل من القوائم لجميع الحسابات في ميزان المراجعة واختيار تواريخ اختيارية من القوائم للكشوفات ارجو من الله تعالى ان ينال رضاكم فقط لا تنسونا من الدعاء ولا تنسونا من ملاحظاتكم اخوكم خبور __________________________.rar1 point
-
السلام عليكم ورحمة الل وبركاته مرفق طيه ثلاثة ملفات بهم شرح رائع ومبسط باللغة الإنجليزية لإكسل - اكتشفوها بنفسكم basic_excel_techniques.rar1 point
-
السلام عليكم ورحمة الله وبركاته أضع بين يدي أخوتي الكرام في هذا المنتدى الأغر ملف رائع حصلت عليه به شرح لجميع دوال إكسل (حوالي 340 دالة) مع رابط لكل دالة لشرح أكثر من موقع مايكروسوفت worksheet functions.rar1 point
-
السلام عليكم ورحمة الله وبركاته أثناء تجوالى في الانترنت وقعت على كتاب أكثر من رائع وبالعربي يشرح Excel VBA بأسلوب سهل جداً وبسيط وجذاب في أربعمائة صفحة، وأرجو أن ينال إعجابكم هاهو الرابط http://www.mediafire.com/download/dj01xxwnczia62k/VBA+Excel.rar دمتم بخير وود1 point
-
1 point
-
السلام عليكم بعد ان اكملت العمل و جدت الاخوة الكرام قد سبقوني لذلك لكنني سأرسل محاولتي ان كنت قد فهمت المطلوب cotton 2012.rar1 point