اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أسامة البراوى

الخبراء
  • Posts

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

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

  • Days Won

    2

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

  1. فى هذة الحالة خرجت عن الهدف من تلك الفورم وهو بناء فورم سريع وبسيط بدون جهد برمجى واظن انك فى تلك الحالة تحتاج الى فورم مخصص حسب متطلباتك ومع اكواد لرصد التغيير فى التكست بوكس وعمل النتايج المطلوية
  2. السلام عليكم الكود فغلا يحتوى عى تلك الخاصية فهو يبحث عما اذا كانت الخلية تحتوى على معادلة ويقوم بتجميد التكست بوكس المقابل لها لاظهار الناتج فقط بمعنى ضع المعادلات التى ترغب فيها فى جدول البيانات من اول صف بعد العنوان وسوف يقوم الكود بمعرفة تك الخاصية واظهار نتائج الفورم فقط دون القدرة على تغيير محتوى تلك الخلية فى الفورم . ولكن من خلال المعادله وطبعا تحديث ناتج المعادلي يظهر فقط بعد تحديث بيانات ذلك السجل
  3. السلام علبكم المشكله هى نفس المشكلة السابقة (اي عدم قبول الاوفيس لاي عمليات حسابية على التاريخ الهجرى) وبالتالى يجب عليك تحويل التاريخ الى ميلادي قبل وضعه فى اي معادلة او تحويله داخل المعادلة باستخدام الاكواد السابقة كما يلى =IF(E6<>"",IF(h2g(E6)>NOW(),"باقي على إنتهاء الصلاحية "&(ROUND((h2g(E6)-NOW())+1,0))&" يوم","إنتهت الصلاحية من "&(-ROUND((h2g(E6)-NOW())+1,0))&" يوم"),"") والمعادلة الثانية =h2g(I6)-h2g(E6)
  4. اتفضل جرب الفكرة دى وهى شيت مخصوص للطباعة وهناك خلايا (B2) لاختيار عدد الصفوف المطلوبة فى الصفحة وبناءا علي اختيارك يتحدد عدد الصفحات المتوقعة وعليك اختيار رقم الصفحة المراد طبعها من الخلية C2 وكمان اختيار مقاس الطباعة من d2 عند الضغط على زر الطباعة يقوم البرنامج بالتاكد من عدد الصفوف ويقوم بتنظيف صفحة الطباعة ونسخ الاختيار الجديد ثم اصدار امر الطباعة Print Certain Rows in Page.xlsm
  5. السلام عليكم لكي تعمل معادلة الاستاذ سليم جيدا يجب ان تستعمل نوع معين من الفواصل لذلك المعادلة تقوم بجمع القيم الموجودة بجوارها الفاصلة , فقط اما الفاصلة الاخرى ، فلا يتم جمعها
  6. السلام عليكم الاشكالية هنا ان الاوفيس او الويندوز بصفة عامة يقوم بحساب التواريخ الميلادية عى انها عدد الايام من يوم 1/1/1900 وبالتالى يتعامل معها كانها ارقام ويجمع ويطرح اما بالنسبة للتاريخ الهجرى فهو يعامل كانه نص فقط يظهر التاريخ كما تريد ولكن لا يقبل العمليات الحسابية طيب نحلها ازاى دي نرجع التاريخ الهجرى لميلادى (اللى هوا رقم وبيقبل الحسابات) اولا ثم نقوم بالعملية الحسابية ونعيد التاريخ الى ما كان عليه بالهجرى ضيف الاكواد التالية فى ال module وبكدة يبقى عرفت دالة h2g للتحويل من هجرى الى ميلادي ودالة g2h للتحويل من ميلادى الى هجرى وبعدين غير المعادلة الى =g2h(h2g(D7)+30) Function G2H(dtGregDate As Date) As String ' returns a date in Hijri format for a given western date VBA.Calendar = vbCalHijri G2H = dtGregDate VBA.Calendar = vbCalGreg End Function Function H2G(dtHijDate As String) As Date ' returns a Gregorian date in from a string containing a Hijri date VBA.Calendar = vbCalHijri H2G = dtHijDate VBA.Calendar = vbCalGreg End Function التقويم الهجري3.rar
  7. تفضل الكود Sub CopyData() Dim WS As Worksheet, SH As Worksheet Dim x As Long, i As Long, Arr Set WS = Sheets("aaa"): Set SH = Sheets("bbb") x = SH.Cells(Rows.Count, 2).End(3).Row + 1 Application.ScreenUpdating = False Arr = Array("C2", "C3", "C6", "F2", "F3", "F4", "F5", "", "", "F6", "", "F7", "", "F8", "", "", "", "", "", "F9", "C7", "C8", "C9", "C10", "C11", "C12") For i = LBound(Arr) To UBound(Arr) If Arr(i) <> "" Then Arr(i) = WS.Range(Arr(i)).Value If IsEmpty(Arr(i)) Then MsgBox "البيانات غير كاملة يرجى إكمال كافة الحقول": Exit Sub Next i With SH .Cells(x, 1) = .Cells(x, 1).Row - 2 For i = LBound(Arr) To UBound(Arr) If Arr(i) <> "" Then .Cells(x, i + 2) = Arr(i) Next End With MsgBox "تم الاضافة بنجاح", vbInformation Application.ScreenUpdating = True End Sub
  8. السلام عليكم ورحمة الله الكود كالتالى مع مراعاة نعديل صيغ الارقام فى الخلايا واضافة سطر لتوضيح صافى المستخلص Sub ِAdd_New_Invoice() Dim Old_Invoice Dim New_Invoice Dim Previous_Value Dim R Old_Invoice = ActiveSheet.Name ' الاحتفاظ بقيمة المستخلص الحالى لاستخدامها لاحقا Previous_Value = ActiveSheet.Range("D43") 1: New_Invoice = InputBox("الرجاء إدخال رقم المستخلص ", " رقم المستخلص ") 'فحص المدخلات والتأكد ان المستخدم قام بادخال رقم If Val(New_Invoice) < 1 Then R = MsgBox("لم يتم إدخال رقم: هل تريد إعادة المحاولة ؟", vbRetryCancel) If R = vbRetry Then GoTo 1 Else Exit Sub End If 'فحص المدخلات والتأكد من عدم تكرار اسم الشيت For Each ws In ActiveWorkbook.Worksheets If New_Invoice = ws.Name Then R = MsgBox(" الرقم موجود مسبقا: هل تريد إعادة المحاولة ؟", vbRetryCancel) If R = vbRetry Then GoTo 1 Else Exit Sub End If Next 'رسالة التأكيد R = MsgBox(" لقد قمت بإدخال البيانات التالية: " & vbNewLine & "" & vbNewLine & "رقم المستخلص : " & New_Invoice, vbOKCancel + vbQuestion + vbMsgBoxRight, "تأكيد اضافة ورقة") If R <> vbOK Then Exit Sub ' البدء فى العمل ActiveSheet.Copy Before:=Sheets(1) ActiveSheet.Name = New_Invoice Sheets(New_Invoice).Range("c2").Value = New_Invoice ' نسخ قيم الخلايا فى عمود إجمالى الكميات للمستخلص السابق Sheets(Old_Invoice).Range("K11:K41").Copy ' لصق قيم الخلايا فى عمود الكميات السابقة للمستخلص الجديد Sheets(New_Invoice).Range("G11:G41").PasteSpecial Paste:=xlPasteValues ' مسح قيم الخلايا فى عمود الكميات الحالية للمستخلص الجديد Sheets(New_Invoice).Range("I11:I41").ClearContents ' كتابة قيمة المستخلص السابق Sheets(New_Invoice).Range("D44").Value = Previous_Value Sheets(New_Invoice).Range("D44").Select End Sub
  9. الجداول الجانبية فيها التواريخ المحسوبة يدويا للمقارنة فقط ويمكنك مسحها
  10. السلام عليكم ورحمة الله بالنسبة لطلبك افحص الملف التالى وهو يعمل من خلال تلك الخطوات اولا: حدد مكان الملفات المطلوب استدعاء او جلب البيانات منها حتى ولو فى نفس المجلد اثانيا: يطلب البرنامج منك عدة استفسارات ليقوم بعمله حسب رغبتك مع التأكيد ان الملفات يوجد بها ورقة عمل بأسم "Data Form" , والا يكون غير مطابق وفى النهاية يقوم باظهار تقرير يوضع عدد الملفات الى تم اضافة بياناتها و عدد الملفات التى تم تحديث بياناتها وكذلك عدد الملفات التى لا تطابق النموذج المطلوب Collecting Data From Files.rar
  11. السلام عليكم الخطأ فعلا كما اشار أبو عيد هو فى النص والتاريخ كالتالى اولا القيمة الموجودة فى الخلية H48 لا تعبر عن تاريخ وهي غير متوافقة مع ما سبقها فى الجدول من فواصل التاريخ الرجاء مراجعة اعدادات الجهاز او كتابة التاريخ بنفس ما سبقة من فواصل ثانيا انت تحاول استعمال دالة روابط النص لتجميع التواريخ فإذا قمت باستعمال هذة الدالة بعد التعديل الى صيغة التاريخ سوف تستعمل الدالة التاريخ المبلادى - لذلك قمت بتعديل المعادلة فى الخلية I48 الى معادلة حسابية بفرض ان السنة الهجرية تساوى 354.367056 يوم وهى ... تاريخ اخر دفعة = تاريخ اول دفعة + (عدد الاقساط -1) * 354.367056/12 H48+ROUND((D48-1)*354.367056/12,0) المعادلة السابقة تعطى نتائج قد تفرق حسابيا يوم او بعض الكسور من اليوم فمثلا قد تجد اول قسط يوم 25 واخر قسط يوم 24 او 26 لذلك قمت باضافة الفرق فى الايام الى ناتج المعادلة بتحويل التاريخ الى نص ثم حساب الفرق بين التاريخين (لتفادى ان الاكسل يتعامل فى معادالات التاريخ بالتقويم الميلادى فقط ) وبالتالى اضافة هذا الفرق MID(TEXT(H48,"b2dd.mm.yyyy"),1,2)-MID(TEXT(H48+ROUND((D48-1)*354.367056/12,0),"b2dd.mm.yyyy"),1,2) المعادلة بالكامل للسطر 48 هى كالتالى =H48+ROUND((D48-1)*354.367056/12,0) + MID(TEXT(H48,"b2dd.mm.yyyy"),1,2)-MID(TEXT(H48+ROUND((D48-1)*354.367056/12,0),"b2dd.mm.yyyy"),1,2) وللتأكد من صحة المعادلة قمت بتطبيقها على الجدول بالكامل ومقارنة النتائج بتلك المحسوبة يدويا فى السابق وفعلا تطابقت التواريخ ما عدا السطر رقم 31 فيوجد به خطأ فى الاصل مرفق طيه الملف تلوين بشرط ...1.zip
  12. نقل البيانات من الرئيسية الى ورقتين بشرطين مختلفين مع ادراج فواصل الصفحات وترك 4 صفوف فارغة للتذييل- والترتيب.xlsb.rar
  13. السلام عليكم تفضل النسخة المعدلة بعد تلافى الخطا السابق واضافة زر لمسح البيانات من ورقة العمل المجمعة إقرار.rar
  14. السلام عليكم مرفق الملف بعد التعديلات واظن انه يلبى كل تطلعاتك ويحتوى على الاتى قائمة منسدلة لاختيار رقم الاقرار المطلوب عرضه إفرار جديد لتنظيف النموذج مع اضافة رقم مسلسل جديد رقم حفظ التعديلات ويقوم بحفظ التغييرات على إقرار موجود او اضافة إقرار جديد ويمكنه ايضا عمل رقم للإقرار لو رقمه غير موجود فحص النموذج واخبارك بالمعلومات التى لم يتم ادخالها حسب قائمة الفحص تنظيف النموذج ... مسح جميع البيانات فى النموذج إقرار.rar
  15. السلام عليكم بالنسبة لارتفاع الصفوف وعرض الخلايا : دى عملية من الافضل انك تعملها يدوى اول مرة حسب الطابعة الخاصة بك وابعاد ورق الطباعة ولن تتغير لان الكود لايقترب منها طبعا عدد الصفوف فى كل ورقة عمل انت محدده مسبق اما بالنسبة للسلسلة النصية فيمكن تطبيق الكود التالى بدلا من الموجود مسبقا لتوزيع التوقيعات .Cells(29 * i + 4, 1) = "مراجع أول" & String(25, " ") & "مراجع ثاني" & String(25, " ") & "مراجع ثالث" & String(25, " ") & "مراجع رابع" & String(25, " ") & "مراجع خامس" .Range("A" & 29 * i + 4, "I" & 29 * i + 4).HorizontalAlignment = xlCenterAcrossSelection والكود بالكامل سيصبح كالتالى Option Explicit Sub TransferdataByTwoConditions() Dim LR As Long, x As Long, i As Long, j As Long, z As Long, zz As Long Application.ScreenUpdating = 0 With Sheets("الرئيسية") LR = .Range("A" & Rows.Count).End(xlUp).Row ReDim Arr(1 To LR, 1 To 45) ReDim SS(1 To LR, 1 To 9) ReDim SS2(1 To LR, 1 To 9) Arr = .Range("A8", "AS" & LR).Value Dim WS As Worksheet Set WS = Sheets.Add(After:=Sheets(Worksheets.Count)) WS.Range("A8", "AS" & LR) = Arr WS.Sort.SortFields.Clear WS.Sort.SortFields.Add Key:=Range("D8", "D" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal WS.Sort.SortFields.Add Key:=Range("C8", "C" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With WS.Sort .SetRange Range("A8", "AS" & LR) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Arr = WS.Range("A8", "AS" & LR).Value Application.DisplayAlerts = False WS.Delete Application.DisplayAlerts = True i = 1: j = 1 For x = 1 To UBound(Arr) If Arr(x, 16) = "الاول" Then SS(i, 1) = i: SS(i, 2) = "'" & Arr(x, 2): SS(i, 3) = Arr(x, 3): SS(i, 4) = Arr(x, 4): SS(i, 5) = Arr(x, 5) SS(i, 6) = Arr(x, 7): SS(i, 7) = Arr(x, 23): SS(i, 8) = Arr(x, 18): SS(i, 9) = Arr(x, 45) z = z + 1 If z = 25 Then z = 0: i = i + 5 Else i = i + 1 End If End If If Arr(x, 17) = "الثانى" Then SS2(j, 1) = j: SS2(j, 2) = "'" & Arr(x, 2): SS2(j, 3) = Arr(x, 3): SS2(j, 4) = Arr(x, 4): SS2(j, 5) = Arr(x, 5) SS2(j, 6) = Arr(x, 18) zz = zz + 1 If zz = 30 Then zz = 0: j = j + 5 Else j = j + 1 End If End If Next With Sheets("شرط اول") LR = .Range("A" & Rows.Count).End(xlUp).Row If LR > 6 Then .Range("A8", "I" & LR).ClearContents .Range("A8").Resize(UBound(Arr), 9) = SS For i = 1 To Application.RoundUp((Application.Match(9 ^ 9, .Range("A:A"), 1) - 7) / 29, 0) .HPageBreaks.Add Before:=Cells(29 * i + 8, 1) .Cells(29 * i + 4, 1) = "مراجع أول" & String(25, " ") & "مراجع ثاني" & String(25, " ") & "مراجع ثالث" & String(25, " ") & "مراجع رابع" & String(25, " ") & "مراجع خامس" .Range("A" & 29 * i + 4, "I" & 29 * i + 4).HorizontalAlignment = xlCenterAcrossSelection .PageSetup.PrintArea = [Criteria1].Address .PageSetup.PrintTitleRows = "$1:$7" Next End With With Sheets("شرط ثانى") LR = .Range("A" & Rows.Count).End(xlUp).Row If LR > 6 Then .Range("A8", "I" & LR).ClearContents .Range("A8").Resize(UBound(Arr), 9) = SS2 For i = 1 To Application.RoundUp((Application.Match(9 ^ 9, .Range("A:A"), 1) - 7) / 34, 0) .HPageBreaks.Add Before:=Cells(34 * i + 8, 1) .Cells(34 * i + 4, 1) = "مراجع أول" & String(15, " ") & "مراجع ثاني" & String(15, " ") & "مراجع ثالث" & String(15, " ") & "مراجع رابع" & String(15, " ") & "مراجع خامس" .Range("A" & 34 * i + 4, "F" & 34 * i + 4).HorizontalAlignment = xlCenterAcrossSelection .PageSetup.PrintArea = [Criteria2].Address .PageSetup.PrintTitleRows = "$1:$7" Next End With End With End Sub
  16. السلام عليكم اخى العزيز حتى لا نظل ندور فى حلول متعددة ونفقد مميزات الكود الاصلى يمكنك التنازل عن ترحيل المسلسل كما هو فى الجدول الرئيسي بحيث يبدا كل جدول فرعي (شرط اول و شرط ثانى ) بمسلسل جديد من 1 وحتى عدد الصفوف المطابقة وبهذا يعمل الكود الاصلى بدون اي مشاكل كما بالكود التالى Option Explicit Sub TransferdataByTwoConditions() Dim LR As Long, x As Long, i As Long, j As Long, z As Long, zz As Long Application.ScreenUpdating = 0 With Sheets("الرئيسية") LR = .Range("A" & Rows.Count).End(xlUp).Row ReDim Arr(1 To LR, 1 To 45) ReDim SS(1 To LR, 1 To 9) ReDim SS2(1 To LR, 1 To 9) Arr = .Range("A8", "AS" & LR).Value Dim WS As Worksheet Set WS = Sheets.Add(After:=Sheets(Worksheets.Count)) WS.Range("A8", "AS" & LR) = Arr WS.Sort.SortFields.Clear WS.Sort.SortFields.Add Key:=Range("D8", "D" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal WS.Sort.SortFields.Add Key:=Range("C8", "C" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With WS.Sort .SetRange Range("A8", "AS" & LR) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Arr = WS.Range("A8", "AS" & LR).Value Application.DisplayAlerts = False WS.Delete Application.DisplayAlerts = True i = 1: j = 1 For x = 1 To UBound(Arr) If Arr(x, 16) = "الاول" Then SS(i, 1) = i: SS(i, 2) = "'" & Arr(x, 2): SS(i, 3) = Arr(x, 3): SS(i, 4) = Arr(x, 4): SS(i, 5) = Arr(x, 5) SS(i, 6) = Arr(x, 7): SS(i, 7) = Arr(x, 23): SS(i, 8) = Arr(x, 18): SS(i, 9) = Arr(x, 45) z = z + 1 If z = 25 Then z = 0: i = i + 5 Else i = i + 1 End If End If If Arr(x, 17) = "الثانى" Then SS2(j, 1) = j: SS2(j, 2) = "'" & Arr(x, 2): SS2(j, 3) = Arr(x, 3): SS2(j, 4) = Arr(x, 4): SS2(j, 5) = Arr(x, 5) SS2(j, 6) = Arr(x, 18) zz = zz + 1 If zz = 30 Then zz = 0: j = j + 5 Else j = j + 1 End If End If Next With Sheets("شرط اول") LR = .Range("A" & Rows.Count).End(xlUp).Row If LR > 6 Then .Range("A8", "I" & LR).ClearContents .Range("A8").Resize(UBound(Arr), 9) = SS For i = 1 To Application.RoundUp((Application.Match(9 ^ 9, .Range("A:A"), 1) - 7) / 29, 0) .HPageBreaks.Add Before:=Cells(29 * i + 8, 1) .Cells(29 * i + 4, 2) = "مراجع أول": .Cells(29 * i + 4, 3) = "مراجع ثاني" .Cells(29 * i + 4, 5) = "مراجع ثالث": .Cells(29 * i + 4, 7) = "مراجع رابع" .Cells(29 * i + 4, 9) = "مراجع خامس" .PageSetup.PrintArea = [Criteria1].Address .PageSetup.PrintTitleRows = "$1:$7" Next End With With Sheets("شرط ثانى") LR = .Range("A" & Rows.Count).End(xlUp).Row If LR > 6 Then .Range("A8", "I" & LR).ClearContents .Range("A8").Resize(UBound(Arr), 9) = SS2 For i = 1 To Application.RoundUp((Application.Match(9 ^ 9, .Range("A:A"), 1) - 7) / 34, 0) .HPageBreaks.Add Before:=Cells(34 * i + 8, 1) .Cells(34 * i + 4, 2) = "مراجع أول": .Cells(34 * i + 4, 3) = "مراجع ثاني" .Cells(34 * i + 4, 4) = "مراجع ثالث": .Cells(34 * i + 4, 6) = "مراجع رابع" .PageSetup.PrintArea = [Criteria2].Address .PageSetup.PrintTitleRows = "$1:$7" Next End With End With End Sub
  17. السلام عليكم لا اخفى عليك انى رايت تلك المشكله لكن ظننت انها فى جهازى فقط لذلك ارسلت لك الكود لتجربته لانى لم يتسع لى الوقت للبحث حينها .. لكنك اشرت الى الحل اعلاه وهو الخاصية Creterial 1 و Creterial 2 100 والسر هو ان الخواص السابقة تعتمد بشكل اساسى على مكان اكبر رقم فى خانة المسلسل وهى العمود الاول وللصدفة فان اكبر مسلسل فى ورقة العمل"شرط اول" هو وبسب الترتيب ظهرت فى الصفحة الاولى من الطباعه وبالتالى قامت الخاصية بتحديد مجال الطباعة على الصفحة الاولى فقط اما فى ورقة العمل الاخرى فقد كان مكان اقصى مسلسل وهو 95 في الصفحة الثانية وبالتالى لم تتكرر المشكلة والحل بسيط وهو تجاهل تلك الخواص واستبدال الاسطر التالية .PageSetup.PrintArea = [Criteria1].Address بالسطر .PageSetup.PrintArea = Range("A1", "I" & 29 * i + 7).Address .PageSetup.PrintArea = [Criteria2].Address بالسطر .PageSetup.PrintArea = Range("A1", "F" & 34 * i + 7).Address
  18. السلام عليكم لماذا لا تضيف ورقة عمل جديدة بها تفاصيل الدفع برقم المنتج وتاريخ الدفعة وتفاصيلها بحيث يتم اظهار اجمالى المدفوع فى الخلية وهو اسهل وادق حل كما بالملف المرفق ادخال مبلغ بخلية.rar
  19. السلام عليكم ورحمة الله وبركاته قم ياضافة السطر التالى للكود لاضافة الترتيب بعمود اخر WS.Sort.SortFields.Add Key:=Range("D8", "D" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal Dim WS As Worksheet Set WS = Sheets.Add(After:=Sheets(Worksheets.Count)) WS.Range("A8", "AS" & LR) = ARR WS.Sort.SortFields.Clear WS.Sort.SortFields.Add Key:=Range("D8", "D" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal WS.Sort.SortFields.Add Key:=Range("c8", "c" & LR), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With WS.Sort .SetRange Range("A8", "AS" & LR) .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With
  20. السلام عليكم تفضل المعادلة بعد التعديل =CONCATENATE(MID(E$34,1,4)+INT((MID(E$34,6,2)+D$26-2)/12),"/",TEXT(IF(MOD(MID(E$34,6,2)+D26,12)>1,MOD(MID(E$34,6,2)+D$26-1,12),MOD(MID(E$34,6,2)+D$26,12)+11),"00"),"/",RIGHT(E34,2))
  21. السلام عليكم الاخ الفاضل ابو عبد الرحمن وسلمى اظن ان طلبك هو ترتيب الناتج ابجديا ولذلك قمت بعمل الحل التالى لترتيب الشيت الرئيسي فى شيت مؤقت ثم اعادة اخذ البيانات منه وبالتالى قد تم ترتيب المخرجات بترتيب ابجدى بالكامل وليس داخل كل صفحة كما المرفق . واتمنى ان يكون ذلك الحل يفى بالغرض نقل البيانات من الرئيسية الى ورقتين بشرطين مختلفين مع ادراج فواصل الصفحات وترك 4 صفوف فارغة للتذييل- والترتيب.rar
  22. السلام عليكم يبدو ان هناك اسم غير معرف فى الدالة عرفه وجرب
×
×
  • اضف...

Important Information