-
Posts
233 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
2
Community Answers
-
hegazee's post in كود يعطينى اخفاء واظهار الاعمدة انا اختارها فى كل شيت بمفرده was marked as the answer
تفضل
Sub ToggleColumns() Dim action As String Dim colsInput As String Dim colArray() As String Dim colItem As Variant Dim answer As VbMsgBoxResult Dim invalidInput As Boolean ' مربع حوار لتحديد الإجراء (إخفاء أو إظهار) answer = MsgBox("هل تريد إخفاء الأعمدة؟" & vbCrLf & vbCrLf & "اضغط 'Yes' للإخفاء، 'No' للإظهار.", vbYesNoCancel + vbQuestion, "تحديد الإجراء") If answer = vbCancel Then Exit Sub ' الخروج إذا ضغط المستخدم على "Cancel" ElseIf answer = vbYes Then action = "إخفاء" Else action = "إظهار" End If ' مربع إدخال لطلب الأعمدة من المستخدم colsInput = InputBox("الرجاء إدخال الأعمدة التي تريد " & action & "ها." & vbCrLf & vbCrLf & "أمثلة:" & vbCrLf & "عمود واحد: B" & vbCrLf & "أعمدة متجاورة: B:D" & vbCrLf & "أعمدة متفرقة: B,D,F", "تحديد الأعمدة") ' الخروج إذا كان الإدخال فارغًا If colsInput = "" Then Exit Sub ' إزالة أي مسافات زائدة وتقسيم الإدخال عند الفاصلة colArray = Split(Replace(colsInput, " ", ""), ",") invalidInput = False On Error Resume Next ' تجاهل الأخطاء مؤقتًا للتحقق من صحة الإدخال ' المرور على كل عنصر أدخله المستخدم For Each colItem In colArray If colItem <> "" Then ' التحقق من أن كل جزء من الإدخال يمثل نطاقًا صالحًا If Columns(colItem).Count = 0 Then invalidInput = True Exit For End If End If Next colItem On Error GoTo 0 ' إعادة تفعيل معالجة الأخطاء ' إذا كان هناك إدخال غير صالح، أظهر رسالة خطأ If invalidInput Then MsgBox "الإدخال '" & colItem & "' غير صالح. الرجاء التأكد من إدخال أسماء أعمدة صحيحة.", vbCritical, "خطأ في الإدخال" Exit Sub End If ' تنفيذ الإجراء على كل عمود أو نطاق For Each colItem In colArray If colItem <> "" Then If action = "إخفاء" Then Columns(colItem).Hidden = True Else Columns(colItem).Hidden = False End If End If Next colItem MsgBox "تم " & action & " الأعمدة بنجاح!", vbInformation, "اكتمل الإجراء" End Sub
-
hegazee's post in هل توجد معادلة في اكسل تجلب القيم من الخلايا متجاوزت الخلايا التي لا نحتاجها و لا تظهر على شكل فراغات was marked as the answer
و عليكم السلام ورحمة الله و بركاته
تفضل الحل بطريقتين الأول خاصة بنسخ الأوفيس الحديثة و الثانية بالنسخ القديمة
Base des donnes (2).xlsx
-
hegazee's post in إضافة سورة الفاتحه إلى كرونو في الاكسل was marked as the answer
و عليكم السلام ورحمة الله وبركاته
إليك المطلوب بصوت الشيخ المنشاوي رحمه الله مع تطوير و تحسين الملف. فقط تأكد وضع الملف الصوتي في نفس مجلد ملف الاكسيل و أرجو تعديل العنوان ليكون إضافة الفاتحة بدلا من الموسيقى
crono.rar
-
hegazee's post in هل ممكن ضبط A4 كاعداد افتراضي للاكسيل ؟ was marked as the answer
و عليكم السلام ورحمة الله و بركاته
انشيء ملف جديد و وأضبطه كما تريد من حيث الحجم و الهوامش و كل شيء بعدين احفظ الملف باسم مثلا A4 وبصيغة
Excel Template (*.xltx)
الحفظ يكون في المسار التالي
C:\Users\[اسم المستخدم]\Documents\Custom Office Templates
لما تنشئ ملف جديد اختار القالب اللي أنت عملته اللي هو A4
-
hegazee's post in مساعدة في تبسيط معادلة طويلة was marked as the answer
لو عندك اكسيل حديث 365 مثلا يمكن استعمال الصيغة التالية
=TEXTJOIN("",TRUE,القرار!AM24:AM39,القرار!AN24:AN39) و يمكن بالأكواد مع الاصدارات القديمة و ده يلزم وجود ملف عشان نتأكد من النتيجة
-
hegazee's post in حل مشكلة الاسماء المركبة was marked as the answer
بارك الله فيك أستاذ أحمد
. كما تفضلت حضرتك بالملف فإن معادلة العلامة خبور رائعة و تصلح لهذا الملف تماما فقط قم بنسخ الكود التالي في موديل جديد في في محرر الأكواد
Function kh_Names(FullName As String, ParamArray iNdex1()) As String Dim i As Integer Dim kh_Split, MyArray, Ar Dim Kh_String As String, Sn As String, Re As String On Error GoTo Err_Kh_Names '====================================== MyArray = Array("عبد ", "أبو ", "ابو ", "آل " _ , " الله", " الدين", " الإسلام", " الاسلام", " الحق") '====================================== Sn = Application.WorksheetFunction.Trim(FullName) For Each Ar In MyArray Re = Replace(Ar, " ", "^") Sn = Replace(Sn, Ar, Re) Next '====================================== kh_Split = Split(Sn, " ", , vbTextCompare) On Error Resume Next For i = 0 To UBound(iNdex1) Kh_String = Kh_String & " " & kh_Split(iNdex1(i) - 1) Next On Error GoTo 0 Kh_String = Replace(Trim(Kh_String), "^", " ") kh_Names = Kh_String Exit Function Err_Kh_Names: kh_Names = "" End Function ثم ضع المعادلة التالية في خانة اسم الأب مثلا:
=kh_Names(H9;2;3;4;5) مع مراعاة الفاصلة عادية أو منقوطة حسب اصدار الاوفيس
مجمع 2026بعد نتيجة ثالثة.xlsm
-
hegazee's post in المطلوب كود لحذف المسافات فى بداية الخلية ونهايتها was marked as the answer
تفضل الملف و جرب كتابة اسماء بها عبد في العمود الثالث و طبق عليها ما تريد
حذف المسافات(1).xlsm
-
hegazee's post in المساعدة في الإحصاء في الملف المرفق was marked as the answer
أولا تم تعديل المعادلة لتكون:
=IF(G2="";"";IF(G2<1;"أقل من فدان";IF(AND(G2>=1; G2<3);"من 1 إلى أقل من 3 فدان";IF(AND(G2>=3; G2<5);"من 3 إلى أقل من 5 فدان";IF(AND(G2>=5; G2<10);"من 5 إلى أقل من 10 فدان";IF(AND(G2>=10; G2<20);"من 10 إلى أقل من 20 فدان";IF(AND(G2>=20; G2<=25);"من 20 إلى 25 فدان";"أكثر من 25 فدان"))))))) شرح المعادلة: تستخدم الدالة IF بشكل متداخل لتصنيف قيمة موجودة في الخلية G إلى فئات مختلفة بناء على مدى هذه القيمة مع افتراض أن القيمة تمثل مساحة بالأفدنة تماما مثل إظهار نتيجة الطلاب بالتقديرات
IF(G2="";"")
إذا كانت الخلية G2 فارغة، فإن الناتج يكون فارغًا أيضا لا يعرض شيء.
هذا يجنب ظهور نتائج غير مرغوبة عند عدم وجود بيانات.
IF(G2<1;"أقل من فدان")
إذا كانت القيمة في G2 أقل من 1 لكن ليست فارغة يعرض:
"أقل من فدان".
IF(AND(G2>=1; G2<3)
إذا كانت القيمة أكبر من أو تساوي 1 ولكن أقل من 3 يعرض:
"من 1 إلى أقل من 3 فدان".
وهكذا باقي المساحات
أما المعادلة
=IF(AND(ISNUMBER(D2); ISNUMBER(E2); ISNUMBER(F2)); F2 + E2/24 + D2/576; "")
تستخدم لتحويل وحدات الأراضي (الفدان، القيراط، السهم) إلى قيمة عشرية واحدة تعبر عن المساحة الكلية بالفدان.
الوحدات المستخدمة في مصر:
الفدان (F2) ← الوحدة الأساسية. القيراط (E2) ← 1 فدان = 24 قيراط. السهم (D2) ← 1 قيراط = 24 سهم → إذن 1 فدان = 576 سهم (24 × 24)
ثانيا: ملفك الأصلي فيه بعض الملاحظات فهناك صفوف فارغة تماما و أيضا الخلايا فارغة ليس بها أي رقم المفروض نضع صفر في الخلايا الفارغة لتدخل ضمن حساب المعادلة
أيضا هناك أسماء لا تملك حتى سهم و بالتالي لا تدخل ضمن الأفراد ذوي الملكية
بعد التعديلات ستلاحظ أن العدد مضبوط
فئات الانتفاع2.xlsx
-
hegazee's post in حساب لكل من الذكر والانثي و الغير محدد بالاكواد was marked as the answer
تأكد من إعدادت اللغة للجهاز و أن اللغة العربية ممكنة
افتح خيارات الاكسيل و تأكد منها
-
hegazee's post in قاعدة لاجازات العاملين was marked as the answer
تفضل ملف محدث به كل ما طلبت
أما بخصوص تعلم الأكواد فالموضوع بسيط و لكن يلزمه شغف التعلم مع المحاولة و الخطأ
أجازات 3.xlsm
-
hegazee's post in طرح تاريخين بالاكسيل was marked as the answer
تفضل الملف جاهز
طرح الأيام
=DATEDIF(R16;O16;"MD") طرح الشهور
=DATEDIF(R16;O16;"YM") طرح السنوات
=DATEDIF(R16;O16;"Y") لجمع السنوات
=DATE(YEAR(O28) + T28; MONTH(O28) + S28; DAY(O28) + R28)
جمع (2).xlsx
-
hegazee's post in ممكن حل مشكله اللغه العربيه was marked as the answer
ممكن يكون من إعدادت اللغة
فتح:
لوحة التحكم > المنطقة (Region) > الإدارة (Administrative)
اضغط:
تغيير الإعدادات المحلية للنظام (Change system locale...)
اختر:
العربية (Egypt) أو العربية (Saudi Arabia) حسب منطقتك.
أعد تشغيل الجهاز.
-
hegazee's post in ضبط الكود بان يعمل على اى مسار جديد was marked as the answer
جرب هذا الكود
Sub Hyperlink_cut() Dim selectedFile As String Dim result As Variant ' فتح مربع حوار لاختيار الملف With Application.FileDialog(msoFileDialogFilePicker) .Title = "اختر ملف Excel المراد قطع الرابط معه" .Filters.Clear .Filters.Add "Excel Files", "*.xls; *.xlsx; *.xlsb; *.xlsm" .AllowMultiSelect = False If .Show = -1 Then selectedFile = .SelectedItems(1) Else MsgBox "لم يتم اختيار ملف.", vbExclamation Exit Sub End If End With ' محاولة قطع الرابط On Error Resume Next ActiveWorkbook.BreakLink Name:=selectedFile, Type:=xlExcelLinks If Err.Number <> 0 Then MsgBox "تعذر قطع الرابط. تأكد أن الملف مرتبط فعلاً.", vbCritical Exit Sub End If On Error GoTo 0 ' تحديد خلية H9 Range("H9").Select ' تحديد الشكل "Rectangle 4" On Error Resume Next ActiveSheet.Shapes.Range(Array("Rectangle 4")).Select On Error GoTo 0 ' الانتقال إلى المرجع "Macro1" On Error Resume Next Application.Goto Reference:="Macro1" On Error GoTo 0 End Sub
-
hegazee's post in عرض ارقام فواتير بدون تكرار was marked as the answer
تفضل أخي الكريم 3 ملفات
الأول إذا كان الأوفيس عندك 365 أو 2016 فيما فوق
الثاني إذا كان الأوفيس إصدار أقل من 2016
الثالث باستخدام الأكواد
لا تنسى اختيار "اختر تمت الاجابة" إذا تم حل المشكلة
استخراج_فواتير_بدون_تكرار (365).xlsx استخراج_فواتير_بدون_تكرار (أوفيس قديم).xlsx
استخراج_فواتير_بدون_تكرار (كود).xlsm
-
hegazee's post in تنسيق الاعمدة المختلفة كل الخلية باللون الاصفر و الحروف باللون الاحمر was marked as the answer
تفضل
Sub FormatUniqueCellsInRow() Dim ws As Worksheet Dim lastRow As Long, startRow As Long Dim r As Long, i As Long, j As Long Dim values(1 To 7) As Variant Dim count As Long Dim data As Variant On Error GoTo ErrorHandler Set ws = ThisWorkbook.Sheets("Sheet1") ' تأكد من تغيير "Sheet1" إلى اسم الورقة الفعلي startRow = 3 ' الصف الذي تبدأ منه البيانات lastRow = ws.Range("C3:I" & ws.Rows.Count).Find(What:="*", _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row ' تنظيف التنسيقات السابقة من الأعمدة C:I و O With ws.Range("C" & startRow & ":I" & lastRow & ",O" & startRow & ":O" & lastRow) .Interior.ColorIndex = xlNone .Font.ColorIndex = xlAutomatic .Font.Bold = False End With ' تحميل النطاق إلى مصفوفة data = ws.Range("C" & startRow & ":I" & lastRow).Value ' المرور على كل صف For r = 1 To lastRow - startRow + 1 ' تخزين قيم الصف الحالي For i = 1 To 7 values(i) = data(r, i) Next i ' فحص القيم الفريدة For i = 1 To 7 count = 0 If Not IsEmpty(values(i)) Then For j = 1 To 7 If CStr(values(j)) = CStr(values(i)) Then count = count + 1 End If Next j ' إذا كانت القيمة فريدة If count = 1 Then ' تطبيق التنسيق على الخلية في C:I With ws.Cells(r + startRow - 1, i + 2) .Interior.Color = RGB(255, 255, 0) ' تعبئة صفراء .Font.Color = RGB(255, 0, 0) ' خط أحمر .Font.Bold = True ' خط عريض End With ' تطبيق نفس التنسيق على الخلية في العمود O في نفس الصف With ws.Cells(r + startRow - 1, "O") .Interior.Color = RGB(255, 255, 0) ' تعبئة صفراء .Font.Color = RGB(255, 0, 0) ' خط أحمر .Font.Bold = True ' خط عريض End With End If End If Next i Next r MsgBox "تمت معالجة البيانات بنجاح!", vbInformation Exit Sub ErrorHandler: MsgBox "حدث خطأ: " & Err.Description, vbCritical End Sub
-
hegazee's post in عمل تقرير لاعلى قيمة حسب الاصناف بشكل شهرى was marked as the answer
تفضل الملف . حطيت بعض المعلومات العشوائية لاختبار المعادلة
شهر 12022(2).xlsx
-
hegazee's post in طباعة اكثر من صفحة was marked as the answer
تفضل أخي ملفين
الملف الأول: يقوم بطباعة أوراق العمل حسب ما تكتبه من نطاقات في كل رسالة تظهر
الملف الثاني : ما عليك إلا كتابة نطاق طباعة كل صفحة في الخلية A1 و البرنامج يقوم بطباعتها
ملاحظات:
· إذا اختار المستخدم الطباعة، تطبع جميع الأوراق في دفعة واحدة.
· إذا اختار حفظ PDF، تنسخ هذه الأوراق إلى مصنف مؤقت ثم يصدر إلى PDF.
*عند التصدير بصيغة PDF اختر مجلد لحفظ ملف الطباعة فيه
*أهم شيء تنسيق الصفحات و الهوامش حيث لاحظت أن بعض الصفحات تتم طباعتها على ورقتين لعدم ضبط المسافات و الحدود
أيضا عند تغيير أسماء أوراق العمل في الملف الأول لابد أن تغيرها في الكود.
طباعة اكثر من صفحة.xlsb طباعة اكثر من صفحة من خلال خلية.xlsb
-
hegazee's post in نسخ من ورقة اخرى مع تحديد بداية النسخ was marked as the answer
و أنتم بخير . جرب الكود التالي في الملف الأول
Sub Button1_Click() Dim Wb1 As Workbook, Wb2 As Workbook, FilePath As String, OnRng As Range Dim WSdata As Worksheet, WSdest As Worksheet, WSname As String: WSname = "ملف 1" Application.ScreenUpdating = False Application.Calculation = xlCalculationManual With Application.FileDialog(msoFileDialogFilePicker) .Title = "اختر ملف Excel كمصدر للبيانات" .Filters.Clear: .Filters.Add "Excel Files", "*.xls; *.xlsx; *.xlsb" If .Show <> -1 Then MsgBox "لم يتم اختيار أي ملف", vbExclamation: Exit Sub FilePath = .SelectedItems(1) End With Set Wb1 = Workbooks.Open(FilePath) Set Wb2 = ThisWorkbook On Error Resume Next Set WSdata = Wb1.Sheets(WSname) Set WSdest = Wb2.Sheets(WSname) On Error GoTo 0 If WSdata Is Nothing Or WSdest Is Nothing Then MsgBox "لم يتم العثور على ورقة العمل", vbCritical Wb1.Close False Exit Sub End If ' تحديد النطاق من F9 إلى S609 Set OnRng = WSdata.Range("F9:S609") WSdest.Cells.UnMerge WSdest.Range("F9:S609").ClearContents ' مسح النطاق المحدد فقط OnRng.Copy With WSdest.Range("F9") .PasteSpecial xlPasteFormulas .PasteSpecial xlPasteFormats End With Application.CutCopyMode = False Application.Goto WSdest.Range("F9"), True Wb1.Close False Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True MsgBox "تم نسخ البيانات بنجاح", vbInformation End Sub
-
hegazee's post in نسخ بكود به كلمة مرور was marked as the answer
و عليكم السلام
الكود التالي يحقق المطلوب فقط تأكد من أن الملفين في نفس المسار
Sub Button1_Click() Dim Wb1 As Workbook, Wb2 As Workbook, FilePath As String, OnRng As Range Dim WSdata As Worksheet, WSdest As Worksheet, WSname As String WSname = "إدخال بيانات أساسية" ' تأكد من أن الاسم مطابق تمامًا On Error GoTo ErrorHandler Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False ' تحديد مسار الملف FilePath = ThisWorkbook.Path & "\Book2.xlsb" ' تأكد من امتداد الملف ' التحقق من وجود الملف If Dir(FilePath) = "" Then MsgBox "ملف Book2 غير موجود في المسار: " & vbCrLf & FilePath, vbExclamation Exit Sub End If ' فتح الملف بكلمة المرور Set Wb1 = Workbooks.Open(FilePath, Password:="123") ' تأكد من كلمة المرور Set Wb2 = ThisWorkbook ' التحقق من وجود ورقة العمل Set WSdata = Wb1.Sheets(WSname) Set WSdest = Wb2.Sheets(WSname) If WSdata Is Nothing Or WSdest Is Nothing Then MsgBox "ورقة العمل '" & WSname & "' غير موجودة في أحد الملفين", vbCritical Wb1.Close False Exit Sub End If ' نسخ البيانات Set OnRng = WSdata.UsedRange If OnRng.Cells.CountLarge = 1 And IsEmpty(OnRng.Value) Then MsgBox "لا توجد بيانات في الورقة المصدر", vbExclamation Wb1.Close False Exit Sub End If WSdest.Cells.UnMerge WSdest.Cells.ClearContents OnRng.Copy With WSdest.Range("A1") .PasteSpecial xlPasteFormulas .PasteSpecial xlPasteFormats End With Application.CutCopyMode = False Wb1.Close False MsgBox "تم نسخ البيانات بنجاح", vbInformation ExitHandler: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Exit Sub ErrorHandler: MsgBox "حدث خطأ: " & Err.Description, vbCritical Resume ExitHandler End Sub
-
hegazee's post in لاب جديد لايفتح ملف ماكرو was marked as the answer
نعم، برنامج الأوفيس ومن ضمنه Excel متوفر بنسختين:
إصدار 32bit و إصدار 64bit
-
hegazee's post in الكود يوزع عادي ولكن يكرر الاسماء افقيا (صف) وراسيا (عمود) was marked as the answer
الملف المرسل في مشاركة سابقة ممتاز و يعمل بكفاءة و يوزع عدد 2 ملاحظين في كل لجنة برجاء تجربتة و كتابة ملاحظاتك. قمت بتعديل عدد اللجان و الملاحظين ليتوافق مع اللجان عندك
توزيع الملاحظين .xlsm
-
hegazee's post in كود يقوم بغلق الخلية المقابلة بناءأ على اختار كلمه was marked as the answer
إليك أخي الملف كما طلبت مع تلوين الخلايا حسب الاختيار
تسجيل بيانات2.xlsm
-
hegazee's post in ملاحظة ثانوية عامة بشروط was marked as the answer
عندي ملف من إعداد الاستاذ مصطفى شرف و قمت بالتعديل عليه
الشرح للأستاذ مصطفى من هنا
توزيع الملاحظين 2024.xlsm
-
hegazee's post in اظهار الاسم المختار من قائمة منسدلة دون بقية الأسماء was marked as the answer
جرب الملف التالي حسب فهمي للموضوع
جدول 2.xlsx
-
hegazee's post in اضافة دالة Round للمعادلة was marked as the answer
جرب المعادلة التالية
=IF($B10="","",ROUND(VLOOKUP($B10,nageh,25,0), 0)) لا تنسى تحويل الفواصل حسب إصدار الأوفيس عندك