-
Posts
838 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
58
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو عبدالله بشير عبدالله
-
اليك الملف البحث في القائمة بالحروف.xlsm
-
السلام عليكم تحية لك ولاستاذنا ابو عيد هناك حل عن طريق الفورم كما في الصورة لا ادرى ان كانت تناسبك او لا
-
نسخ خانات محددة من عمود لنظيرتها من عمود آخر
عبدالله بشير عبدالله replied to omarabdelsalam's topic in منتدى الاكسيل Excel
اليك الملف وبه الكود اضغط غلى الزر ليعمل الكود example.xlsb -
نسخ خانات محددة من عمود لنظيرتها من عمود آخر
عبدالله بشير عبدالله replied to omarabdelsalam's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته كود صغير يقوم بالامر 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 -
"أخي الفاضل،السلام عليكم ورحمة الله وبركاته حسب طلبكم في المشاركة الاولى ، أرفقتُ لك ملفين منفصلين يتضمنان طريقتين لعملية الاستيراد: الطريقة الأولى: تظهر لك واجهة اختيار، تتيح لك تحديد الملف المطلوب يدوياً ثم البدء بالاستيراد. الطريقة الثانية: تتميز بالسرعة، حيث يتم استيراد البيانات مباشرة بمجرد الضغط على الزر دون ظهور أي واجهات. كلا الحلين يتوافقا تماماً مع ما طلبت، فهل قمت بتجربتهما؟ وفي حال عدم عملهما لديك، أتمنى منك تحديد المشكلة بدقة وشرحها، وستجد الحلول بإذن الله مني أو من الإخوة الأفاضل في المنتدى الذين لا يتأخرون في الدعم. أنتظر منك إجابة على هذه التساؤلات، لك وافر التقدير والاحترام
-
وعليكم السلام ورحمة الله وبركاته هل تعنى انك لا تريد ظهور الواجهة لاحتيار الملف وتريد الاستيراد مباشرة اليك الملف بدون ظهور الواجهة ويكون الملفان في مكان واحد وبنفس الاسماء اضغط على زر استيراد يتم احضار البيانات مباشرة ملف.zip
-
وعليكم السلام ورحمة الله وبركاته الكود حاليا عند التقر على الزر يقوم بفتح واجهة اختيار ملف من اي مكان في جهازك وليس ضروريا ان يكوتا في نفس المجلد حيث يقوم الكود بمسح البيانات القديمة والصاق الجديدة اليك الملف متمنيا ان تجد فيه طليك ملف.xlsb تحياتي
-
السلام عليكم السبب هو وجود مسافات قبل الارقام وهذا يحدث عادة عند نسح ارقام ناتجة عن معادلات الحل كل القيم تتحول إلى نصوص (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
-
السلام عليكم حسب قهمي للكود الكود يتعامل مع العمود 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
-
ترحيل البيانات من ورقة الورقة اخرى
عبدالله بشير عبدالله replied to بلال اليامين's topic in منتدى الاكسيل Excel
ولن يعمل لان ملفك ليس به اي كود ولن يقبل حفظ اي كود لانه بامتداد xlsx ولو قرأت ما شرحته لك في الرد السابق لفهمت سبب عدم عمل الملف تحياتي -
ترحيل البيانات من ورقة الورقة اخرى
عبدالله بشير عبدالله replied to بلال اليامين's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته حسب طلبك في الرسائل الحاصة استاذ هذا هو طلبي لقد اعادة ملف الاكسيل لقد حاولت وضع الكود ولم اسطيع الاجابة على طلبك ارجع الى اول ملف في مشاركتك الاولى اسم الملف (امتداده) يتنهي xlsx ارجع الى الملف الذي ارفقت لك به الاجابه وبه الكود اسم الملف (امتداده) يتنهي xlsb لماذا قمت انا بتغيير امتداد الملف من xlsx الى xlsb ؟ لسبب بسيط وهو ان اي ملف اكسل يتنهي اسمه (امتداده) xlsx لا يمكن ان يحفظ كود في هذه النوعية من الملفات ماذا يحدث لو وضعت كوداً في ملف xlsx؟ إذا قمت بوضع كود داخل ملف xlsx ثم قمت بالحفظ: ستظهر لك رسالة تنبيه واضحة. إذا ضغطت "نعم" (Yes) للحفظ بصيغة xlsx فسيقوم إكسل بمسح الكود تماماً. عند فتح الملف مرة أخرى، لن تجد أي أثر للكود الذي كتبته. وملفك الاخير بنفس الامتداد xlsx فلن يتم حفظ الكود لذلك عند حفظ الملف وظهور رسالة التنبيه احتيار لا بدل نعم كما في الصور المرفقة اليك الملف وبه الكود بغد تحويله من xlsx الى xlsb وهو نفس الملف في احر مشاركة لي Employees.xlsb -
ترحيل البيانات من ورقة الورقة اخرى
عبدالله بشير عبدالله replied to بلال اليامين's topic in منتدى الاكسيل Excel
السلام عليكم تم التعديل ومسح البيانات للنطاق b7:h7 بعد الترحيل مع التسطير كذلك تم اظافة شرط وهو اذا كانت الخلايا في النطاق b7:h7 فارغة لا يتم الترحيل Employees5.xlsb -
ترحيل البيانات من ورقة الورقة اخرى
عبدالله بشير عبدالله replied to بلال اليامين's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته كنت اتمنى دعم طلبك ببياتات لتتضح الصورة اكثر طلبك فيه بعض الغموض بالنسبة لي وهذا الغموض في شيت حجز التوقيت فهل الصفوف 8-9-10-11 بها بيانات وترحل ام لا افترضت ان الصفوف المراد ترحيلها الرابع والسابع مبدئيا جرب الكود في الملف المرفق فاذا كان ليس طلبك حدد طلبك بالتفصيل مدعما بملف به البيانات المراد ترحيلها Employees5.xlsb -
جرب التعديل التالي test2.xlsm
-
مشكلة في جمع مبلغ بين تاريخين باستخدام vba
عبدالله بشير عبدالله replied to Abu_Muhsen's topic in منتدى الاكسيل Excel
حسب فهمي لسؤالك في الكود المعدل الكود يقرأ عمود التاريخ كرقم وللتوضيح اكثر التواريخ هي في الأصل أرقام (مثلاً تاريخ اليوم هو رقم مثل 46040)، والتنسيق الذي تراه dd/mm/yyyy هو مجرد "قناع" أو مظهر خارجي لتسهيل القراءة علينا كبشر. في الكود توجد الدالة CDbl(.Range("J3").Value)، بحيث يأحد "القيمة الرقمية" الحقيقية المخزنة داخلها. وباحتصار الكود الآن يرى التاريخ كقيمة رقمية مجردة، بغض النظر عن طريقة تنسيق التاريخ في خلايا الجدول (سواء كانت yyyy/mm/dd أو dd-mm-yy). ويمكنك تجربة تبديل بعض التواريح بتغيير التنسيق في الجدول كمثال جعل 15/04/2026 الى 04/15/2026 فالنتيجة واحدة تحياتي -
السلام عليكم جرب التعديل التالي 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
-
مشكلة في جمع مبلغ بين تاريخين باستخدام vba
عبدالله بشير عبدالله replied to Abu_Muhsen's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته المشكلة الأساسية في الكود تكمن في طريقة التعامل مع تنسيق التاريخ. في VBA، عندما نستخدم SumIfs مع التواريخ، يفضل تمرير التاريخ كقيمة رقمية (Long) اذا كانت الكميات ارقام صثحيحة و Double بدلاً من Long تحسباً لوجود كسور في الكميات (إذا كانت الكمية تحتوي على فواصل عشرية ) ، لأن تحويله إلى نص (String) مثل "MM/dd/yyyy" قد يتسبب في عدم تطابق البيانات إذا كان إعداد التاريخ في الجهاز مختلفاً. جرب التعديل بالملف المرفق SUMIFS_VBA.xlsm -
وعليكم السلام ورحمة الله وبركاته فكرة pdf انه يقوم بانشاء صفحة مؤقتة بها اسماء الموظفين وكل موظف قي ورقة ثم يصدرها الى pdf قم يحذف الورقة عدد الموظفين لديك حوالى 350 موظف بمعنى يتم انشاء حوالى 350 ورقة المقصود مما سبق دكره ان الكود سيأحد بعض الوقت لتنفيذ الامر ويعتمد الامر على مواصفات الجهاز بالنسبة لجهازي تطلب الامر دقيقة ونصف بمواصفات في حدود الجيدة اليك الملف مرتب الفنيين عن شهر يناير 2026 تعديل.xlsm
-
السللام عليكم التغيير من السبنر المرتبط بالخلية J2 ثانوية عامة.xlsm
-
تنفيذ كود علي جميع اوراق العمل عند فتح الشيت
عبدالله بشير عبدالله replied to محمدسلام's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته جرب الكود ويوضع في 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 -
بدون التنسيق الشرطي ... كود لعمل ذلك
عبدالله بشير عبدالله replied to بلانك's topic in منتدى الاكسيل Excel
السلام عليكم جرب الكود 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 -
وعليكم السلام ورحمة الله وبركاته جرب الكود حيث قبل التنفيذ، يقوم بحذف أي دوائر سابقة 1الثالث.xlsb
- 1 reply
-
- 5
-
-
-
السلام عليكم حقيقة الدحول الى الموقع اصبح بالصدفة قليل ما تجدة يعمل الكود سليم والمشكلة في تنسيق الأرقام قي صفخة table في العمودين b& e اذا اردتها بالأرقام العربية حسب ملفك فقم بتنسيقها الى [$-,201]# وان اردتها بالأرقام الغربية اجعل النتسيق رفم بدون خانات عشرية ملف بتنسيق الارقام العربية [$-,201]# مراقبة ثانوية 2026.xlsm ملف بتنسيق الارقام الغربية مراقبة ثانوية1 2026.xlsm
-
وعليكم السلام ورحمة الله وبركاته InputBox في VBA لا يدعم إخفاء النصوص أو إظهارها كنجوم بشكل مباشر. الحل هو استخدام UserForm مع TextBox خاصية PasswordChar طباعة.xlsm
-