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

عبدالله بشير عبدالله

الخبراء
  • Posts

    505
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    19

كل منشورات العضو عبدالله بشير عبدالله

  1. اتصحك بتحميل لصدار حديث لاته هناك دوال لا تعمل على الاصدارات القديمة المشكلة في اصدار الاكسل لديك قمت يالتعدبل على الكود ليتوافق مع 2007 جرب الملف المعدل سرى الشهادة الاعدادية.xlsb
  2. الملف يعمل بدون مشاكل من خلال الصورة المرفقة بلدو ان اصدار الاوفيس 2007 ان كان 2007 فالكود اعتقد لا يتوافق مع هذا الاصدار
  3. السلام عليكم الاستاذ محمد هشام اهنئك على الكود الرائع اعتقد انه يقصد جمع الارقام في التاريخ المتشابه بمعنى OnRng(n, tmp + 1) = OnRng(n, tmp + 1) & "-" & g(i, 1) بدل الشرطة بربد جمعة OnRng(n, tmp + 1) = OnRng(n, tmp + 1) + g(i, 1) هذا حسب فهمى لطلبه والله اعلم وننتظر رأيه في الامر
  4. ,وعليكم السلام توجد نقطة مهمة وهي توجد تواريخ مكررة اين توضع كمياتها كما في مثالك
  5. السلام عليكم ورحمة الله وبركاته تفضل واتمنى ان يحقق طلبك تم عمل قائمة اختيار (شاهد الصورة المرفقة) الكود Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Me.Range("N5")) Is Nothing Then Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim wsSource As Worksheet Dim wsDest As Worksheet Dim schoolName As String Dim lastRow As Long Dim destRow As Long Dim i As Long Set wsSource = ThisWorkbook.Sheets("اسماء العاملين ") Set wsDest = ThisWorkbook.Sheets("طباعة كشف المدرسة") schoolName = Me.Range("N5").Value wsDest.Range("A9:Z" & wsDest.Cells(Rows.Count, "A").End(xlUp).Row).ClearContents destRow = 9 lastRow = wsSource.Cells(Rows.Count, "B").End(xlUp).Row For i = 7 To lastRow If wsSource.Cells(i, 6).Value = schoolName Then wsDest.Cells(destRow, 1).Value = destRow - 8 wsDest.Cells(destRow, 2).Resize(, 4).Value = wsSource.Cells(i, 2).Resize(, 4).Value wsDest.Cells(destRow, 9).Value = wsSource.Cells(i, 6).Value destRow = destRow + 1 End If Next i Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End If End Sub الملف سرى الشهادة الاعدادية.xlsb سرى الشهادة الاعدادية.xlsb
  6. وعليكم السلام ورحمة الله وبركاته المعادلة =SUMIFS(C:C; B:B; ">=" & DATE($E$4;1;1); B:B; "<=" & DATE($E$4;12;31)) الملف جمع القيم بناء على السنة.xlsx وفقكم الله
  7. السلام عليكم ورحمة الله وبركاته عن طريق الكود ويمكن اضافة اي حرف احتمال يحدث فيه اختلاف شاهد المرفق بحث حتى لو فى اخلاتف بسيط1.xls وفقك الله
  8. وعليكم السلام ورحمة الله وبركاته بدون ارفاق ملف ندخل في باب الاحتمالات اما .... واما الرسالة المعروضة تعني أن هناك عنصرًا (مثل ActiveX أو مكون في UserForm كـ ListBox أو ComboBox او غيره) في النموذج الخاص بك اوفي الاكواد غير متوفر على جهازك. بمكنك معرفة الكائن او المكتبة الغير متوفرة من خلال :- 1- الكود 2- او الانتقال إلى Developer > Visual Basic > Tools > References اذا وجدت كلمة MISSING (بمعنى مفقود) المكتوب امام الكلمة هي المكتبة المفقودة الصورة المرفقة كمثال لمكتبة مفقودة 3- الغاء التاشير من كلمة MISSING قد يحل المشكلة احيانا وليس دائما اتمنى ان اكون قدمت لك ما يقيد لك وافر التقدير والاحترام
  9. السلام عليكم ورحمة الله وبركاته الملف به 1048576 مليون معادلة صفيف في صفحة الموظفين به 1048576 مليون معادلة صفيف في صفحة المعلمبن 8 تم حذف المعادلات ويمكنك اعادة كتابنها حسب حاجنك لم توضح ما هو الذي تريد البحث عنه وفي اي شبتات واين توضع نتيجة البحث على كل حال محاولة حسب تخمينى يوجد زر في شيت الرئيسية باسم بحث مدرسة ديوان الطالب مفصلة 26-10-2024.xlsb
  10. لو طبقت ماطلبناه منك وهو كنابة النتائج يدويا لسهلت علينا الامر ,, اذاكان رامي يفترض ترقيمه 16 كما ذكرت معنى هذا هو اول خطأ في الترقيم وكل ماسبقه صحيح واخرهم ابو رامي وترقيمه 15 ولكن حسب من تنطبق عليه الشروط حسب فهمي يكون رامي ترقيمه 12 وليس 16 جرب المعادلة =IF(J2 > 110; IF(I2 <> ""; MAX(H$1:H1) + 1; MAX(H$1:H1)); "")
  11. السلام عليكم ورحمة الله وبركاته جرب المعادلة =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.xlsx
  12. اخونا الفاضل : السلام عليكم ورحمة الله وبركاته النتائج اليدوية : - المقصود بها ان تكتب في العمود G مثلا الترقيم الصحيح الذي تريده يدويا في الخلايا الملونة حتى بتضح لنا اين الخلل في الترقيم مع ترك العمود H كما هو ثانبا العمود i لاحظت انك تذكر اكبر من الصفر هل العمود تصي ام رقمي ننتظر توضبحكم مع وافر التقدير والاحترام
  13. وعليكم السلام ورحمة الله وبركانه في الإصدارات الحالية من Excel، حسب علمى لا يوجد والله اعلم
  14. وعليكم السلام ورحمة الله وبركاته لو ارفقت لنا ملفك لاختصرت الوقت او ارفقت الجملة التى بها خطأ لسهلت لنا الامر يدون ملف محاولات قد تصيب وقد تخطئ ريما السبب من جملة FILESEARCH والتي اعتقد انها غير متوافقة مع الاصدارات بعد 2003 ( غير متاكد منها) سنفترض ان الامر منها فيكون تعديل الكود كالتالى Private Sub FrstChnge(combo1 As ComboBox, combo2 As ComboBox) Dim val As String Dim Namey As String Dim fso As Object Dim folder As Object Dim file As Object combo2.Clear If combo1.Value = "" Then MsgBox "الرجاء اختيار شيت من القائمة", vbExclamation Exit Sub End If val = ThisWorkbook.Path & "\" & combo1.Value & "\Ser" Set fso = CreateObject("Scripting.FileSystemObject") If fso.FolderExists(val) Then Set folder = fso.GetFolder(val) For Each file In folder.Files If LCase(fso.GetExtensionName(file.Name)) = "xlsx" Then Namey = file.Name Namey = Left(Namey, Len(Namey) - 5) ' إزالة الامتداد .xlsx combo2.AddItem Namey End If Next file Else MsgBox "المجلد غير موجود: " & val, vbExclamation End If Set fso = Nothing Set folder = Nothing Set file = Nothing End Sub او جرب الكود التالى Private Sub FrstChnge(combo1 As ComboBox, combo2 As ComboBox) Dim val As String Dim filePath As String Dim fileName As String val = combo1.Value combo2.Clear If val = "" Then Exit Sub filePath = ThisWorkbook.Path & "\" & val & "\Ser\" fileName = Dir(filePath & "*.xls*") Do While fileName <> "" combo2.AddItem Left(fileName, Len(fileName) - 4) fileName = Dir Loop End Sub اذا لم بعمل ارفق ملفك وفقك الله
  15. وعليكم السلام ورحمة الله وبركاته =CEILING(G14*E14; 1) بالتوفيق
  16. وعليكم السلام ورحمة الله وبركاته تم عمل كود بدل معادلات الصفيف والترتيب الكود ينظر الى السنة اولا بمبن العلامة المائلة ثم يبحث عن اصغر رقم يسارا تم عمل قائمة اختيار لاختيار N° Bordereau وكلما اضفت رقما اضيف الى القائمة لك كل الاحترام والتقدير BORDEREAU FACILE1.xlsm
  17. جربى الملف المرفق وفيه حالة نفس المرتب المعايير التى بنى عليها الكود هي :- المقارنة بين المرتبات: يقوم الكود بمقارنة المرتب الرسمي لكل موظف بين الملفين، ويضيف النتيجة إلى العمود H في ملف المقارنة: زيادة في المرتب: إذا كان المرتب في الملف الثاني أكبر من المرتب في الملف الأول. نقص في المرتب: إذا كان المرتب في الملف الثاني أقل من المرتب في الملف الأول. نفس المرتب: إذا كان المرتب في الملفين متساويًا. محذوف: إذا كان اسم الموظف موجود في الملف الأول ولكن غير موجود في الملف الثاني. جديد: إذا كان اسم الموظف موجود في الملف الثاني ولكن غير موجود في الملف الأول. نتائج المقارنة.xlsb وهذا الملف خاص بمن زادت او نقصت او حذفو او جددفقط بدون نفس المرتب نتائج المقارنة1.xlsb
  18. ساقوم بالتعديل ان شاء الله
  19. السلام عليكم ورحمة الله وبركانه صبحكم الله بالخير جرب الملف وان لم يكتمل حدد ما هو المطلوب لك وافر التقدير والاحترام نقل أعمدة محددة من ورقة الى أكثر من ورقة+222222.xlsm
  20. بالرغم من انك لم توضحى ملف المقارنة الاخير كبف ترتيب بياناته هل تظهر درجته السابقة والحالية ومرحلته السابقة والحالية المهم جهزت ملف حسب تصورى للامر واذا كان هناك بعض الاعمدة فى ملف المقارنة ليست ضرورية فيمكنك اخفائها يالنسبة للملفين ايلول ونشرين ترتيب البيانات حسب الصورة نتائج المقارنة.xlsb
  21. وعليكم السلام ورحمة الله وبركاتة الخلايا المدمجة لم اتعامل معها بالاكواد سابقا ولكن اضفت للكود قبل الترحبل الغاء الدمج ثم اعدته بعد الترحيل ترحبل اعمدة معينة الى صفحات معينة.xlsm
  22. كود ربما اسرع جربه نقل أعمدة محددة من ورقة الى أكثر من ورقة.xlsm
  23. اللهم صَلِّ وسلم على نبينا محمد وعلى آله وصحبه أجمعين السلام عليكم ابو سجدة جرب الكود التالى ومعك ان شاء الله حتى تحقق طلبك الكود Sub نقل_الأعمدة() Dim wsMain As Worksheet Dim wsFirst As Worksheet Dim wsSecond As Worksheet Dim wsThird As Worksheet Dim lastRow As Long Dim colArr As Variant Set wsMain = Sheets("الرئيسية") Set wsFirst = Sheets("الورقة الأولى") Set wsSecond = Sheets("الورقة الثانية") Set wsThird = Sheets("الورقة الثالثة") Application.ScreenUpdating = False Application.Calculation = xlCalculationManual colArr = Array(1, 4, 6, 28, 29) نقل_عمود_مع_التنسيقات wsMain, wsFirst, colArr colArr = Array(1, 2, 3, 4, 5, 6, 46) نقل_عمود_مع_التنسيقات wsMain, wsSecond, colArr colArr = Array(1, 4, 6, 17, 18, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45) نقل_عمود_مع_التنسيقات wsMain, wsThird, colArr Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub Sub نقل_عمود_مع_التنسيقات(wsSource As Worksheet, wsTarget As Worksheet, cols As Variant) Dim lastRow As Long Dim i As Long Dim colNum As Integer lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row For i = LBound(cols) To UBound(cols) colNum = cols(i) wsTarget.Columns(colNum).ClearContents Next i For i = LBound(cols) To UBound(cols) colNum = cols(i) wsSource.Range(wsSource.Cells(1, colNum), wsSource.Cells(lastRow, colNum)).Copy wsTarget.Cells(1, colNum).PasteSpecial Paste:=xlPasteValuesAndNumberFormats wsTarget.Cells(1, colNum).PasteSpecial Paste:=xlPasteFormats Next i Application.CutCopyMode = False End Sub نقل أعمدة محددة من ورقة الى أكثر من ورقة.xlsm
×
×
  • اضف...

Important Information