نوشته اصلی توسط
Skynet
با سلام و احترام خدمت اساتید و دوستان عزیز
درخواست راهنمایی و ماکرویی جهت انتقال اطلاعات از دوشیت به یک شیت بصورت خاصی را دارم ، خیلی ممنون میشم اگر امکان داشته باشه ، توجه و بررسی نمایید.
در این فایل سه شیت در اختیار داریم : Home , a , b
اطلاعات رکورد های شیت a و b تقریبا یکی هست و وجه اشتراکشون شماره چک می باشد. لازم به ذکر هست که بعضی چک ها فقط در a هست و بعضی فقط در b و بعضی دیگر در هر دو شیت a و b .
من قبلا در شیت a شماره چک هایی که در b بود رو پیدا می کردم و در نهایت در b فیلنتر می کردم چک هایی که در هر دو شیت وجود داشتند و کپی کرده و اونها رو می آوردم در home .
اما الان علاوه بر انتقال اطلاعات بصورت فوق به دو تغییر دیگه نیاز دارم:
1- رکورد هایی که فقط در a و یا فقط در b هستند نیز به انتهای جدول home هم منتقل شوند
2- در ستون توضیحات در home درج بشه که رکورد مربوطه در کدام جدول بوده ! ( فقط در a یا فقط در b و یا موجود در هر دو جدول )
با تشکر فراوان از اساتید عزیز
با سلام و احترام خدمت عزیزان
ان شالله که از ایام عید ، به بهترین نحو ممکن استفاده کنید ، ما که بدلیل نیاز به اتمام پروژه ، روز و شبمون پای سیستم و دوست قدیمون اکسل در حال گذران هست
من بلاخره موفق شدم بین دو تا ستون از دو تا شیت مختلف مقاسیه ای رو برای کشف عناصر غیر تکراری ، بدست بیارم ، تقریبا به کمک فایل های موجود در این انجمن و بررسی همگی اونها توستم به نتایج خوبی برای حل این سوال برسم و نهایتا" این کد رو تونستم تهیه کنم :
کد:
Sub Macro5()
z1 = Sheet2.Cells(Sheet2.Rows.Count, "B").End(xlUp).Row
z11 = Sheet3.Cells(Sheet3.Rows.Count, "B").End(xlUp).Row
Z2 = Sheet1.Cells(Sheet1.Rows.Count, "B").End(xlUp).Row + 1
'NAME SHEET :A
Sheet2.Range("B2" & ":B" & z1).Copy Destination:=Sheet1.Range("B" & Z2)
Sheet2.Range("C2" & ":C" & z1).Copy Destination:=Sheet1.Range("c" & Z2)
Sheet2.Range("D2" & ":D" & z1).Copy Destination:=Sheet1.Range("D" & Z2)
Sheet2.Range("E2" & ":E" & z1).Copy Destination:=Sheet1.Range("E" & Z2)
Sheet2.Range("F2" & ":F" & z1).Copy Destination:=Sheet1.Range("F" & Z2)
Sheet2.Range("G2" & ":G" & z1).Copy Destination:=Sheet1.Range("G" & Z2)
Sheet2.Range("H2" & ":H" & z1).Copy Destination:=Sheet1.Range("H" & Z2)
Sheet2.Range("I2" & ":I" & z1).Copy Destination:=Sheet1.Range("I" & Z2)
Sheet2.Range("J2" & ":J" & z1).Copy Destination:=Sheet1.Range("J" & Z2)
'NAME SHEET :B
Sheet3.Range("B2" & ":B" & z11).Copy Destination:=Sheet1.Range("C" & Z2)
Sheet3.Range("D2" & ":D" & z11).Copy Destination:=Sheet1.Range("G" & Z2)
Sheet3.Range("E2" & ":E" & z11).Copy Destination:=Sheet1.Range("H" & Z2)
Sheet3.Range("F2" & ":F" & z11).Copy Destination:=Sheet1.Range("I" & Z2)
Sheet3.Range("G2" & ":G" & z11).Copy Destination:=Sheet1.Range("J" & Z2)
End Sub
اما در حال حاظر به دوتا مشکل برخوردم :
1- چطور در این قسمت از کد تعریف کنم که فقط عناصری رو در سطر B برای کپی انتخاب کن که من فیلترشون کردم !
کد:
Sheet2.Range("B2" & ":B" & z1).Copy Destination:=Sheet1.Range("B" & Z2)
2- چطور در این قسمت از کد، تعریف کنم که بعد از اتمام کپی مرحله اول از شیت A ، بیا به داخل شیت HOME و اخرین سطر رو پیدا کن و حالا عملیات کپی از شیت B رو در اینجا زیر اخرین سطر پیست کن !
در حال حاظر متاسفانه مرحله دوم کپی بر روی مرحله اول کپی ، پیست میشه !
خیلی ممنونم میشم راهنمایی کنید . مرسی
علاقه مندی ها (Bookmarks)