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

أبومروان

03 عضو مميز
  • Posts

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

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

  • Days Won

    6

كل منشورات العضو أبومروان

  1. وعليكم السلام ورحمة الله وبركاته جزاك الله خيرا وعمل اكثر من رائع
  2. واليك طريقه اخري بالكود Private Sub Worksheet_Change(ByVal Target As Range) Dim ws1 As Worksheet, ws2 As Worksheet Dim rng1 As Range, rng2 As Range Dim cell As Range Dim newValue As String ' تأكد أن التغيير حدث في العمود A (العمود 1) If Target.Column <> 1 Then Exit Sub If Target.Cells.Count > 1 Then Exit Sub ' تجنب اللصق الجماعي If IsEmpty(Target) Then Exit Sub Application.EnableEvents = False ' لمنع تشغيل الحدث مرارًا newValue = CStr(Target.Value) ' تحديد الأوراق Set ws1 = ThisWorkbook.Sheets("Sheet1") Set ws2 = ThisWorkbook.Sheets("Sheet2") ' تحديد النطاقات (نأخذ من A2 إلى آخر خلية غير فارغة) Set rng1 = ws1.Range("A2:A" & ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row) Set rng2 = ws2.Range("A2:A" & ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row) ' التحقق من التكرار في ورقة1 (باستثناء الخلية الحالية) For Each cell In rng1 If cell.Address <> Target.Address And cell.Value = newValue Then MsgBox "القيمة '" & newValue & "' موجودة مسبقًا في " & ws1.Name & "!", vbExclamation Target.ClearContents GoTo Cleanup End If Next cell ' التحقق من التكرار في ورقة2 For Each cell In rng2 If cell.Value = newValue Then MsgBox "القيمة '" & newValue & "' موجودة مسبقًا في " & ws2.Name & "!", vbExclamation Target.ClearContents GoTo Cleanup End If Next cell Cleanup: Application.EnableEvents = True End Sub طريقه اخري ب الكود.xlsm
  3. وعليكم السلام ورحمه الله وبركاته جرب هذه الطريقه بالمعادلات اصنع نطاق وليكن من a1:a100 باسم AllNames حدد العمود الذي تريد منع التكرار فيه مثلاً: A2:A1000 — لا تشمل الخلية A1 إذا كانت عنوانًا اذهب إلى Data ← Data Validation. Allow: Custom Formula اكتب كرر نفس الكلام علي الشيت 2 =COUNTIF(AllNames, A2)=1 عدم التكرار بالمعادلات.xlsx
  4. لحضرتكم بعض الارقام للعمل لوحه المفاتيح مفاتيح الأسهم KeyCode = 37 ' السهم لليسار ← KeyCode = 38 ' السهم للأعلى ↑ KeyCode = 39 ' السهم لليمين → KeyCode = 40 ' السهم للأسفل ↓ مفاتيح الوظائف KeyCode = 112 ' F1 KeyCode = 113 ' F2 KeyCode = 114 ' F3 KeyCode = 115 ' F4 KeyCode = 116 ' F5 KeyCode = 117 ' F6 KeyCode = 118 ' F7 KeyCode = 119 ' F8 KeyCode = 120 ' F9 KeyCode = 121 ' F10 KeyCode = 122 ' F11 KeyCode = 123 ' F12 مفاتيح التحكم KeyCode = 27 ' ESC KeyCode = 13 ' Enter KeyCode = 32 ' Space KeyCode = 9 ' Tab KeyCode = 8 ' Backspace KeyCode = 46 ' Delete KeyCode = 36 ' Home KeyCode = 35 ' End KeyCode = 33 ' Page Up KeyCode = 34 ' Page Down KeyCode = 45 ' Insert مفاتيح الأرقام KeyCode = 48 ' 0 KeyCode = 49 ' 1 KeyCode = 50 ' 2 KeyCode = 51 ' 3 KeyCode = 52 ' 4 KeyCode = 53 ' 5 KeyCode = 54 ' 6 KeyCode = 55 ' 7 KeyCode = 56 ' 8 KeyCode = 57 ' 9
  5. وعليكم السلام ورحمه الله جرب الكود التالي لعله يفي بالغرض Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 27 Then ' 27 is the key code for Escape Unload Me End If End Sub Book1.xlsm
  6. و عليكم السلام ورحمة الله و بركاته ممكن مشاهده الروابط ادناه لعله يفيدك ويفي بالغرض
  7. السلام عليكم ورحمه الله وبركاته ممكن تسنخدم الكود التالي قد يفي بالغرض Function MyFilter(LookInRange As Range, CriteriaRange As Range, CriteriaValue As Variant) As Variant Dim cell As Range Dim results() As Variant Dim count As Long Dim i As Long ReDim results(1 To CriteriaRange.Rows.Count, 1 To 1) count = 0 For i = 1 To CriteriaRange.Rows.Count If CriteriaRange.Cells(i, 1).Value = CriteriaValue Then count = count + 1 results(count, 1) = LookInRange.Cells(i, 1).Value End If Next i If count = 0 Then MyFilter = CVErr(xlErrNA) Else ReDim Preserve results(1 To count, 1 To 1) MyFilter = results End If End Function =MyFilter(A2:A10, B2:B10, "الرياض") A2:A10 العمود الذي تريد إرجاع القيم منه (مثل الأسماء) B2:B10 العمود الذي يحتوي على الشرط (مثل المدينة) "الرياض" القيمة التي يتم التصفية بناءً عليها
  8. السلام عليكم ورحمه الله وبركاته ممكن تشاهد الرابط ادناه لعله يفيدك
  9. السلام عليكم ورحمه الله وبركاته شاهد الموضوع ادناه لعله يكون المطلوب تجميع و دمج عده ملفات عمل اكسيل في ملف عمل واحد - منتدى الاكسيل Excel - أوفيسنا
  10. جزاك الله خيرا علي المجهود الرائع
  11. السلام عليكم ورحمه الله وبركاته اتفضل لعله المطلوب Book1.xlsm
  12. السلام عليكم ورحمه الله وبركاته ممكن تستخدم الكود التالي عند ظهور الاخطاء الخاصه من 32 الي 64 Private Declare Function استبدلها الي Private Declare PtrSafe Function ----------------------------------------------------------------- Private Declare استبدلها الي Private Declare PtrSafe
  13. إللهم أذهب البأس ربّ النّاس، اشف وأنت الشّافي، لا شفاء إلا شفاؤك، شفاءً لا يغادر سقماً، أذهب البأس ربّ النّاس، بيدك الشّفاء، لا كاشف له إلّا أنت يارب العالمين
  14. وعليكم السلام ورحمه الله
  15. وعليكم السلام ورحمه الله وبركاته من الواضح أنك تواجه مشكلة في فتح ملفات إكسل القديمة على جهازك، ولكن البرنامج يعمل بشكل طبيعي عند فتح مستندات جديدة أو عند تشغيله من قائمة "ابدأ". هذه المشكلة قد تكون ناتجة عن عدة أسباب. إليك بعض الحلول التي يمكن أن تساعدك في حل المشكلة: 1. إعادة تشغيل الكمبيوتر أول خطوة يجب أن تحاولها هي إعادة تشغيل جهاز الكمبيوتر. قد يكون هناك بعض العمليات التي تمنع إكسل من العمل بشكل صحيح. 2. تشغيل إكسل في الوضع الآمن قد تكون هناك مشكلة في الإضافات أو في إعدادات إكسل. جرب تشغيل إكسل في "الوضع الآمن" لحل هذه المشكلة. اضغط على مفتاح Ctrl باستمرار ثم افتح إكسل. إذا عمل إكسل بشكل طبيعي في الوضع الآمن، فالمشكلة قد تكون في إحدى الإضافات أو في ملف التكوين الخاص بالبرنامج. 3. إلغاء تثبيت التحديثات الأخيرة إذا كنت قد قمت بتثبيت تحديثات لأوفيس مؤخرًا، قد تكون هذه التحديثات قد تسببت في حدوث المشكلة. جرب إلغاء تثبيت آخر التحديثات: اذهب إلى إعدادات النظام في جهازك. اختر التطبيقات ثم ابحث عن Microsoft Office 2019. اختر إلغاء التثبيت أو إصلاح. 4. إصلاح أوفيس إذا كنت قد قمت بتثبيت أوفيس 2019 بنجاح، يمكنك محاولة إصلاح البرنامج عبر إعدادات أوفيس: افتح لوحة التحكم. اختر البرامج ثم البرامج والميزات. ابحث عن Microsoft Office 2019، واضغط عليه. اختر إصلاح ثم اختر الإصلاح السريع أو الإصلاح عبر الإنترنت. 5. تحقق من الأمان والحقوق تأكد من أن ملفات إكسل القديمة التي لا تفتح ليست محمية أو غير قابلة للوصول بسبب إعدادات الأمان على جهازك: تحقق من أن الملفات ليست قيد الحماية أو مملوكة لمستخدم آخر. تحقق من أن لديك صلاحيات كافية للوصول إليها. 6. تحديث إصدار إكسل أو أوفيس من الممكن أن المشكلة تتعلق بإصدار قديم من البرنامج. تأكد من أنك قد قمت بتحديث أوفيس إلى آخر إصدار: افتح أي برنامج من أوفيس (مثل إكسل). اذهب إلى ملف ثم حساب. اختر خيارات التحديث ثم تحديث الآن. 7. إزالة ذاكرة التخزين المؤقتة والملفات التالفة إذا كانت هناك ملفات تالفة قد تسبب المشكلة، حاول مسح الملفات المؤقتة الخاصة بأوفيس: اذهب إلى مستعرض الملفات ثم اكتب %appdata%\Microsoft\Excel في شريط العنوان. احذف أي ملفات تالفة أو غير ضرورية في هذا المجلد. 8. التحقق من التوافق إذا كانت الملفات التي لا تفتح قد تم إنشاؤها باستخدام إصدار قديم من إكسل، قد تكون هناك مشكلة في التوافق. جرب فتح الملف باستخدام إصدار آخر من إكسل أو استخدام الأدوات عبر الإنترنت مثل Excel Online لتحديد ما إذا كانت المشكلة في الملف نفسه. 9. إعادة تثبيت أوفيس إذا لم تنجح أي من الحلول السابقة، قد تحتاج إلى إعادة تثبيت أوفيس بشكل كامل: قم بإلغاء تثبيت Microsoft Office 2019 عبر لوحة التحكم. ثم أعد تثبيت الأوفيس من موقع مايكروسوفت الرسمي
  16. السلام عليكم، هل يمكنك مراجعة المواضيع أدناه؟ قد تساعدك في المطلوب.
  17. الحمد لله الذي بِنِعْمَتِهِ تتم الصالحات وبشكره تدوم النعم، والحمدلله الذي بتوفيقه وتيسيره تصلح الأمور وتتم كُبرى النعم
  18. الحمد لله الذي بِنِعْمَتِهِ تتم الصالحات وبشكره تدوم النعم، والحمدلله الذي بتوفيقه وتيسيره تصلح الأمور وتتم كُبرى النعم،
  19. وعليكم السلام ورحمه الله وبركاته اتفضل لعله المطلوب Sub CustomSortByGender() Dim ws As Worksheet Dim lastRow As Long Dim maleList As Collection, femaleList As Collection Dim i As Long, rowIndex As Long Dim gender As String Dim maleRow As Long, femaleRow As Long ' تحديد الورقة النشطة (تأكد من تعديل الاسم إذا لزم الأمر) Set ws = ThisWorkbook.Sheets("Sheet1") ' تأكد من أن اسم الورقة صحيح ' تحديد آخر صف في العمود A (الذي يحتوي على بيانات) lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' إنشاء مجموعات لتخزين الذكور والإناث Set maleList = New Collection Set femaleList = New Collection ' تصنيف البيانات في العمود F إلى مجموعات الذكور والإناث For i = 2 To lastRow ' بدءًا من F2 gender = ws.Cells(i, "F").Value If gender = "ذكر" Then maleList.Add i ' إضافة رقم الصف إلى قائمة الذكور ElseIf gender = "أنثى" Then femaleList.Add i ' إضافة رقم الصف إلى قائمة الإناث End If Next i ' إعادة ترتيب البيانات في العمود F حسب التكرار المطلوب rowIndex = 2 ' نبدأ من F2 Do While maleList.Count > 0 Or femaleList.Count > 0 ' إضافة 2 ذكر If maleList.Count >= 2 Then maleRow = maleList(1) ws.Rows(maleRow).Copy ws.Rows(rowIndex).PasteSpecial Paste:=xlPasteAll maleList.Remove 1 maleList.Remove 1 rowIndex = rowIndex + 1 maleRow = maleList(1) ws.Rows(maleRow).Copy ws.Rows(rowIndex).PasteSpecial Paste:=xlPasteAll maleList.Remove 1 rowIndex = rowIndex + 1 ElseIf maleList.Count = 1 Then maleRow = maleList(1) ws.Rows(maleRow).Copy ws.Rows(rowIndex).PasteSpecial Paste:=xlPasteAll maleList.Remove 1 rowIndex = rowIndex + 1 End If ' إضافة 2 أنثى If femaleList.Count >= 2 Then femaleRow = femaleList(1) ws.Rows(femaleRow).Copy ws.Rows(rowIndex).PasteSpecial Paste:=xlPasteAll femaleList.Remove 1 femaleList.Remove 1 rowIndex = rowIndex + 1 femaleRow = femaleList(1) ws.Rows(femaleRow).Copy ws.Rows(rowIndex).PasteSpecial Paste:=xlPasteAll femaleList.Remove 1 rowIndex = rowIndex + 1 ElseIf femaleList.Count = 1 Then femaleRow = femaleList(1) ws.Rows(femaleRow).Copy ws.Rows(rowIndex).PasteSpecial Paste:=xlPasteAll femaleList.Remove 1 rowIndex = rowIndex + 1 End If Loop End Sub فرز حسب الجنس بشروط.xlsm فرز حسب الجنس بشروط.xlsm
  20. وعليكم السلام ورحمه الله وبركاته راجع الموضوع ادناه لعله تجد ما يفيدك ويحل المشكله 1. اذهب الى Start ثم Settings 2 . اختر Control Panel 3. Regional And Language Options 4. من تبويب Advanced في خانة الاختيار اختر اللغة العربية 5. ثم OK ==================================== في محرر الاكواد من قائمة Tools ثم Option من تاب Editor Format ثم Font اختر نوع الخط هذا Courier New (Arabic)
  21. الحمد لله، وأنا سعيد لأن الأمور تمّت بشكل جيد! إذا كنت بحاجة إلى أي مساعدة أخرى فلا تتردد في السؤال. أسأل الله أن يوفقك في كل ما تقوم به. 😊
  22. اشكرك علي التوضيح اذان كود وملف المرفق استاذنا @عبدالله بشير عبدالله يعمل بدون اذني مشكله ويفي بالمطلوب ان شاء الله
  23. اتفضل الشيت بالكود المستخدم لعله يكون الطلوب وعدل عليه حسب ما تريد Sub PrintSheetInChunks() Dim ws As Worksheet Dim LastRow As Long, LastCol As Long Dim RowStart As Long, RowEnd As Long Dim ColStart As Long, ColEnd As Long Dim PageNum As Long ' تحديد ورقة العمل الحالية Set ws = ThisWorkbook.Sheets("Sheet1") ' قم بتغيير اسم الورقة حسب الحاجة ' الحصول على آخر صف وآخر عمود في البيانات LastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column ' تحديد عدد الصفوف والأعمدة لكل صفحة (25 صفًا و25 عمودًا) RowStart = 1 ColStart = 1 PageNum = 1 ' تحديد الصفوف والأعمدة للطباعة Do While RowStart <= LastRow RowEnd = RowStart + 24 ' 25 صفًا لكل صفحة (من RowStart إلى RowEnd) If RowEnd > LastRow Then RowEnd = LastRow ColEnd = ColStart + 24 ' 25 عمودًا لكل صفحة (من ColStart إلى ColEnd) If ColEnd > LastCol Then ColEnd = LastCol ' تحديد منطقة الطباعة ws.PageSetup.PrintArea = ws.Range(ws.Cells(RowStart, ColStart), ws.Cells(RowEnd, ColEnd)).Address ' إعدادات الطباعة With ws.PageSetup .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = False .PrintTitleRows = "" ' إذا أردت إضافة عناوين ثابتة في الأعلى يمكنك تعديل هذه .PrintTitleColumns = "" ' وإذا أردت إضافة أعمدة ثابتة يمكنك تعديل هذه End With ' طباعة الصفحة ws.PrintOut ' تحديث الصفوف والأعمدة للطباعة في الصفحة التالية RowStart = RowEnd + 1 If RowStart > LastRow Then Exit Do ' الخروج إذا تم الانتهاء من جميع الصفوف If ColEnd < LastCol Then ColStart = ColEnd + 1 Else ColStart = 1 End If PageNum = PageNum + 1 Loop End Sub مرتبات.xlsm
  24. وعليكم السلام ورحمه الله وبركاته اكواد لتحسين الاداء Sub OptimizePerformance() ' إيقاف التحديثات على الشاشة Application.ScreenUpdating = False ' إيقاف الحسابات التلقائية Application.Calculation = xlCalculationManual ' إيقاف الأحداث Application.EnableEvents = False ' إيقاف التنبيهات Application.DisplayAlerts = False ' إيقاف الحفظ التلقائي Application.AutoRecover.Enabled = False ' إعادة تمكين كافة الإعدادات بعد الانتهاء Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.DisplayAlerts = True Application.AutoRecover.Enabled = True End Sub
×
×
  • اضف...

Important Information