کپی کردن یک خط به یک شیت دیگر در صورت خالی بودن یک سلول

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • madadi-saei
    • 2018/12/12
    • 1

    پرسش کپی کردن یک خط به یک شیت دیگر در صورت خالی بودن یک سلول

    سلام
    دوستان یه سوال دارم ممنون میشم راهنمایی کنید.
    من یه فایل اکسل دارم به دو تا شیت.
    تو شیت اولم یک سری اطلاعات برای افراد وجود داره (هر خط مشخصات یک نفر).تو هر خط یک سلول هست به اسم تاریخ مدرک.
    من میخوام در صوررتی که این سلول خالی بود کل محتویات این خط رو کپی کنه ببره تو شیت دوم.یعنی میخوام توی شیت دوم اطلاعات افرادی باشه که تاریخ مدرک ندارن.
    و همچنین وقتی سلول تاریخ مدرک توی شیت اولم پر میشه از شیت دوم اتوماتیک خطش پاک شه.
    اصلا امکان این کار وجود داره؟؟
  • Keyhan1011
    • 2018/12/01
    • 3
    • 47.00

    #2
    سلام وقت بخیر به اساتید بزرگوار
    منهم همین مشکل رو دارم ولی برعکسش
    در خصوص کپی چند سلول و پیست به شیت دیگه
    میخوام که
    در صورتی که داخل رنج فاکتورم مقداری باشه کپی بشه
    در ادامه دستورات دیگه این دستور رو توی vba نوشتم
    Sheets("out").renge("b9:g16").copy
    ایرادش اینکه اگه داخل ردیفهای مثلا ۱۰ و یا ۱۱ اطلاعاتی نباشه بازم مقادیر خالی کپی میشه.
    ممنون میشم راهنمایی کنید.

    کامنت

    • Newbee
      • 2018/12/30
      • 4
      • 31.00

      #3
      سلام میتونید از یک if برای چک کردن خالی یا پربودن سلول استفاده کنید به صورت زیر:
      کد:
      
      
      کد:
      [COLOR=#101094][FONT=inherit]Sub[/FONT][/COLOR][COLOR=#303336][FONT=inherit] DoStuffIfNotEmpty[/FONT][/COLOR][COLOR=#303336][FONT=inherit]()[/FONT][/COLOR][COLOR=#303336][FONT=inherit]
          [/FONT][/COLOR][COLOR=#101094][FONT=inherit]If[/FONT][/COLOR][COLOR=#303336][FONT=inherit] [/FONT][/COLOR][COLOR=#101094][FONT=inherit]Not[/FONT][/COLOR][COLOR=#303336][FONT=inherit] IsEmpty[/FONT][/COLOR][COLOR=#303336][FONT=inherit]([/FONT][/COLOR][COLOR=#303336][FONT=inherit]ActiveCell[/FONT][/COLOR][COLOR=#303336][FONT=inherit].[/FONT][/COLOR][COLOR=#303336][FONT=inherit]Value[/FONT][/COLOR][COLOR=#303336][FONT=inherit])[/FONT][/COLOR][COLOR=#303336][FONT=inherit] [/FONT][/COLOR][COLOR=#101094][FONT=inherit]Then[/FONT][/COLOR][COLOR=#303336][FONT=inherit]
              MsgBox [/FONT][/COLOR][COLOR=#7D2727][FONT=inherit]"I'm not empty!"[/FONT][/COLOR][COLOR=#303336][FONT=inherit]
          [/FONT][/COLOR][COLOR=#101094][FONT=inherit]End[/FONT][/COLOR][COLOR=#303336][FONT=inherit] [/FONT][/COLOR][COLOR=#101094][FONT=inherit]If[/FONT][/COLOR][COLOR=#303336][FONT=inherit]
      [/FONT][/COLOR][COLOR=#101094][FONT=inherit]End[/FONT][/COLOR][COLOR=#303336][FONT=inherit] [/FONT][/COLOR][COLOR=#101094][FONT=inherit]Sub[/FONT][/COLOR][COLOR=#101094][/COLOR]

      کامنت

      • Keyhan1011
        • 2018/12/01
        • 3
        • 47.00

        #4
        با سلام خدمت استادعزیز
        استاد دستور فوق رو ارور میده فکر میکنم چون تو دستورات sub مربوط به کپی و پیست از range بالا if هایی با then نوشتم ifnot رو قبول نمی کنه.
        استاد یه راه حل برای کپی اگر در b9 تا g9 دیتابود کپی کنه و بعد اگر b10 تا g10 دیتابود کپی کنه .یعنی ردیف ۹ رو هم اگه دیتا داشت کپی کنه داخل شیت دیگه .نه اینکه اگه ۹ بود ۹ و اگه در ۹ نبود ۱۰ رو کپی کنه.
        در واقع هرچی داخل range انتخابی پر بود همون رو به شیت دیگه ببره و در اون شیت سلولهای خالی رو کپی پیست نکنه و شیت دومم رو بیخودی پر نکنه.
        خیلی ممنون میشم راهنمایم کنید

        کامنت

        • iranweld

          • 2015/03/29
          • 3341

          #5
          با سلام

          با سورت کردن میتوانید این کار را بدون دردسر انجام دهید ولی

          با این وصف در فایل پیوست با کدنویسی انجام شد.

          کد PHP:
          Sub test()

          z1 Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

          Z2 
          Sheet2.Cells(Sheet2.Rows.Count"A").End(xlUp).Row

          If Z2 3 Then Z2 3

          Sheet2
          .Range("A3:G" Z2).ClearContents

          Z2 
          Sheet2.Cells(Sheet2.Rows.Count"A").End(xlUp).Row 1


          For 3 To z1

          If Len(Sheet1.Range("g" I)) = 0 Then

          Sheet1
          .Range("A" ":g" I).Copy Destination:=Sheet2.Range("A" Z2)

          Z2 Sheet2.Cells(Sheet2.Rows.Count"A").End(xlUp).Row 1

          End 
          If

          Next

          Sheet2
          .Select

          End Sub 
          فایل های پیوست شده

          کامنت

          چند لحظه..