حذف ردیف های خالی بعد از آخرین ستون دارای اطلاعات

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mobinsaffarpour

    • 2013/05/25
    • 176

    حذف ردیف های خالی بعد از آخرین ستون دارای اطلاعات

    سلام دوستان

    میخواستم بدونم از چه طریق میشه با کدنویسی، ردیف های خالی بعد از آخرین ستون دارای اطلاعات رو حذف کرد . ( فقط از طریق کدنویسی vba )

    ضمنا توضیحات تکمیلی رو داخل فایل پیوست قرار دادم.
    فایل های پیوست شده
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    با سلام

    احتراما فایل ضمیمه را بررسی نمایید.

    خلاصه : پیدا کردن آخرین سلول دارای اطلاعات و حذف سلول های خالی زیرین آنها (تا 1000 ردیف ) به دو روش


    نحوه استفاده : بعد از ذخیره فایل ابتدا دکمه شماره 2 را فشار دهید.

    این دکمه دقیقا طبق در خواست شماست . خواهید دید که قسمت زرد رنگ حذف می شود
    حال دکمه شماره 1 را فشار دهید . اینبار بر اساس شماره ردیف عمل میکند یعنی چون ردیف شما پر است و شماره ردیف خورده است اخرین شمار ردیف را شناسایی و بعد از آن را جذف میکند .
    متاسفانه موقع آپلود فایل خطا میگرفت مجبور شدم فایل را فشرده کنم .
    با تشکر میر
    فایل های پیوست شده
    Last edited by majid_mx4; 2015/07/08, 11:23.

    کامنت

    • mobinsaffarpour

      • 2013/05/25
      • 176

      #3
      سلام و تشکر خدمت شما

      میشه این کد رو تحلیل کنید بی زحمت . متشکرم

      کامنت

      • majid_mx4

        • 2012/06/25
        • 699

        #4
        نوشته اصلی توسط mobinsaffarpour
        سلام و تشکر خدمت شما

        میشه این کد رو تحلیل کنید بی زحمت . متشکرم
        با سلام مجدد

        دوست عزیز این دو کد تقریبا شبیه هم هستند تنهاتفاوت آنها در پیدان کردن آخرین خانه می باشد.

        کد دکمه شماره 1
        LastRow میگردد و اخرین خانه پر ستون K را پیدا و انتخاب میکند وبا این انتخاب آن خانه اکتیو شده و در حالت اکتیو آدرس آن گرفته میشود یعنی ActiveCell.Address

        خوب حال آدرس خانه شروع برای پاک کردن را داریم خانه آخر را هم که خانه 1000 رم تعریف کردیم و دستور حذف ردیف برای این ردیفها و تمام یعنی Range(ActiveCell.Address & ": k" & 1000).EntireRow.Delete

        در دکمه شماره دوم هم همین اتقاق منتها با Find می افته یعنی Find میگرده و اینبار شماره اخرین ردیف خانه پر را به ما میده و چون دستور حذف ردیف را دادیم پس مهم نیست که کدام ردیف در کدام ستون را انتخاب کردیم (که ما اینجا ردیفهای ستون A را انتخاب کردیم )یعنی
        Range("A" & LastRow & ": A" & 1000).EntireRow.Delete

        در واقع اگر شماره اخرین ردیف که توسط find پیدا شده ردیف 50 باشد میشود A50:A1000 برای حذف
        امیدوارم مفید واقع بشه

        با تشکر میر

        کامنت

        • mobinsaffarpour

          • 2013/05/25
          • 176

          #5
          اینطور که شما می فرمائید یعنی در دکمه شماره 2 اینطور تعریف شده که مهم نیست کدامیک از سلولهای ردیف پر شده باشند و میره به سراغ ردیف بعدی که تمامی سلولهاش فاقد اطلاعات هستند و میره اون رو حذف میکنه درسته ؟؟؟؟

          کامنت

          • majid_mx4

            • 2012/06/25
            • 699

            #6
            بله دوست من (عرض کردم)

            کامنت

            • mobinsaffarpour

              • 2013/05/25
              • 176

              #7
              متشکرم دوست عزیز . زحمت کشیدید

              کامنت

              چند لحظه..