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

ياسر خليل أبو البراء

المشرفين السابقين
  • Posts

    13,165
  • تاريخ الانضمام

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

  • Days Won

    412

كل منشورات العضو ياسر خليل أبو البراء

  1. هل يوجد صفحات مستثناة ..أم أن كل الصفحات نفس الهيكلة .. أحتاج لملف مرفق بسيط وليس الملف الأصلي توضح فيه النقطة المطلوبة فقط لأستطيع العمل عليها واذكر التفاصيل .. هل الحلقات التكرارية ستكون على كل أوراق العمل أم أن هناك أوراق عمل لا تدخل ضمن الحلقة ؟؟ وهل الصف سيكون دائماً الصف رقم 7 أم لا ..؟ لابد أن تكون أوراق العمل بنفس الهيكلة جرب الملف التالي .. عله يفيدك Sample.rar
  2. السلام عليكم أخي الكريم طارق جرب الكود التالي عله يكون المطلوب .. وبدلاً من الرفع يرجى فيما بعد إلقاء مزيد من التوضيح للمشكلة مع إرفاق صورة بالمطلوب إذا لزم الأمر Sub Test() Dim s As Worksheet Dim t As Worksheet Dim c As Long Dim x As Long Set s = Sheets("تموز") Set t = Sheets("هويات") x = 3 Application.ScreenUpdating = False s.Columns("A:B").Copy t.Columns(1) For c = 4 To 20 Step 2 'رقم 20 آخر عمود به بيانات في ورقة تموز s.Columns(c).Copy t.Columns(x) x = x + 1 Next c Application.ScreenUpdating = True End Sub
  3. وعليكم السلام أخي سنفور مش كنت تسنفر ملف مرفق عشان الأخوة يقدروا يسنفروك في الملف المستنفر جرب المعادلة التالية علها تفي بالغرض =IFERROR(TRIM(MID(A1,FIND("-",A1)+1,LEN(A1))),"")
  4. وجزيت خيراً أخي الكريم بمثل ما دعوت لي والحمد لله أن تم المطلوب على خير تقبل تحياتي
  5. السلام عليكم أخي أبو سلمان احتاج الى ترحيل الرصيد التراكمي لعمليات المخزون بحيث يظهر الرصيد التراكمي عند كل يوم موجود في الجدول السابق وفي حالة عدم وجود حركة لأي يوم من الأيام اللي مذكورة في الجدول ،، أو أن اليوم غير موجود أصلا في الجدول ،، فارجو استبعاده من القائمة واخفاءه. دا كلامك بس مفهمتش منه حاجة .. لأني لغتي في المنتدى هي الإكسيل مش تقولي رصيد وكمان تراكمي ومخزون ودياولو .. حدد هدفك لتصل إلى مبتغاك قول في ورقة العمل كذا والتي تعتبر ورقة البيانات الأصلية يوجد في النطاق كذا وكذا والمطلوب ترحيل البيانات بشرط كذا ويكون الترحيل لورقة كذا في الخلية كذا بالشكل كذا ويا حبذا لو أرفق بعض النتائج المتوقعة ..
  6. إن شاء الله سأحاول الإطلاع عليهم ليلاً حيث أنني غير متاح في الوقت الحالي .. تقبل تحياتي
  7. عشان متفجرش الحدث مرة أخرى ..بمعنى آخر المفترض في أكواد حدث ورقة العمل إنه لما بيحصل تغيير في ورقة العمل بيفجر عمل الكود ويبدأ في التنفيذ .. وأثناء مرحلة التنفيذ بيتم تعديل على بعض الخلايا فأثناء التعديل مش عايزين يحصل تفجير لأنه لو حصل تفجير في الوقت اللي بنعدل فيه ، هيفضل يفجر مرة تانية ويعدل تاني ، فيبدأ التفجير من جديد وهكذا مما يؤدي إلى حدثو تهنيج .. وهو دا المقصود من استخدام السطر ده أهلاً بيك في المنتدى
  8. لربما يكون العنصر غير موجود أو أن البيانات غير صحيحة .. لأني لاحظت وجود مسافات زائدة .. قم بإزالة المسافات الزائدة وجرب مرة أخرى وجرب على عنصر تكون متأكد من تواجده
  9. السلام عليكم أخي العزيز ابن الملك تفضل الإجابة في صورتين أحسن من كلمتين ...
  10. وعليكم السلام أخي الكريم توهتني بمكان الخلية المطلوبة لكتابة رقم المجموعة عموماً قم بكتابة رقم المجموعة في الخلية P1 في ورقة النتائج وجرب الكود التالي في حدث ورقة العمل الخاصة بالنتائج Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$G$1" Then Dim s As Worksheet Dim t As Worksheet Dim v As Variant Dim r As Long Set s = Sheets("تسجيل البيانات") Set t = Sheets("الكشوف النهائية") v = t.Range("P1").Value If Not IsNumeric(v) Or IsEmpty(v) Then t.Range("B14").Resize(6, 4).ClearContents: Exit Sub r = (v * 6) + 5 t.Range("B14").Resize(6, 4).Value = s.Range("A" & r).Resize(6, 4).Value End If End Sub
  11. أخي الكريم الديب ممكن ترفق ملف مع بعض النتائج المتوقعة ..
  12. ممكن سؤال سؤال عشان أقدر أجاوبك دلوقتي إنت عايز تحدد عدد الأعمدة بناءً على مدخل في خلية أم بناءً على الكود .. يعني الكود اللي يحدد ولا إنت اللي هتحدد عدد الأعمدة؟
  13. أخي الكريم أبو حنين عفواً أنني أرى أنه ليس رائع كما تظن .. لو قمت بتسجيل ماكرو ستحصل على مثل هذه الأسطر الطويلة بلا فائدة وتأكيداً لكلامي اقرأ الحلقة التالية وستعرف مدى صدق كلامي وخاصة بالنسبة لموضوع الترتيب
  14. بالنسبة لرقم الصف أعتقد أن الأخ ياسر العربي اعتمد على أول صف الذي يلي صف العناوين (الذي أسميته الترويسة) أنا لم أطلع على الكود بالكامل ولذلك لا يمكنني الرد على استسفاراتك كلها .. ولكن بالنسبة للتقسيم كما ذكرت في الشرح ويا حبذا لو درست الشرح بشكل جيد لتتعلم منه .. الهدف من التقسيم الحصول على رمز العمود .. آخر عمود هذا والله الموفق
  15. عفواً أخي محمد الحمد لله الذي بنعمته تتم الصالحات
  16. السلام عليكم تفضل أخي ناصر شرح السطر الذي طلبته ولكن بأسلوب آخر .. قم بنسخ الكود في موديول عادي ، ونفذ الكود باستخدام F8 ليتم تنفيذ الكود سطر بسطر وتتعلم ماذا يحدث مع كل سطر Sub Test() 'تعريف المتغير من النوع ورقة عمل Dim sh As Worksheet 'تعريف المتغير من النوع نطاق Dim rng As Range 'تعريف المتغير من النوع النصي Dim str As String 'تعريف متغير ليحمل القيم التي سيتم تقسيمها في النص وسيكون بمثابة مصفوفة Dim x As Variant 'تعيين قيمة لمتغير ورقة العمل ليشير لورقة العمل المسماة "بيانات الطلبة" ونستخدم المتغير في الكود Set sh = Sheets("بيانات الطلبة") 'تعيين قيمة للمتغير ليساوي آخر عمود في الصف السابع '[XFD7] للانتقال من نقطة البداية وهي [xlToLeft] حيث تستخدم كلمة 'إلى أول عمود جهة اليسار والذي يعتبر آخر عمود به بيانات في الصف السابع 'قبل اسم المتغير الذي يشير للنطاق [Set] لاحظ عند تعيين نطاق يتم استخدام كلمة 'وبعد علامة يساوي يتم الإشارة إلى ورقة العمل ثم النطاق Set rng = sh.Range("XFD7").End(xlToLeft) 'يمكن من خلالها معرفة عنوان النطاق [Address] الخاصية 'لإظهار العنوان في رسالة [MsgBox] استخدم كلمة [rng] ولذلك إذا أردت معرفة عنوان النطاق المسمى '[$F$7] إذا قمت بتنفيذ هذا السطر ستجد أن عنوان النطاق هو 'يمكن الحصول على عنوان النطاق بدون علامة الدولار عن طريق استخدام السطر التالي 'MsgBox rng.Address(0, 0) 'أي يتم وضع قوسين وما بين القوسين نضع صفر ثم فاصلة ثم صفر MsgBox rng.Address 'نفس السطر السابق وهذا هو خلاصة ما سيتم تقسيمه في السطر التالي في الشرح MsgBox sh.Range("XFD7").End(xlToLeft).Address 'لعمل تقسيم للنص بناءً على فاصل محدد [Split] تستخدم الدالة 'الفاصل هنا الذي سيتم التقسيم على أساسه هو علامة الدولار 'لاحظ أن الفاصل يوضع بين أقواس تنصيص '[Locals Window] عند تنفيذ هذا السطر انظر في نافذة 'View >> Locals Window 'ستجد أن المتغير يحمل القيم التي تقسيمها بهذا الشكل 'x(0) >> "" 'x(1) >> "F" 'x(2) >> "7" 'تم تقسيمه لثلاثة أجزاء وهذا بسبب وجود علامة الدولار مرتين [$F$7] أي أن العنوان '[F] الجزء الذي يهمنا هنا في الكود هو رمز العمود أي حرف '[x(1)] وهذا تواجد في التقسيم الثاني ألا وهو x = Split(rng.Address, "$") 'بهذا نكون قد وصلنا للسطر المطلوب حيث يتم تخزين رمز العمود في متغير نصي str = Split(sh.Range("XFD7").End(xlToLeft).Address, "$")(1) 'إظهار رمز العمود في رسالة MsgBox str End Sub
  17. المشكلة أن ملفك فيه خلايا مدمجة .. ربما لو أزلت الدمج لكان أفضل .. الموضوع يحتاج لبعض الوقت مع إلغاء دمج الخلايا حاول تطرح الملف مرة أخرى بدون دمج الخلايا لأن الدمج يؤثر بشكل كبير على العمل بالملف
  18. بارك الله فيك أخي العزيز محمد الدسوقي ومشكور على كلماتك الطيبة
  19. استخدم دالة Sumproduct يمكن تفيدك ... يوجد شرح لها وافي في الملف التالي من أعمال أخونا الغالي يحيى حسين SUMPRODUCT.rar
  20. السلام عليكم اطلع على الرابط التالي وإن شاء الله يفيدك http://yasserkhalilexcellover.blogspot.com/2016/04/export-each-sheet-to-pdf.html
  21. أنا لا أعمل على 2003 ولن أعمل عليه أبداً إن شاء الله لأننا ببساطة في 2017 وداخلين على 2018 .. إن شاء الله يمكن يفيدك أحد الأخوة ممن زالوا يستخدمون الإصدار العتيق
  22. السلام عليكم أخي الكريم يراعى عند وضع الأكواد أن توضع بين أقواس الكود لتظهر بشكل منضبط تفضل الكود التالي عله يكون المطلوب إن شاء العلي القدير Sub Test() Dim swb As Workbook Dim twb As Workbook Dim arr1 As Variant Dim arr2 As Variant Dim v As Variant Dim d As Object Dim m As Long Dim n As Long Dim r0 As Long Dim r As Long Dim s As Long Dim c As Long Set swb = Workbooks("SerializePlantStockReport.xlsx") Set twb = ThisWorkbook Set d = CreateObject("Scripting.Dictionary") m = swb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row arr1 = swb.Sheets(1).Range("C1:F" & m).Value n = twb.Sheets(1).Range("A" & Rows.Count).End(xlUp).Row arr2 = twb.Sheets(1).Range("A1:C" & n).Value For s = 1 To n v = CStr(Trim(arr2(s, 1))) If d.exists(v) Then r0 = d(v) Else r0 = 0 End If For r = r0 + 1 To m If CStr(Trim(arr1(r, 1))) = CStr(Trim(v)) Then arr2(s, 2) = arr1(r, 3) arr2(s, 3) = arr1(r, 4) d(v) = r Exit For End If Next r Next s twb.Sheets(1).Range("A1:C" & n).Value = arr2 End Sub
  23. السلام عليكم أخي سمير في ودي مساعدتك لكن خبرتي في التعامل مع الفورم ليست قوية بما يكفي .. حاول توضح المشكلة بمزيد من التفاصيل ولو أرفقت صورة بشكل النتائج المتوقعة يكون أفضل تقبل تحياتي
  24. تفضل الملف قمت بتعديل الخلية التي بها قائمة منسدلة لتسمح لك بإدخال آخر .. ولو وجد النص "من فضلك أدخل اسم الحساب" سيتم إالغاء الفلترة تعديل لكود3.rar
  25. لن يفيد أخي .. قم بتوضيح المطلوب بشكل آخر وإن شاء الله تجد من يقدم لك يد العون
×
×
  • اضف...

Important Information