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

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

الخبراء
  • Posts

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

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

  • Days Won

    58

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

  1. اليك الملف البحث في القائمة بالحروف.xlsm
  2. السلام عليكم تحية لك ولاستاذنا ابو عيد هناك حل عن طريق الفورم كما في الصورة لا ادرى ان كانت تناسبك او لا
  3. اليك الملف وبه الكود اضغط غلى الزر ليعمل الكود example.xlsb
  4. وعليكم السلام ورحمة الله وبركاته كود صغير يقوم بالامر Sub CopyCtoB_IfBlank() Dim i As Long For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row If IsEmpty(Cells(i, "B")) And Not IsEmpty(Cells(i, "C")) Then Cells(i, "B").Value = Cells(i, "C").Value End If Next i End Sub
  5. "أخي الفاضل،السلام عليكم ورحمة الله وبركاته حسب طلبكم في المشاركة الاولى ، أرفقتُ لك ملفين منفصلين يتضمنان طريقتين لعملية الاستيراد: الطريقة الأولى: تظهر لك واجهة اختيار، تتيح لك تحديد الملف المطلوب يدوياً ثم البدء بالاستيراد. الطريقة الثانية: تتميز بالسرعة، حيث يتم استيراد البيانات مباشرة بمجرد الضغط على الزر دون ظهور أي واجهات. كلا الحلين يتوافقا تماماً مع ما طلبت، فهل قمت بتجربتهما؟ وفي حال عدم عملهما لديك، أتمنى منك تحديد المشكلة بدقة وشرحها، وستجد الحلول بإذن الله مني أو من الإخوة الأفاضل في المنتدى الذين لا يتأخرون في الدعم. أنتظر منك إجابة على هذه التساؤلات، لك وافر التقدير والاحترام
  6. وعليكم السلام ورحمة الله وبركاته هل تعنى انك لا تريد ظهور الواجهة لاحتيار الملف وتريد الاستيراد مباشرة اليك الملف بدون ظهور الواجهة ويكون الملفان في مكان واحد وبنفس الاسماء اضغط على زر استيراد يتم احضار البيانات مباشرة ملف.zip
  7. وعليكم السلام ورحمة الله وبركاته الكود حاليا عند التقر على الزر يقوم بفتح واجهة اختيار ملف من اي مكان في جهازك وليس ضروريا ان يكوتا في نفس المجلد حيث يقوم الكود بمسح البيانات القديمة والصاق الجديدة اليك الملف متمنيا ان تجد فيه طليك ملف.xlsb تحياتي
  8. السلام عليكم السبب هو وجود مسافات قبل الارقام وهذا يحدث عادة عند نسح ارقام ناتجة عن معادلات الحل كل القيم تتحول إلى نصوص (CStr) وتُزال الفراغات (Trim) وهذا يضمن التطابق حتى لو كانت القيم أرقام أو نصوص أو ناتجة عن معادلات. اليك الكود المعدل Sub تحويل_اللجان_الى_اسماء_Turbo() Dim ws As Worksheet: Set ws = ActiveSheet Dim r As Long, c As Long Dim lastRowMain As Long, lastRowSearch As Long Dim رقم_اللجنة As String, اسم_اللجنة As String, اسم_المراقب As String Dim فارق_الاعمدة As Long: فارق_الاعمدة = 12 Dim cell As Range lastRowSearch = ws.Cells(ws.Rows.Count, "N").End(xlUp).Row ws.Range("P3:X" & lastRowSearch).ClearContents lastRowMain = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row lastRowSearch = ws.Cells(ws.Rows.Count, "N").End(xlUp).Row For r = 3 To lastRowMain اسم_المراقب = Trim(CStr(ws.Cells(r, "B").Value)) For c = 4 To 12 رقم_اللجنة = Trim(CStr(ws.Cells(r, c).Value)) If رقم_اللجنة <> "" Then For Each cell In ws.Range("C3:C" & lastRowMain) If Trim(CStr(cell.Value)) = رقم_اللجنة Then اسم_اللجنة = Trim(CStr(ws.Cells(cell.Row, "B").Value)) Dim صف_المراقب As Range For Each صف_المراقب In ws.Range("N3:N" & lastRowSearch) If Trim(CStr(صف_المراقب.Value)) = اسم_المراقب Then ws.Cells(صف_المراقب.Row, c + فارق_الاعمدة).Value = اسم_اللجنة Exit For End If Next صف_المراقب Exit For End If Next cell End If Next c Next r End Sub
  9. السلام عليكم حسب قهمي للكود الكود يتعامل مع العمود A والذي به ترقيم والمفترض التعامل مع الاسماء في العمود B اذا كان فهمي للامر صحيح اليك الكود المعدل والا قم بتوضيح الامر اكثر تصوري Sub Compare2() Dim lr As Long, i As Long, j As Long Dim strCol As String Dim WS As Worksheet: Set WS = Worksheets("Data") Dim hasMissing As Boolean: hasMissing = False Application.ScreenUpdating = False On Error Resume Next lr = WS.Columns("B").Find(What:="*", SearchDirection:=xlPrevious).Row On Error GoTo 0 If lr < 6 Then Application.ScreenUpdating = True Exit Sub End If For i = 6 To 18 strCol = Split((WS.Columns(i).Address(, 0)), ":")(0) Dim lastInCol As Long lastInCol = WS.Cells(WS.Rows.Count, strCol).End(xlUp).Row If lastInCol < 6 Then lastInCol = 6 For j = 6 To lr If WorksheetFunction.CountIf(WS.Range(strCol & "6:" & strCol & lastInCol + 500), WS.Range("B" & j)) = 0 Then With WS.Cells(WS.Rows.Count, strCol).End(xlUp).Offset(1) .Value = WS.Range("B" & j).Value End With hasMissing = True lastInCol = lastInCol + 1 End If Next j Next i Application.ScreenUpdating = True End Sub
  10. ولن يعمل لان ملفك ليس به اي كود ولن يقبل حفظ اي كود لانه بامتداد xlsx ولو قرأت ما شرحته لك في الرد السابق لفهمت سبب عدم عمل الملف تحياتي
  11. وعليكم السلام ورحمة الله وبركاته حسب طلبك في الرسائل الحاصة استاذ هذا هو طلبي لقد اعادة ملف الاكسيل لقد حاولت وضع الكود ولم اسطيع الاجابة على طلبك ارجع الى اول ملف في مشاركتك الاولى اسم الملف (امتداده) يتنهي xlsx ارجع الى الملف الذي ارفقت لك به الاجابه وبه الكود اسم الملف (امتداده) يتنهي xlsb لماذا قمت انا بتغيير امتداد الملف من xlsx الى xlsb ؟ لسبب بسيط وهو ان اي ملف اكسل يتنهي اسمه (امتداده) xlsx لا يمكن ان يحفظ كود في هذه النوعية من الملفات ماذا يحدث لو وضعت كوداً في ملف xlsx؟ إذا قمت بوضع كود داخل ملف xlsx ثم قمت بالحفظ: ستظهر لك رسالة تنبيه واضحة. إذا ضغطت "نعم" (Yes) للحفظ بصيغة xlsx فسيقوم إكسل بمسح الكود تماماً. عند فتح الملف مرة أخرى، لن تجد أي أثر للكود الذي كتبته. وملفك الاخير بنفس الامتداد xlsx فلن يتم حفظ الكود لذلك عند حفظ الملف وظهور رسالة التنبيه احتيار لا بدل نعم كما في الصور المرفقة اليك الملف وبه الكود بغد تحويله من xlsx الى xlsb وهو نفس الملف في احر مشاركة لي Employees.xlsb
  12. السلام عليكم تم التعديل ومسح البيانات للنطاق b7:h7 بعد الترحيل مع التسطير كذلك تم اظافة شرط وهو اذا كانت الخلايا في النطاق b7:h7 فارغة لا يتم الترحيل Employees5.xlsb
  13. وعليكم السلام ورحمة الله وبركاته كنت اتمنى دعم طلبك ببياتات لتتضح الصورة اكثر طلبك فيه بعض الغموض بالنسبة لي وهذا الغموض في شيت حجز التوقيت فهل الصفوف 8-9-10-11 بها بيانات وترحل ام لا افترضت ان الصفوف المراد ترحيلها الرابع والسابع مبدئيا جرب الكود في الملف المرفق فاذا كان ليس طلبك حدد طلبك بالتفصيل مدعما بملف به البيانات المراد ترحيلها Employees5.xlsb
  14. جرب التعديل التالي test2.xlsm
  15. حسب فهمي لسؤالك في الكود المعدل الكود يقرأ عمود التاريخ كرقم وللتوضيح اكثر التواريخ هي في الأصل أرقام (مثلاً تاريخ اليوم هو رقم مثل 46040)، والتنسيق الذي تراه dd/mm/yyyy هو مجرد "قناع" أو مظهر خارجي لتسهيل القراءة علينا كبشر. في الكود توجد الدالة CDbl(.Range("J3").Value)، بحيث يأحد "القيمة الرقمية" الحقيقية المخزنة داخلها. وباحتصار الكود الآن يرى التاريخ كقيمة رقمية مجردة، بغض النظر عن طريقة تنسيق التاريخ في خلايا الجدول (سواء كانت yyyy/mm/dd أو dd-mm-yy). ويمكنك تجربة تبديل بعض التواريح بتغيير التنسيق في الجدول كمثال جعل 15/04/2026 الى 04/15/2026 فالنتيجة واحدة تحياتي
  16. السلام عليكم جرب التعديل التالي Sub sav_PDFall() Dim i As Integer Dim folderPath As String Dim mainSheet As Worksheet Dim tempWorkbook As Workbook Dim firstRun As Boolean Set mainSheet = ThisWorkbook.ActiveSheet folderPath = ThisWorkbook.Path & "\ملاحظةالثانوية 2026" firstRun = True If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath End If Application.ScreenUpdating = False For i = 1 To mainSheet.Range("j3").Value mainSheet.Range("j2") = i If firstRun Then mainSheet.Copy Set tempWorkbook = ActiveWorkbook firstRun = False Else mainSheet.Copy After:=tempWorkbook.Sheets(tempWorkbook.Sheets.Count) End If Next i tempWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=folderPath & "\كشف_جامع_" & mainSheet.Cells(2, 4).Text & ".pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True tempWorkbook.Close SaveChanges:=False Application.ScreenUpdating = True End Sub
  17. وعليكم السلام ورحمة الله وبركاته المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long) اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً. جرب التعديل بالملف المرفق SUMIFS_VBA.xlsm
  18. وعليكم السلام ورحمة الله وبركاته فكرة pdf انه يقوم بانشاء صفحة مؤقتة بها اسماء الموظفين وكل موظف قي ورقة ثم يصدرها الى pdf قم يحذف الورقة عدد الموظفين لديك حوالى 350 موظف بمعنى يتم انشاء حوالى 350 ورقة المقصود مما سبق دكره ان الكود سيأحد بعض الوقت لتنفيذ الامر ويعتمد الامر على مواصفات الجهاز بالنسبة لجهازي تطلب الامر دقيقة ونصف بمواصفات في حدود الجيدة اليك الملف مرتب الفنيين عن شهر يناير 2026 تعديل.xlsm
  19. السللام عليكم التغيير من السبنر المرتبط بالخلية J2 ثانوية عامة.xlsm
  20. وعليكم السلام ورحمة الله وبركاته جرب الكود ويوضع في THISWORKBOOK Private Sub Workbook_Open() Dim ws As Worksheet Application.DisplayFullScreen = True Application.DisplayFormulaBar = False For Each ws In ThisWorkbook.Worksheets ws.Activate With ActiveWindow .DisplayHeadings = False .DisplayGridlines = False End With Next ws End Sub
  21. السلام عليكم جرب الكود Sub تلوين_المكرر() Dim ws As Worksheet, rng As Range, cell As Range Dim dict As Object, lastRow As Long Dim r As Long, c As Long, key As String Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row If lastRow < 5 Then lastRow = 5 Set rng = ws.Range("A5:J" & lastRow) rng.Interior.ColorIndex = xlNone Application.ScreenUpdating = False For r = 5 To lastRow For c = 1 To 10 Set cell = ws.Cells(r, c) If Not IsError(cell.Value) And Len(cell.Value) > 0 Then key = Trim(cell.Value) Set dict = CreateObject("Scripting.Dictionary") For Each c2 In ws.Range(ws.Cells(r, 1), ws.Cells(r, 10)) If c2.Value = key Then dict(key) = dict(key) + 1 Next If dict(key) > 1 Then cell.Interior.Color = vbRed: GoTo NextCell ' التحقق عموديًا dict.RemoveAll For Each r2 In ws.Range(ws.Cells(5, c), ws.Cells(lastRow, c)) If r2.Value = key Then dict(key) = dict(key) + 1 Next If dict(key) > 1 Then cell.Interior.Color = vbRed End If NextCell: Next c Next r Application.ScreenUpdating = True End Sub
  22. وعليكم السلام ورحمة الله وبركاته جرب الكود حيث قبل التنفيذ، يقوم بحذف أي دوائر سابقة 1الثالث.xlsb
  23. السلام عليكم حقيقة الدحول الى الموقع اصبح بالصدفة قليل ما تجدة يعمل الكود سليم والمشكلة في تنسيق الأرقام قي صفخة table في العمودين b& e اذا اردتها بالأرقام العربية حسب ملفك فقم بتنسيقها الى [$-,201]# وان اردتها بالأرقام الغربية اجعل النتسيق رفم بدون خانات عشرية ملف بتنسيق الارقام العربية [$-,201]# مراقبة ثانوية 2026.xlsm ملف بتنسيق الارقام الغربية مراقبة ثانوية1 2026.xlsm
  24. وعليكم السلام ورحمة الله وبركاته InputBox في VBA لا يدعم إخفاء النصوص أو إظهارها كنجوم بشكل مباشر. الحل هو استخدام UserForm مع TextBox خاصية PasswordChar طباعة.xlsm
  25. الاسهم في ملفك لم تشمل الاحتياطي اليك الملف تكملة1 مراقبة 2026.xlsm
×
×
  • اضف...

Important Information