حذف ردیفها

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

    • 2013/12/29
    • 132

    حذف ردیفها

    سلام من به کلیه عوامل و اعضاء سایت دوست داشتنی انجمن اکسل ایران
    من یک سئوالی داشتم خواهشمندم به اون جواب بدبد ، بسیار سپاسگذارم.ممنون میشم پاسخ بدید
    من یک فایل اکسل دارم (فایل پیوستی) که در شیت اول ستون اول آن تعدادی ارقام ثبت شده و همچنین یک command buton در اون صفحه وجود دارد من میخواهم به این command button کدی داده بشود تابا اجراردیف های همنام آن در شیت 2 کلاً پاک شود.واضحتر اینکه مثلا در اجرا اول ردیف57 شیت دوم پاک بشه وبعد ردیف 72 شیت دوم والی ....ردیف1001 شیت دوم .
    فایل های پیوست شده
  • abootorab

    • 2014/10/17
    • 351

    #2
    نوشته اصلی توسط sunstar
    سلام من به کلیه عوامل و اعضاء سایت دوست داشتنی انجمن اکسل ایران
    من یک سئوالی داشتم خواهشمندم به اون جواب بدبد ، بسیار سپاسگذارم.ممنون میشم پاسخ بدید
    من یک فایل اکسل دارم (فایل پیوستی) که در شیت اول ستون اول آن تعدادی ارقام ثبت شده و همچنین یک command buton در اون صفحه وجود دارد من میخواهم به این command button کدی داده بشود تابا اجراردیف های همنام آن در شیت 2 کلاً پاک شود.واضحتر اینکه مثلا در اجرا اول ردیف57 شیت دوم پاک بشه وبعد ردیف 72 شیت دوم والی ....ردیف1001 شیت دوم .
    با درود
    دوست عزیز سوالتون زیاد واضح نیست، منظور از پاک شدن اینه که اطلاعات اون ردیف حذف و خالی بشه یا اینکه کلا این ردیف حذف بشه و ردیفهای بعد یک ردیف به بالا شیفت پیدا کنند؟
    اگر هدف شما حالت دوم باشه باید به این نکته توجه داشته باشین که با حذف یک ردیف و شیفت پیدا کردن ردیفهای بعدی به بالا، دیگه اطلاعات ردیف مثلا 72 ابتدایی (قبل از حذف) شما به ردیف 71 انتقال داده شده و به همین ترتیب الی آخر....
    یه کم بیشتر و واضح تر در مورد خواستتون توضیح بدین تا دوستان بتونن بهتر و راهکار مناسب تری به شما ارائه بدهند.

    کامنت

    • khakzad

      • 2010/03/17
      • 2034
      • 85.00

      #3
      سلام
      این کد رو به button مورد نظر assign کنید
      کد:
      Sub del()
      For Each c In Sheet1.Range("a2:a11")
         Sheet2.Rows(c & ":" & c).clear
         
      Next
      End Sub
      پ.ن: در مورد حذف ردیف ها هم به نکته جناب abootorab دقت کنید. اگر حذف بشه دیگه شماره ردیف ها با شماره های مورد نظر شکا نمی خوننه مگر با اینکه ردیف به ردیف تعداد ردیف های حذف شده رو در کد اضافه کنید
      [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

      [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
      [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
      :wcom:

      [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
      [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
      [/CENTER]

      کامنت

      • sunstar

        • 2013/12/29
        • 132

        #4
        سلام

        بله منظور من حالت دو بود یعنی یک ردیف کلاً حذف بشه و ردیف های پایینتر به بالا شیفت پیدا کنن اگه راهنمایی کنین ممنون می شم

        کامنت

        • abootorab

          • 2014/10/17
          • 351

          #5
          نوشته اصلی توسط sunstar
          سلام

          بله منظور من حالت دو بود یعنی یک ردیف کلاً حذف بشه و ردیف های پایینتر به بالا شیفت پیدا کنن اگه راهنمایی کنین ممنون می شم
          با درود
          دوست عزیز از این کد میتونید استفاده کنید ولی همینطور که قبلا عرض کردم باید به نکته جایگزینی سطرها دقت داشته باشین.
          کد PHP:
          Sub Clear_Rows_Click()
              
          Dim c As Range
              
          For Each c In Sheet1.Range("A:A")
                  If 
          IsEmpty(cThen Exit Sub
                  
          If Val(c) <> 0 Then Sheet2.Rows(c).Delete Shift:=xlUp
              Next
          End Sub 
          اما اگر میخواین مشکل جایگزینی سطرها براتون به وجود نیاد میتونید با استفاده از کد زیر سطرها رو از پایین ترین به بالاترین ردیف حذف نمایید.
          نکته: در شیت 1 می بایست شماره سطرها از کوچکترین سطر تا بزرگترین سطر وارد شده باشد.

          کد PHP:
          Sub Clear_Rows_Click()
              
          num WorksheetFunction.CountA(Sheet1.Columns(1))
              For 
          num To 2 Step -1
                  Sheet2
          .Rows(Sheet1.Cells(i1)).Delete Shift:=xlUp
              Next
          End Sub 

          کامنت

          • khakzad

            • 2010/03/17
            • 2034
            • 85.00

            #6
            سلام
            را هها ی مختلف ارائه میشه هرکدوم باهاش راحت تر بودید استفاده کنید. ولی سعی کنید حتما تحلیل کنید
            اینم ی راه دیگه:
            من اومدم یک ستون کنار شماره ردیف ها اضافه کردم و شماره ردیف بعد از حذف بالایی ها رو بدست اوردم (اینو میشه داخل کد هم گنجوند، ولی برای اینکه فرآیند کار رو متوجه بشید داخل فایل گذاشتم)
            همون طور که میبینید اولین ردیف همون 57. اما ردیف بعد که شماره 72 هست، با توجه به حذف یک ردیف تا الان، 72 سابق تبدیل میشه به 71 جدید. همینطور الی اخر

            کد تغییر نکرد. فقط بجای ستون اول، ستون دوم رو می خوونه

            ساده ترین روشی که میشد رو گفتم. حالا این شماره ردیف های جدید رو میشه با تعریف متغیر و هر بار اضاافه کردن بهش هم تعریف کرد.


            سوالی بود در خدمتم
            فایل های پیوست شده
            [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

            [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
            [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
            :wcom:

            [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
            [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
            [/CENTER]

            کامنت

            • sunstar

              • 2013/12/29
              • 132

              #7
              از راهنمایی عزیزان وبزرگواران بی نهایت ممنونم

              کامنت

              چند لحظه..