نجوم المشاركات
Popular Content
Showing content with the highest reputation on 09/01/20 in all areas
-
جرب خذا الملف (يمكنك نسح الكود منه واسعماله في ملفك) يستطيع تقسيم الاسماء حتى ولو كانت اسماء مركبة مثل ( عبد الخالق عبد الرضى) بالاضافة الى الأسماء المختلطة (عبد السلام ماهر) أو (ربيع عبد الملك) والاسماء العادية ( سعيد مرزوق) الصفحة الأولى Sheet1 استحراج الاسماء حتى المرتبة الخامسة في الصفحة الثانية Salim الأسم الأول مع الاسم الأخير فقط Fuction_split_name.xlsm3 points
-
هل جربت البرنامج .... عند الضغط على الزر تفتح لك صفحة البراوز لتحديد مكان ملف الاكسس منسوخ له الجدول وعند الاختيار يتم نسج الجدول مباشرة .... جرب المرفق ..... البرنامج.rar3 points
-
تحتاج فقط إلى تغيير تنسيق الرقم يمكنك تغيير كود زر الضرب والقسمة إلى هذا الكود Private Sub CommandButton3_Click() TextBox3.Text = Format(Val(TextBox1.Text) * Val(TextBox2.Text), "#.00") End Sub Private Sub CommandButton4_Click() TextBox3.Text = Format(Val(TextBox1.Text) / Val(TextBox2.Text), "#.00") End Sub2 points
-
السلام عليكم معذرة لتأخري لأنني صرت أعمل في المزرعة عوضا عن أبي المريض في هذه الأيام. الله يشفيه. أخي حسين الكود الأول الذي تقدم به أستاذنا جعفر و كذلك الذي تقدمت به أنا يقومان بالواجب. فكل ما عليك هو إضافة كود استخراج تاريخ الجهاز ثم المقارنة بينهما أما بالنسبة لشرح الأكواد فهو كالتالي: هذا الكود يقوم بفتح الإتصال مع sql server مع العلم أن master هي قاعدة بيانات النظام في sql server هنا قمنا بتنفيذ إستعلام داخل السرفر و أسندنا النتيجة لمصدر السجلات RS GETDATE() هو كود يقوم بجلب التاريخ الحالي في sql server و تستطيع كتابة العبارة التالية في sql server لترى النتيجة select GETDATE() MsgBox RS(0) هنا قمنا بعرض السجل الأول في المصدر RS مع العلم أن بها سجل واحد فقط هنا قمنا بإعلاق الإتصال مع SQL SERVER2 points
-
السلام عليكم 🙂 هذه طريقتي لتفكيك الحقل الى حقول 🙂 نأخذ المرفق كالمثال من هذا الرابط : . هكذا تبدو السجلات ، بالعين المجردة : . والمطلوب ان نقسم بيانات السجل الواحد الى: الاسم ورقم التسلسل (وخلينا نستخدم السجل الاول كمثال) ، ونريد النتيجة تكون : . هناك طريقتين لفرز هذه البيانات : عن طريق كود ليقرأ الحروف/الارقام/العلامات واحدا واحدا ، ثم بوضع شروط اذا جصلنا على رقم ، فنتوقف ونحفظ الجزء الاول ، ثم نواصل ... ، وهذه العملية مرهقة وتحتاج الى تفاصيل كثيرة ، عن طريق الكود ، ولكن بإستخدام الدالة Split ، ويشترط فيها ان نعرف اين (بعد اي حرف/رقم/علامات) نقسم السطر ، ولنسمية شرط القطع . سنتعامل مع الطريقة الثانية وهي الاسهل 🙂 لمعرفة شرط القطع ، يمكننا ان نتعامل مع الحروف/الارقام/العلامات مباشرة ChrW ، او نتعامل مع ارقام هذه (الحروف/الارقام/العلامات) AscW ، وانا لا استغني عن هذه الصورة المرفقة لعملي ، الحرف Chr ، ومقابله رقمه Dec : . وبالنسبة للحروف العربية ، هذا رابطها : https://sites.psu.edu/symbolcodes/languages/mideast/arabic/arabicchart/ او https://www.ssec.wisc.edu/~tomw/java/unicode.html#x0600 وقد قمت باخذ البيانات من الموقع ورتبتها في صفحة واحد : فمثلا اول حروف اسم ابراهيم : ا = 1575 ، ب = 1576 ، ر = 1585 ، بمعنى AscW(ا) = 1575 , AscW(ب) = 1576 , AscW(ر) = 1585 والعكس يكون ChrW(1575) = ا , ChrW(1576) = ب , ChrW(1585) = ر . للحصول على الاسم ، نريد ان يكون لدينا شرط القطع بعد الاسم وقبل بداية الرقم (اي في المنطقة 1) ، للحصول على التسلسل ، نريد ان يكون لدينا شرط القطع بعد التسلسل وقبل بداية الاسم التالي (اي في المنطقة 2) ، لمعرفة شرط القطع يجب علينا ان نحلل البيانات التي يراها الكمبيوتر ، وذلك بتحويل الحروف/الارقام/العلامات الى AscW ، هذا الكود يقوم بهذه العملية: Public Function Split_Names() Dim rst As DAO.Recordset Dim x() As String Dim i As Long Dim a As String Set rst = CurrentDb.OpenRecordset("Select * From MyTxt_from_pdf") Do Until rst.EOF For i = 1 To Len(rst!Field1) a = Mid(rst!Field1, i, 1) 'الحروف/الارقام/العلامات a = a & "(" & AscW(a) & ") " 'رقمها AscW Debug.Print a Next i Loop rst.Close: Set rst = Nothing End Function ونناديه من نافذة الكود هكذا (يجب ان يكون الكيبور باللغة الانجليزة عند كتابة علامة الاستفهام) : . ونرى ان النتيجة للسجل الاول فقط : . وبعد التدقيق ، نلاحظ ان في نهاية الارقام نرى ان AscW التالية متكررة 8236 ثم 8236 ثم 32 ثم 32 ، وبذلك يمكننا استعمال هذه كشرط القطع بعد الاسم ا(1575) ق(1602) ل(1604) ح(1581) ا(1575) د(1583) م(1605) ح(1581) ي(1610) ا(1575) م(1605) و(1608) د(1583) د(1583) س(1587) ه(1607) ?(8236) ?(8236) ?(8236) -32 -32 -32 -32 -32 -32 . بعد الرقم 3(1635) 2(1634) ?(8236) ?(8236) ?(8236) ?(8236) -32 -32 -32 -32 . وعليه نستعمل هذا الكود ، ونرى نتيجته (للسجل الاول) : Do Until rst.EOF x = Split(rst!Field1, ChrW(8236) & ChrW(8236) & ChrW(32) & ChrW(32)) 'Name + ID For i = LBound(x) To UBound(x) Debug.Print x(i) Next i rst.MoveNext Loop ونتيجته ?ابراهيم احمد يحيى احمد? ??3 ?ابتهاج سامح نسيم اقلديوس? ??2 ?ابتسام محمد عبدا حماده? ??1?? . والآن خلينا نفكك الاسم من الرقم : Do Until rst.EOF x = Split(rst!Field1, ChrW(8236) & ChrW(8236) & ChrW(32) & ChrW(32)) 'Name + ID For i = LBound(x) To UBound(x) 'Debug.Print x(i) x2 = Split(x(i), ChrW(8236) & ChrW(32) & ChrW(32)) For j = LBound(x2) To UBound(x2) Debug.Print x2(j) Next j Next i rst.MoveNext Loop والنتيجة ?ابراهيم احمد يحيى احمد ??3 ?ابتهاج سامح نسيم اقلديوس ??2 ?ابتسام محمد عبدا حماده ??1?? . ونلاحظ من القائمة اعلاه ، ان علامات الاستفهام ارقامها ?(8235) ?(8234) ?(8236) . الخطوة الاخيرة هي تنظيف النتيجة من علامات الاستفهام هذه عن طريق الامر Replace ، والتخلص من المسافة الزائدة قبل وبعد النتيجة عن طريق الامر Trim ، وبعدها نريد ان نحفظ الاسم في اول حقل ، والرقم في الحقل الثاني: LBound دائما تساوي صفر Do Until rst.EOF x = Split(rst!Field1, ChrW(8236) & ChrW(8236) & ChrW(32) & ChrW(32)) 'Name + ID For i = LBound(x) To UBound(x) 'Debug.Print x(i) x2 = Split(x(i), ChrW(8236) & ChrW(32) & ChrW(32)) For j = LBound(x2) To UBound(x2) 'Debug.Print x2(j) a = Replace(x2(j), ChrW(8234), "") a = Replace(a, ChrW(8235), "") a = Replace(a, ChrW(8236), "") a = Trim(a) 'If j / 2 = Int(j / 2) Then If j = 0 Then 'even Debug.Print "Name: ", a Else 'odd Debug.Print "ID: " & a End If 'Debug.Print a Next j Next i rst.MoveNext Loop والنتيجة Name: ابراهيم احمد يحيى احمد ID: 3 Name: ابتهاج سامح نسيم اقلديوس ID: 2 Name: ابتسام محمد عبدا حماده ID: 1 Name: احمد السيد على محمد ID: 6 Name: ابراهيم كمال ابراهيم محمد ID: 5 Name: ابراهيم سمير عياد عطاا ID: 4 Name: احمد حسن احمد رسلن ID: 9 Name: احمد حجازى على محمد ID: 8 Name: احمد السيد محمد عبدالرحمن ID: 7 . -------------------------------------------------------- وفي سياق هذا الموضوع ، كان عندي مشروع القرآن الكريم ، وحفظه في قاعدة البيانات بعدة طرق: كل صفحة عبارة عن سجل ، وفي جدول آخر ، كل سطر في سجل ، وفي جدول آخر ، كل آية في سجل وقمت بتنزيل القرآن الكريم من مجمع الملك فهد لطباعة المصحف الشريف : https://fonts.qurancomplex.gov.sa/wp02/حفص والمرفق يحتوي على الخط العثماني ، والذي تم عمله في المجمع ، ولذا فهو يحتوي على حروف/ارقام/علامات AscW تختلف عن غيرها من الخطوط ، والطريقة الوحيدة لتفكيك الاسطر كانت بإتباع خطوات شبيهه بالخطوات اعلاه 🙂 جعفر1 point
-
السلام عليكم عندى ملف اكسل خاص بالمشتريات الشهرية كيف يمكن نقل قيمة المشتريات من شركة معين الى صفحة ثانية (المستحق) بحيث تكون بعد مدة السداد المحددة مثلا في شهر 7 تم الشراء من X1 850 كيف يمكن نقل هذا القيمة الى التبوب الثاني المستحق ولكن بعد مدة السداد شهر (30يوم) بحيث تكون في مستحق شهر 8 و هكذا X2 300 تكون في مستحق شهر 10 يعني بعد 90يوم ولكم كل الشكر حساب المستحق.xlsx1 point
-
السلام عليكم ورحمة الله وبركاته عندي برنامج مرتبط بجداول علي سيكوال سيرفر اريد جلب تاريخ ووقت السيرفر في حقل في نموذج بدل من تاريخ ووقت جهاز المستخدم الي عليه البرنامج IP _SERVER_ 128.122.1.20 وجزاكم الله خيرا1 point
-
تم التحديث قليلاً من جهة احتصار الأكواد حدد ما تريد اخفاءه (او اظهاره ) واضغط الزر المناسب Fathi_Use_superr.xlsb1 point
-
ماشاء الله شرح اكثر من رائع ووافى جلعله الله فى ميزان حسناتك ان شاء الله جزاك الله خيرا معلمنا العزيز جعفر وبارك الله لنا فيك وبارك لك فى كل ما تحب 💐1 point
-
لاشكر علي واجب نحن نتعلم منك استاذ الفاضل وهذه فكرتك بس انا وضعت لمسه صغيره فقط1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته تفضل اخي الكريم هذا في وحدة نمطية Public Function XSum(A As Integer, B As Integer, C As Integer) As Integer If A = 0 Then A = 1 If B = 0 Then B = 1 If C = 0 Then C = 1 XSum = A * B * C End Function وهذا في النموذج Me.X5 = XSum(Me.x1, Me.x2, Me.x3) xy.rar تحياتي1 point
-
مبدأيا يمكن عمل فكرتك باحدى طريقتين : 1- نجعل الاكسس قبل الالحاق يتأكد سجل سجل ( هل هو موجود او لا ) واعتقد هذه الطريقة تأخذ وقت وخاصة اذا كانت السجلات كثيرة 2- نجعل الاكسس يحصر السجلات الموجود في الجدولين وفي حال وجود مكرر يظهرها لنا في نموذج وسؤالنا هل نريد الحاق هذه الاسماء المكررة ام لا اذا اذا كان ليس هناك تكرار في السجلات يقوم بالحاق السجلات دون اظهار النموذج وقد تكون هناك طرق اخرى .....1 point
-
اخي الكريم يجب الا تنزعج مما قاله اخي مهند مهما كان السؤال بسيط يجب الالتزام بقوانين المنتدى هو ادراج ملف هذا في مصلحة الاعضاء حتى يتسنى للاساتذة ان يتفاعلو ا معك على العموم جرب هذه المحاولات لعلها تفيدك 1- اذاكان الملف محمي قم بفك الحماية 2- اذا كان هناك ملفات اكسيل مفتوحة اغلقها 3- قم بحدف الملفات الموجودة في ملف temp داخل جهازك 4- نتيجة لتحديثات النظام قد يكون تم وضع قيود راجع اعدادات امان النظام 5- قم يتحديث الاوفيس لديك 6- الحل الاخير اعد تتبيث الاوفيس من جديد1 point
-
كما تفضلت استاذي الفاضل jjafferr انشأة جدول وسميته tbl_DateTime في قاعدة بينات سيكول يتكون من معرف/ وحقل تاريخ القيمة الافتراضية ()getdate وحقل اسمه tamp نوعه نص وفي النموذج وضعة حقل غير منضم وجعلة قيمته الافتراضية (1) /لاني النموذج عندي غير مرتبط بجدول / وفي حقل البحث وضعت كود لادراج رقم 1 من حقل tamp الي الحقل tamp / في جدول tbl_DateTime وبعد الادارج في الجدول يعطينا التاريخ والوقت الحالي للسيرفر فاستدعية في الحال عن طريق دالة DMax في حقل في النموذج اسمه srvr_Date_Time وفي زر الادخال توضع المقارنه بين تاريخ الجهاز وتاريخ السيرفر1 point
-
وعليكم السلام ورحمة الله وبركاته توجد اكثر من طريقة فيمكنك مثلا استخدام دالة DLookup لعرض الوظيفة اذا كان combobox نص =DLookup("[XJop]"; "tbl"; "XName ='" & XName & "'") اما اذا كلان رقم =DLookup("[XJop]"; "tbl"; "XName =" & XName) وبدون ارفاق مثال لن تستطيع الوصول الى حل سريع تحياتي1 point
-
تم معالجة الأمر (مع تعديل بسيط في ظهور الــ CheckBox يشكل يمكن قرائته بسهولة) مع التقليل من اهتزاز الشاشة قدر الامكان بواسطة 2 كود جديدين Debut و Fin Fathi_User.xlsb1 point
-
صديقي انت قمت بتسمية الــــ Labels بجروف صغيرة a/b/c ..... و الاكسل يرى الفرق بين الحرف الكبير A والجرف الصغير a لذا يجب عليك ان تعمل احد هذين الاجرائين 1- تغيير اسماء الــــ Labels الى الأحرف الكبيرة A/B/C...... أو 2- تغيير الكود لكل Label كما في هذا الصورة و كود ظهور واخفاء الأعمدة كما في هذه الصورة ( علامة ? تدل على ان الاسم مؤلف من حرف واحد مثلاً D و علامة ?? تدل على ان الاسم مؤلف من حرفين مثلاً AC )1 point
-
1 point
-
استخدم هذا الكود Dim fpathz As Variant Dim fil As String With Application.FileDialog(3) .Title = "Choose File" .Filters.Clear .Filters.Clear .Filters.Add "All Files", "*.*" .AllowMultiSelect = False .InitialFileName = "" If .Show = -1 Then fpathz = .SelectedItems(1) End If End With 'DoCmd.SetWarnings False DoCmd.RunSQL "INSERT INTO tb_redy_rateb ( id_imp, tmonth, tyer, school, tnam, national_iD, old_asis, new_asis, elawa14, elawa15, edafya, egtemaya, hafz25, adaaa, badlteatcher, kader, ekama, shamel, add_nesab1, add_nesab2, add_nesab3, add_nesab4, masthkak, mastktaa, safy ) IN '" & fpathz & "' SELECT * " & vbCrLf & _ "FROM tb_redy_rateb;" 'DoCmd.SetWarnings True1 point
-
1 point
-
وعليكم السلام-يمكنك استخدام هذه المعادلة لجمع الأرقام الموجبة =SUMPRODUCT(--($A$2:$A$1500>-1),$A$2:$A$1500) وهذه المعادلة لجمع الأرقام السالبة =-SUMPRODUCT(--($A$2:$A$1500<0),$A$2:$A$1500) جمع المبلغ بالسالب1.xlsx1 point
-
شكر من القلب الى الاخ @محمد أبوعبدالله على مجهوده الشخصي في مساعدتي في برنامج سابق كل الشكر لك وللقائمين على هذا المنتدى الرائع استوقفتني بعض المشاكل في البرنامج سأنشرها في منشور اخر ربما في حين فراغك تستطيع مساعدتي فيها ولو اني اثقلت عليك لكن لا زلت في بداية المشوار التعلم وان انشالله ارد لك هذا الجميل .1 point
-
جزاك الله خيرا اخي الكريم وارجو من الله العلي القدير ان يصلح لنا الاحوال وان يوفقك لما يحب ويرضى واكرر شكري وتقديري لك اخهي الكريم تحياتي1 point
-
لا تنتظر المساعدة من احد بدون رفع ملف مدعوم بشرح كافى عن المطلوب ... فلا يمكن العمل على التخمين وتجنباً لعدم اهدار وإضاعة وقت الأساتذة دون جدوى أو أهمية1 point
-
1 point
-
1 point
-
رجاء من الاخوه الافاضل شرح لى كيفية عمل اختيار اكتر من عنصر فى القائمة المنسدلة ممكن اختار او احدد اكتر من عنصر فى القائمة وتخزين القيمة فى حقل معين1 point
-
هذه المقولة لعمرو بن بحر الملقب بالجاحظ احد اركان الادب العربي ومؤسسيه يقول ابن الخلدون ان الادب العربي اصله واركانه اربعة وكل ما سواها انما هو فرع او تابع لها البيان والتبيان للجاحظ الكامل لمحمد ابن يزيد الثمالي الملقب بالمبرد ادب الكاتب لعبد الله بن قتيبة الدينوري الامالي لإسماعيل بن القاسم البغدادي القالي جزاك الله خير اخي واستاذي د. محمد حلبي 🌹 لذا في بيئة اكثر عدائية لا يستطيع المستخدم تجاوز سطح المكتب تحياتي اخي واستاذي صالح حمادي 🌹1 point
-
وعليكم السلام .. تم تحرير عمود الكمية Y وفك تقييده , كما تم دمج المعادلات طبقاً للمطلوب بهذه المعادلة بعمود القيمة =IFERROR(IF($U5="نقلة",$Z5,IF(AND(Y5>=SUMIF(data!$A$18:$A$21,$AA5,data!$B$18:$B$21),$U5="طن"),($Y5*$Z5),$Z5*SUMIF(data!$A$18:$A$21,$AA5,data!$B$18:$B$21))),"") 12346.xlsm1 point
-
وعليكم السلام-لا يوجد دالة اصلاً بهذا الإسم .... الدالة اسمها DATEDIF وليس Dateif1 point
-
بارك الله فيك استاذ محمد ولإثراء الحل -يمكنك استخدام هذه الدالة المعرفة Function Ahmed_Date(myid As Variant, Optional stype As Byte = 1) As Variant If myid = "" Then Ahmed_Date = "": Exit Function Dim n As Byte, governrate As Variant If stype = 1 Then Ahmed_Date = DateSerial(IIf(Left(myid, 1) = 2, 19, 20) & Mid(myid, 2, 2), Mid(myid, 4, 2), Mid(myid, 6, 2)) ElseIf stype = 2 Then governrate = Array("01-ÇáÞÇåÑÉ", "02-ÇáÅÓßäÏÑíÉ", "03-ÈæÑÓÚíÏ", "04-ÇáÓæíÓ", "11-ÏãíÇØ", "12-ÇáÏÞåáíÉ", "13-ÇáÔÑÞíÉ" _ , "14-ÇáÞáíæÈíÉ", "15-ßÝÑ ÇáÔíÎ", "16-ÇáÛÑÈíÉ", "17-ÇáãäæÝíÉ", "18-ÇáÈÍíÑÉ", "31-ÇáÈÍÑ ÇáÃÍãÑ", "32-ÇáæÇÏì ÇáÌÏíÏ" _ , "19-ÇáÅÓãÇÚíáíÉ", "21-ÇáÌíÒÉ", "22-Èäí ÓæíÝ", "23-ÇáÝíæã", "24-ÇáãäíÇ", "25-ÃÓíæØ", "34-ÔãÇá ÓíäÇÁ", "35-ÌäæÈ ÓíäÇÁ" _ , "26-ÓæåÇÌ", "27-ÞäÇ", "28-ÃÓæÇä", "29-ÇáÃÞÕÑ", "33-ãØÑæÍ", "88-ÎÇÑÌ ãÕÑ") For n = 0 To 27 If Mid(myid, 8, 2) = Left(governrate(n), 2) Then Ahmed_Date = Right(governrate(n), Len(governrate(n)) - 3) Exit For End If Next Else Ahmed_Date = IIf(Mid(myid, 13, 1) Mod 2 = 0, "ÃäËì", "ÐßÑ") End If End Function وعليك بوضع هذه المعادلة فى عمود محل الميلاد بداية من الخلية M6 =Ahmed_Date(E6,2) تنسيق 2020 عام-1.xls1 point
-
الف الف شكر استاذي ومعلمي الفاضل جزاك الله خيرا وجعه في ميزان حسناتك1 point
-
وعليكم السلام 🙂 نعم اعرف هذا ، لهذا السبب لم اذكر كلمة BE او محل تواجدها ، بينما في الرابط اعلاه ذكرت هذا لأن @سلمان الشهراني لم يكن يستعمل SQL Server : . انت لن تعمل مجلد مشاركة لتضع فيه اي شيء له علاقة ببرنامجك ، ويمكنك استعمال اي مجلد مشاركة عام في السيرفر ، حيث ان هذه الطريقة تختاج الى عمل ملف txt على الجهاز الآخر (السيرفر في حالتك). اما الآن فاترك كل ما عملناه ، وخلينا نتكلم عن السيرفر 🙂 انت استلمت رسالتين خطأ : 1. Type mismatch ، وهذا بسبب خطأ في السطر التالي من الكود : بدلا عن If Err.Number = 70 Then MsgBox "Permission Denied" MachineTimeGet = "" استعمل If Err.Number = 70 Then MsgBox "Permission Denied" MachineTimeGet = Empty بعد البحث ، وجدت الطريقة ، ووضعتها في نموذج جديد: جعفر 1176.my_FE_Network_PC_Time.mdb.zip1 point
-
تفضل اخى الكريم اتبع الخطوات الموجودة بهذا الرابط للوصول لحل المشكلة ولكم جزيل الشكر 6 Working Solutions to Fix “Microsoft Excel has Stopped Working” Error Message وهذا فيديو ايضاً للشرح1 point
-
1 point
-
وعليكم السلام -المنتدى تعليمى من المقام الأول وليس لتقديم البرامج الجاهزة... فهل تتخيل ان يقوم احد بتصميم برنامج كامل لك على الجاهز ؟!! عليك برفع ملف مدعوم بشرح كافى عن المطلوب مع وضع البيانات المطلوب وان شاء الله ستلقى المساعدة من الأساتذة !!!!!! أو لو قمت بإستخدام خاصية البحث بالمنتدى , كما نبهنا كثيراً لوجدت برنامج أكثر من ممتاز وبه أكثر مما تطلب لأستاذنا الكبير ضاحى الغريب له منا كل المحبة والإحترام برنامج إدارة الإيجارات - الاصدار الأول - ضاحي الغريب وهنا برنامج اخر باللغة العربية واللغة الإنجليزية ... بمقابل مادى أفضل برنامج عقارات لإدارة كافة الأنشطة العقارية متوفر باللغة العربية والإنجليزية فممنوع من قبل ادارة المنتدى رفع اى شيئ على الخاص1 point
-
وعليكم السلام-تفضل رابط التحميل : https://www.up-4ever.org/0yc50q0spzhx سريال التنشيط : KGFVY-7733B-8WCK9-KTG64-BC7D8 باسورد فك الضغط www.mrelhlawany.com1 point
-
اجعل المعادلة هكذا حتى تستطيع قراءة شهر 8 مثلاً =SUMPRODUCT((Sheet1!C2:C45<>"الغاء")*(Sheet1!F2:F45<>"محصل")*(Sheet1!D2:D45="معارض - Bmw")*(Sheet1!E2:E45)*(Sheet1!G2:G45=MONTH(S1))) Sum_pro1.xlsx1 point
-
1 point
-
بارك الله فيك أستاذنا ومعلمنا الفاضل ولكن بعد إذن حضرتك تم إضافة كود للتسلسل التلقائي في العمود A Class_3.xlsm1 point
-
بعد اذن احي أحمد بدره هذا الكود ربما يكون اسهل قليلاً (الشيت 3) Option Explicit Sub Get_data() Dim S As Worksheet Dim T As Worksheet Dim cret_rg As Range Dim col% Dim s_rg As Range Set S = Sheets("Sheet2"): Set T = Sheets("Sheet3") Set s_rg = S.Range("A1").CurrentRegion If T.Range("B3").CurrentRegion.Rows.Count > 1 Then T.Range("B3").CurrentRegion.Offset(1). _ Resize(T.Range("B3").CurrentRegion.Rows.Count - 1).Clear End If If s_rg.Rows(1).Find(T.Range("H1"), lookat:=1) Is Nothing Then Exit Sub col = s_rg.Rows(1).Find(T.Range("H1"), lookat:=1).Column With T .Range("B3") = S.Range("A1") .Range("C3") = S.Range("B1") .Range("D3") = T.Range("H1") .Range("H2") = "غ" Set cret_rg = .Range("H1:H2") s_rg.AdvancedFilter 2, cret_rg, .Range("B3:D3") .Range("H2") = "" End With End Sub الملف مرفق Class_3.xlsm1 point
-
بسم الله الرحمن الرحيم اخواني الكرام اسعد الله ايامكم وبعد هذا ملف رائع مبذول فيه جهد ملحوظ ندعو الله ان يجازي كل من ساهم في اخراجه الى النور وهو الاستاذ عادل حنفي واستاذ يوسف ****** ارجو من حضراتكم *** اضافة كود ليفتح الملف وتكون لغة الكتابه دائما باللغه العربيه ثانيا : اضافة جزئيه في كود التوزيع العشوائي انه عند الضغط على زر DO JOB ونكون قد كتبنا يدويا حرفالحاء لبعض الاسماء يتم التوزيع كاملا مع ترك هذه الاحرف ليكونوا احتياطيا وجزاكم الله كل خير توزيع الملاحظين.rar 342.93K 80 عدد مرات التحميل1 point
-
الاستاذ الفاضل نارت (ابوادم) نسأل الله ان يديم عليك نعمة الصحة والعافية ويبارك لك في مالك ورزقك وولدك وللاخ محمد أيمن مثل ذلك بارك الله فيكم ونفع بعلمكم1 point
-
جميلة اخي نزار و لكن الاخ ياسر طلب ان تكون البداية من الرقم الثاني بحيث يكون التاريخ 01 / 10 / 1978 اتمنى ان تفي هذه المعادلة بالمطلوب =19&MID(B1,2,2)&"/"&MID(B1,4,2)&"/"&MID(B1,6,2)1 point