• صلاح الدين الجزائري • قام بنشر مايو 28, 2016 قام بنشر مايو 28, 2016 السلام عليكم و رحمة الله و بركاته اما بعد اخواني اريد طريقة حذف الصفوف الفارغة بـ vba .. واريدها يحذف الصفوف عندما تصبه خلية معينة فارغة مثلا عندما تصبح الخلية c5 فارغة يحذف لي الصف 5 بأكمله حتى ولو A و B ليسو فارغين ان شاء الله تكونو فهمتموني وشكرا
ياسر خليل أبو البراء قام بنشر مايو 28, 2016 قام بنشر مايو 28, 2016 وعليكم السلام ورحمة الله وبركاته أخي الفاضل صلاح يرجى إرفاق ملف ليعمل عليه الأخوة الكرام لتوفير الوقت والجهد تقبل تحياتي 1
• صلاح الدين الجزائري • قام بنشر مايو 28, 2016 الكاتب قام بنشر مايو 28, 2016 الرجاء العمل على الخلايا C ... وشكرا test.rar
عبدالسلام ابوالعوافي قام بنشر مايو 28, 2016 قام بنشر مايو 28, 2016 Sub DeleteBlanks() Dim i As Integer Dim LR As Integer LR = ActiveSheet.UsedRange.Rows.Count For i = 2 To LR If Cells(i, 3) = "" Then Rows(i).Delete Next End Sub 3
ياسر خليل أبو البراء قام بنشر مايو 28, 2016 قام بنشر مايو 28, 2016 جرب الكود التالي Sub Delete_Rows_Using_Filter_Method() Dim Rng As Range Application.ScreenUpdating = False On Error Resume Next With ActiveSheet .AutoFilterMode = False .Range("A1:C" & .Cells(Rows.Count, 1).End(xlUp).Row).AutoFilter Field:=3, Criteria1:="" Set Rng = .Range("A2:C" & .Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible) .AutoFilterMode = False Rng.EntireRow.Delete End With Application.ScreenUpdating = True End Sub تقبل تحياتي أخي الكريم عبد السلام بارك الله فيك وجزاك الله كل خير بصراحة أحاول دائماً الابتعاد عن الحلقات التكرارية ، وقد ذكرت من قبل سبب تخوفي من ذلك بفرض أن الملف يتعامل مع مثلاً 10 آلاف صف .. مع هذا الكم الهائل سيكون الكود بطيء جداً جربت الكود الخاص بي وحسبت المدة الزمنية في ملف يحتوي 10 آلاف صف فاستغرق 1.3 ثانية في حين أن استخدام الحلقات التكرارية استغرق حوالي 12 ثانية تقبل تحياتي 4
عبدالسلام ابوالعوافي قام بنشر مايو 28, 2016 قام بنشر مايو 28, 2016 استاذنا الفاضل ياسر .. استمتع جدا بالنقاش وتبادل الافكار والاراء حول تنوع الحلول لم اجرب الكودين واقارن بين سرعتهما .. لان من الواضح كود حضرتك اسرع .. ويكون الفارق ملحوظ عن زيادة حجم البيانات قمت بوضع هذا الحل لعله سريع ويفي بالغرض .. ولم استعمل اكواد التسريع في حالة البيانات الكبيرة غالبا ما استعمل جملة SQL لانها اسرع في التصفية عند تنوع الاجابات يكون بامكان السائل اختيار مايناسبه حسب البيانات التي يتعامل معها سعدت جدا بمرورك وان شاء الله ساطرح موضوع حول تسريع وتحسين الاكواد لاحقا * ملاحظة .. كودي بالاعلي فيه خطا .. لكن كود استاذنا ياسر افضل وليس هناك داعي للتعديل 1
ياسر خليل أبو البراء قام بنشر مايو 29, 2016 قام بنشر مايو 29, 2016 أخي الحبيب عبد السلام ما هو الخطأ في الكود الذي قدمته؟؟!! هلا علمتنا كيفية بناء جمل الـ SQL لأنه ليس لدينا خبرة بها بارك الله فيك وجزاك الله خير الجزاء
سليم حاصبيا قام بنشر مايو 29, 2016 قام بنشر مايو 29, 2016 بعد اذن الاخوة الافاضل \هذا الكود من سطر واجد Sub salim() Range("c1:c" & Cells(Rows.Count, 3).End(3).Row).SpecialCells(4).EntireRow.Delete End Sub 5
عبدالسلام ابوالعوافي قام بنشر مايو 29, 2016 قام بنشر مايو 29, 2016 بالنسبة للخطأ .. لو افترضنا ان الخلايا في الصفين 4 و 5 فارغة .. فالكود سوف يحذف الصف الرابع ويصبح الخامس هو الرابع .. اي ان الكود لن يفحصه مجددا بل ينتقل للصف السادس مباشرة وبالنسبة لجملة SQL ان شاء الله ساقوم بشرحها قريبا استاذ سليم .. الكود ممتاز جدا 2
eng.farmatha قام بنشر نوفمبر 7, 2021 قام بنشر نوفمبر 7, 2021 في ٢٩/٥/٢٠١٦ at 05:07, سليم حاصبيا said: بعد اذن الاخوة الافاضل \هذا الكود من سطر واجد Sub salim() Range("c1:c" & Cells(Rows.Count, 3).End(3).Row).SpecialCells(4).EntireRow.Delete End Sub بعد من فضلك ممكن شرح للكود
أ / محمد صالح قام بنشر نوفمبر 7, 2021 قام بنشر نوفمبر 7, 2021 الكود ينفذ المطلوب حذف الصف كاملا EntireRow.Delete لخلايا العمود c من الصف الأول إلى آخر صف مكتوب فيه Cells(Rows.Count, 3).End(3).Row بشرط أن تكون الخلايا فارغة SpecialCells(4) بالتوفيق 3
الردود الموصى بها