صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

موضوع: ماکرو یا کد copy&paste

  1. #1


    آخرین بازدید
    2023/10/12
    تاریخ عضویت
    February 2014
    نوشته ها
    88
    امتیاز
    47
    سپاس
    95
    سپاس شده
    37 در 23 پست
    تعیین سطح نشده است

    کد انتقال اطلاعات چند شیت به یک شیت

    سلام
    دوستان من 4 عدد worksheet دارم (sheet1,sheet2,sheet3,sheet4)که بایداز بین داده های ان در worksheet جدید (کاربرگ 1 ) بعضی از داد ه ها مجددجمع اوری بشه (در واقع یک نوع نمونه برداری ).مثلا
    در فایل اکسل که نمونه گذاشتم
    بایددر کاربرگ 1 از تاریخ فرضا
    01/01/2011 تا 14/01/2011
    و
    20/02/2011
    تا 30/02/2011
    و از تاریخ XX/XX/XX
    تا تاریخ XX/XX/XX
    از sheet1 دادها در هر ردیف کپی در کاربرگ 1بشوند و مثلا از تاریخ
    15/01/2011
    تا
    18/01/2011
    از sheet2 داده ها مقابل هر ردیف در کاربرگ 1 کپی بشود و الی اخر .......

    در واقع چون حجم داد ها زیاد هست نمیخواهم با کپی و paste کردن از هر sheet در کاربرگ1 استفاده کنم .
    دوستان ایا ماکرو اماده ای هست که بر اساس تاریخ داد ها را کپی کنه لطفا زحمت بکشند کد را بزارند یا
    اگر دوستان میتونند یک ماکر ساده بر اساس جستجو تاریخ و کپی کردن داد ها در مقابل ان بنویسند
    ممنون میشوم

    http://s6.picofile.com/file/82442411..._2016.xls.html
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.
    ویرایش توسط ed2008 : 2016/03/26 در ساعت 21:57

  2.  

  3. #2


    آخرین بازدید
    12 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    سلام دوست عزیز
    متوجه سوالتون نشدم. شما چهار تا شیت دارین. همشون هم تاریخهای یکسان دارن. بعد چطوری میخواین همشون رو داخل یک شیت قرار بدین؟
    مثلا تاریخ اول:
    01/01/2011
    در هر شیت این تاریخ وجود داره و در شیت کاربرگ 1 فقط یکبار این تاریخ تکرار شده. به عبارتی چهار داده داریم و یک سلول

  4. سپاس ها (1)


  5. #3


    آخرین بازدید
    2023/10/12
    تاریخ عضویت
    February 2014
    نوشته ها
    88
    امتیاز
    47
    سپاس
    95
    سپاس شده
    37 در 23 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط amir ghasemiyan نمایش پست ها
    سلام دوست عزیز
    متوجه سوالتون نشدم. شما چهار تا شیت دارین. همشون هم تاریخهای یکسان دارن. بعد چطوری میخواین همشون رو داخل یک شیت قرار بدین؟
    مثلا تاریخ اول:
    01/01/2011
    در هر شیت این تاریخ وجود داره و در شیت کاربرگ 1 فقط یکبار این تاریخ تکرار شده. به عبارتی چهار داده داریم و یک سلول
    سلام امیر جان سال نو شما مبارک
    من فکر کردم سئوالم کامل بود و منظورم را درست رساندم شرمنده
    بله در واقع پایه اصلی همین تاریخ هست که مبنای جمع اوری داده ها هست در همه شیت ها یکسان هست اما باید در کاربرگ 1 طوری ماکرو بنویسیم که فقط از یک شیت اطلاعات را کپی کنه .(از یک شیت که ادرس برای ان روز میدهیم کپی میکنه مثلااز تاریخ فرضا 01/01/2011 تا 14/01/2011 فقط از sheet1 داده ها را کپی کن و سه شیت دیگه را میزاریم برای ان تاریخ ها و روز کنار منظور تاریخ و روز ها 01/01/2011 تا 14/01/2011)
    پس در واقع تاریخ یک روز در همه شیت ها یکسان اما با داد های متفاوت در هر ردیف .
    پس ماکرو ما که باید کدش نوشته بشه باید در تاریخ مشخص یا روز مشخص بهش بگیم کدام ردیف جلوی این تاریخ را از کدام شیت کپی کنه

    ممنون بخاطر اینکه وقت گذاشتید

  6. #4


    آخرین بازدید
    12 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    قبل از اینکه من کدش رو براتون بنویسم یه سوال:
    دلیل خاصی داشته که ساختار اکسل رو از مطلق به نسبی تغییر دادین؟ یعنی ستون ها بجای اینکه حروف انگلیسی باشن عدد هستند. عمدا این کار رو کردین یا دلیل خاصی نداشته؟

  7. سپاس ها (1)


  8. #5


    آخرین بازدید
    2023/10/12
    تاریخ عضویت
    February 2014
    نوشته ها
    88
    امتیاز
    47
    سپاس
    95
    سپاس شده
    37 در 23 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط amir ghasemiyan نمایش پست ها
    قبل از اینکه من کدش رو براتون بنویسم یه سوال:
    دلیل خاصی داشته که ساختار اکسل رو از مطلق به نسبی تغییر دادین؟ یعنی ستون ها بجای اینکه حروف انگلیسی باشن عدد هستند. عمدا این کار رو کردین یا دلیل خاصی نداشته؟
    سلام امیر جان
    دلیل خاصی ندارد فقط خواستم منظورم را برساند و طرح سوال برای خود من هم راحتر باشه اگر هم ساختار اکسل مطلق بوده و نسبی شده من هیچ اطلاعی ازش ندارم برای من جالب هست که کجا این اطلاعات وجود داره ؟

    در واقع میخواهم به این تنیجه برسم چطوری باید بر اساس تاریخ مشخص داد ها از شیت مشخص توی سلو ل ها کپی ( انتقال ) داده بشه.

  9. #6


    آخرین بازدید
    12 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط ed2008 نمایش پست ها
    سلام امیر جان
    دلیل خاصی ندارد فقط خواستم منظورم را برساند و طرح سوال برای خود من هم راحتر باشه اگر هم ساختار اکسل مطلق بوده و نسبی شده من هیچ اطلاعی ازش ندارم برای من جالب هست که کجا این اطلاعات وجود داره ؟

    در واقع میخواهم به این تنیجه برسم چطوری باید بر اساس تاریخ مشخص داد ها از شیت مشخص توی سلو ل ها کپی ( انتقال ) داده بشه.

    بسیار خوب
    کلا سعی کنید هر وقت دیدید ساختار نسبی هست به مطلق تغییر بدین چون کار کردن با حالت مطلق خیلی راحت تره
    در هر صورت من بر اساس همین ساختار نسبی براتون کد vba رو نوشتم. فایل رو هم ضمیمه میکنم.
    کد:
    Sub copypaste()
    FromRange = Cells(2, 13)
    ToRange = Cells(2, 14)
    SheetRange = Cells(2, 15)
    If FromRange <> "" And ToRange <> "" And SheetRange <> "" And FromRange < ToRange Then
        FindFrom = Range("A1:A2000").Find(FromRange).Row
        FindTo = Range("A1:A2000").Find(ToRange).Row
        For i = FindFrom To FindTo Step 1
            Range("B" & i).FormulaR1C1 = "=VLOOKUP(RC[-1]," & SheetRange & "!C[-1]:C[10],COLUMN(),FALSE)"
            Range("C" & i).FormulaR1C1 = "=VLOOKUP(RC[-2]," & SheetRange & "!C[-2]:C[9],COLUMN(),FALSE)"
            Range("D" & i).FormulaR1C1 = "=VLOOKUP(RC[-3]," & SheetRange & "!C[-3]:C[8],COLUMN(),FALSE)"
            Range("E" & i).FormulaR1C1 = "=VLOOKUP(RC[-4]," & SheetRange & "!C[-4]:C[7],COLUMN(),FALSE)"
            Range("F" & i).FormulaR1C1 = "=VLOOKUP(RC[-5]," & SheetRange & "!C[-5]:C[6],COLUMN(),FALSE)"
            Range("G" & i).FormulaR1C1 = "=VLOOKUP(RC[-6]," & SheetRange & "!C[-6]:C[5],COLUMN(),FALSE)"
            Range("H" & i).FormulaR1C1 = "=VLOOKUP(RC[-7]," & SheetRange & "!C[-7]:C[4],COLUMN(),FALSE)"
            Range("I" & i).FormulaR1C1 = "=VLOOKUP(RC[-8]," & SheetRange & "!C[-8]:C[3],COLUMN(),FALSE)"
            Range("J" & i).FormulaR1C1 = "=VLOOKUP(RC[-9]," & SheetRange & "!C[-9]:C[2],COLUMN(),FALSE)"
            Range("K" & i).FormulaR1C1 = "=VLOOKUP(RC[-10]," & SheetRange & "!C[-10]:C[1],COLUMN(),FALSE)"
            Range("L" & i).FormulaR1C1 = "=VLOOKUP(RC[-11]," & SheetRange & "!C[-11]:C,COLUMN(),FALSE)"
        Next i
    End If
    
    
    End Sub
    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط Amir Ghasemiyan : 2016/03/21 در ساعت 21:20

  10. سپاس ها (3)


  11. #7


    آخرین بازدید
    2023/10/12
    تاریخ عضویت
    February 2014
    نوشته ها
    88
    امتیاز
    47
    سپاس
    95
    سپاس شده
    37 در 23 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط amir ghasemiyan نمایش پست ها

    بسیار خوب
    کلا سعی کنید هر وقت دیدید ساختار نسبی هست به مطلق تغییر بدین چون کار کردن با حالت مطلق خیلی راحت تره
    در هر صورت من بر اساس همین ساختار نسبی براتون کد vba رو نوشتم. فایل رو هم ضمیمه میکنم.
    کد:
    Sub copypaste()
    FromRange = Cells(2, 13)
    ToRange = Cells(2, 14)
    SheetRange = Cells(2, 15)
    If FromRange <> "" And ToRange <> "" And SheetRange <> "" And FromRange < ToRange Then
        FindFrom = Range("A1:A2000").Find(FromRange).Row
        FindTo = Range("A1:A2000").Find(ToRange).Row
        For i = FindFrom To FindTo Step 1
            Range("B" & i).FormulaR1C1 = "=VLOOKUP(RC[-1]," & SheetRange & "!C[-1]:C[10],COLUMN(),FALSE)"
            Range("C" & i).FormulaR1C1 = "=VLOOKUP(RC[-2]," & SheetRange & "!C[-2]:C[9],COLUMN(),FALSE)"
            Range("D" & i).FormulaR1C1 = "=VLOOKUP(RC[-3]," & SheetRange & "!C[-3]:C[8],COLUMN(),FALSE)"
            Range("E" & i).FormulaR1C1 = "=VLOOKUP(RC[-4]," & SheetRange & "!C[-4]:C[7],COLUMN(),FALSE)"
            Range("F" & i).FormulaR1C1 = "=VLOOKUP(RC[-5]," & SheetRange & "!C[-5]:C[6],COLUMN(),FALSE)"
            Range("G" & i).FormulaR1C1 = "=VLOOKUP(RC[-6]," & SheetRange & "!C[-6]:C[5],COLUMN(),FALSE)"
            Range("H" & i).FormulaR1C1 = "=VLOOKUP(RC[-7]," & SheetRange & "!C[-7]:C[4],COLUMN(),FALSE)"
            Range("I" & i).FormulaR1C1 = "=VLOOKUP(RC[-8]," & SheetRange & "!C[-8]:C[3],COLUMN(),FALSE)"
            Range("J" & i).FormulaR1C1 = "=VLOOKUP(RC[-9]," & SheetRange & "!C[-9]:C[2],COLUMN(),FALSE)"
            Range("K" & i).FormulaR1C1 = "=VLOOKUP(RC[-10]," & SheetRange & "!C[-10]:C[1],COLUMN(),FALSE)"
            Range("L" & i).FormulaR1C1 = "=VLOOKUP(RC[-11]," & SheetRange & "!C[-11]:C,COLUMN(),FALSE)"
        Next i
    End If
    
    
    End Sub

    سلام
    امیر جان من این کد را نفهمیدم فقط دو خط اول که میگید رانگ از ستون 2 و سطر 13 تا سطر 2 و ستون 14 انتخاب کن (از کدام شیت ؟؟) اصلا من نفهمیدم کجا باید بهش تاریخ های مشخص را که باید از شیت مخصوص که ادرس داره را کپی کنه (از تاریخ فرضا 01/01/2011 تا 14/01/2011 فقط از sheet1 داده ها را کپی کن) در واقع ادرس سلو لها و شیت مورد نظر کجاست ؟
    در واقع احتیاج به کدی هست که رانگ تاریخ مشخص از شیت شماره مشخص داشته باشه برای نمونه برداشتن امیدوارم منظورم را درست رسانده باشم.

    لطف میکنید یک توضیحی در مورد کد بفرمایید تا بعد ها هم دوستان در اینده این کد را بفهمند

    این فایل را هم که ضمیمه کردید برای من مشکل داره
    تصاویر کوچک فایل پیوست تصاویر کوچک فایل پیوست protceted1.png   protceted2.png  
    ویرایش توسط ed2008 : 2016/03/21 در ساعت 22:10

  12. #8


    آخرین بازدید
    12 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط ed2008 نمایش پست ها
    سلام
    امیر جان من این کد را نفهمیدم فقط دو خط اول که میگید رانگ از ستون 2 و سطر 13 تا سطر 2 و ستون 14 انتخاب کن (از کدام شیت ؟؟) اصلا من نفهمیدم کجا باید بهش تاریخ های مشخص را که باید از شیت مخصوص که ادرس داره را کپی کنه (از تاریخ فرضا 01/01/2011 تا 14/01/2011 فقط از sheet1 داده ها را کپی کن) در واقع ادرس سلو لها و شیت مورد نظر کجاست ؟
    لطف میکنید یک توضیحی در مورد کد بفرمایید تا بعد ها هم دوستان در اینده این کد را بفهمند

    این فایل را هم که ضمیمه کردید برای من مشکل داره
    در شیت کاربرگ1 سه تا قسمت کنار جدول اضافه کردم. از، تا و شیت. در سلول زیر از تاریخ ابتدا و در سلول زیر تا تاریخ انتها رو وارد میکنید. و نام شیت رو هم از لیست زیر سلول شیت انتخاب میکنید و بعد دکمه کپی که آبی رنگ هست رو میزنین و اطلاعات کپی میشه. در واقع اطلاعات کپی نمیشه. فرمول vlookup نوشته میشه و اطلاعات در جای مناسب قرار میگیره
    متوجه شدین؟

  13. سپاس ها (1)


  14. #9


    آخرین بازدید
    2023/10/12
    تاریخ عضویت
    February 2014
    نوشته ها
    88
    امتیاز
    47
    سپاس
    95
    سپاس شده
    37 در 23 پست
    تعیین سطح نشده است

    در واقع منظور من خیلی ساده است
    در کاربرگ 1 من میخواهم از تاریخ x تا تاریخ y داد ها از شیت فرضا 1 وارد بشه باز از تاریخ تاریخ x تا تاریخ y داد ها از شیت فرضا 2 باز از تاریخ x تا تاریخ y داد ها از شیت فرضا دوباره 1 وارد بشه و الی اخر

  15. #10


    آخرین بازدید
    2023/10/12
    تاریخ عضویت
    February 2014
    نوشته ها
    88
    امتیاز
    47
    سپاس
    95
    سپاس شده
    37 در 23 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط amir ghasemiyan نمایش پست ها
    در شیت کاربرگ1 سه تا قسمت کنار جدول اضافه کردم. از، تا و شیت. در سلول زیر از تاریخ ابتدا و در سلول زیر تا تاریخ انتها رو وارد میکنید. و نام شیت رو هم از لیست زیر سلول شیت انتخاب میکنید و بعد دکمه کپی که آبی رنگ هست رو میزنین و اطلاعات کپی میشه. در واقع اطلاعات کپی نمیشه. فرمول vlookup نوشته میشه و اطلاعات در جای مناسب قرار میگیره
    متوجه شدین؟
    سلام امیرجان

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

    مرسی


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. Copy کردن یک sheet با محدوده معین به انتهای شیت ها
    توسط nikkhah در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 1
    آخرين نوشته: 2015/12/30, 23:18
  2. پاسخ ها: 0
    آخرين نوشته: 2015/11/20, 00:15
  3. copy کردن اطلاعات
    توسط exceliran در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 3
    آخرين نوشته: 2015/05/16, 12:25
  4. سوال دوم من (paste value بصورت پيش فرض و حذف بقيه انواع paste ها )
    توسط samadi1973 در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 0
    آخرين نوشته: 2012/04/06, 12:21
  5. جلوگیری از copy;past
    توسط avesina1351 در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 4
    آخرين نوشته: 2011/04/05, 00:01

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است