کمک در ماکرو کپی کردن ردیف !!!

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

    • 2011/03/03
    • 12

    کمک در ماکرو کپی کردن ردیف !!!

    سلام به همه ی دوستان عزیز
    من یه ماکرو نوشتم که شماره ردیف رو از کاربر میگیره و اون ردیف رو در یه ردیف خالی در یه فایل دیگه کپی می کنه ولی این ماکرو مشکل داره و مشکلش اینه که فایل مورد نظر رو باز می کنه و کپی هم میکنه ولی وسط کار میپرسه که فرمولها رو هم کپی کنم یا نه !!!!! :s
    میخوام اگه بشه بدون ابن که بپرسه خودش فرمول ها رو هم کپی کنه ! باید چیکار کنم ؟کدش رو در زیر گذاشتم :[align=LEFT][align=LEFT]Sub copy()[/align][align=LEFT]Dim intRowDestination As String[/align][align=LEFT]Dim NameSheetDestination As String[/align][align=LEFT]Dim intRowSource As Integer[/align][align=LEFT]Dim Filename As String[/align][align=LEFT]Dim destsheet As Worksheet[/align][align=LEFT]'Destination address[/align][align=LEFT]Filename = "C:\Documents and Settings\mm\Desktop\prj\main.xls"[/align][align=LEFT]Dim MyObject As Object[/align][align=LEFT]'To get Number of Source Row[/align][align=LEFT]intRowSource = InputBox("Enter Number of Row :", "Number of Row")[/align][align=LEFT]'Select Source Sheet[/align][align=LEFT]Sheets("task").Select[/align][align=LEFT]'Find The Last Row in Destination Sheet ( Sheet2 )[/align][align=LEFT]FinalRow = Cells(Rows.Count, 1).End(xlUp).Row[/align][align=LEFT] ' Loop through each row[/align][align=LEFT] For i = 2 To FinalRow[/align][align=LEFT] 'Decide if to copy based on column A[/align][align=LEFT] ThisValue = Cells(i, 1).Value[/align][align=LEFT] 'To check Number of Row[/align][align=LEFT] If ThisValue = intRowSource Then[/align][align=LEFT] Cells(i, 1).Resize(1, 33).copy[/align][align=LEFT] Workbooks.Open Filename[/align][align=LEFT] Set destsheet = Worksheets("task")[/align][align=LEFT] destsheet.Activate[/align][align=LEFT] NextRow = Cells(Rows.Count, 1).End(xlUp).Row + 1[/align][align=LEFT] Cells(NextRow, 1).Select[/align][align=LEFT] ActiveSheet.Paste[/align][align=LEFT] End If[/align][align=LEFT] Next i[/align][align=LEFT] ActiveWorkbook.Save[/align][align=LEFT] ActiveWorkbook.Close[/align][align=LEFT]End Sub[/align][/align]
  • shamsololama

    • 2010/02/15
    • 940

    #2
    RE: کمک در ماکرو کپی کردن ردیف !!!

    با درود فراوان
    دوست خوبم ماکرو مشکلی در مورد کپی کردن فورمول نمیگیره و کارش رو انجام میده و اگر تو فایل شما چنین اروری میده باید ببینی به چه فورمولی ارور میگیره یعنی به فورمولهای که نوشتی بستگی داره ولی درکل اگر ماکرو بصورتی هست که اگر شماره ردیف رو که وارد میکنی در لیست دوبار تکرار شده باشه ارور میگیره من این ماکرو رو چک کردم و در موردکپی فورمول مشکلی نداشت.
    و پیشنهاد من برای انجام چنین کاری می توانی از حلقه For Each استفاده کنی
    ---------------------------------------------------------------------------------------------------
    بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
    shamsololama@yahoo.com
    09177733411

    کامنت

    • mohebbi_md

      • 2011/03/03
      • 12

      #3
      RE: کمک در ماکرو کپی کردن ردیف !!!

      مرسی از جوابتون ولی جناب شمس العلما ، در حال حاضر ارور زیر رو می گیره راهی برای رفعش وجود نداره ؟
      a formula or sheet you want to move or copy contains the name T project which already exists on the destination worksheet . do you want to use this version of the name?

      کامنت

      • mohebbi_md

        • 2011/03/03
        • 12

        #4
        RE: کمک در ماکرو کپی کردن ردیف !!!

        مرسی مشکل حل شد ! فقط یه سئوال دیگه می خوام همین ردیفی که کپی می کنم رو تو فایل مبدا حذفش کنم هرچی کدش رو می نویسم کار نمی کنه !!!! میشه راهنمایی کنید ! من کد زیر رو می نویسم :
        Dim cell As Range, rng As Range
        Set rng = Columns("A").SpecialCells(xlConstants, xlTextValues)
        For i = rng.Count To 1 Step -1
        ThisValue = Cells(i, 1).Value
        'To check Number of Row
        If ThisValue = intRowSource Then
        rng(i).EntireRow.Delete
        End If
        Next i

        کامنت

        • shamsololama

          • 2010/02/15
          • 940

          #5
          RE: کمک در ماکرو کپی کردن ردیف !!!

          با درود فراوان
          برای اینکه به مشکل بر نخوری اول با دستور سلکت محدوده را انتخاب کن سپس آن را دلیت کن
          Selection.Delete
          ---------------------------------------------------------------------------------------------------
          بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
          shamsololama@yahoo.com
          09177733411

          کامنت

          • mohebbi_md

            • 2011/03/03
            • 12

            #6
            RE: کمک در ماکرو کپی کردن ردیف !!!

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

            کامنت

            • mohebbi_md

              • 2011/03/03
              • 12

              #7
              RE: کمک در ماکرو کپی کردن ردیف !!!

              بازم سلام ، جناب شمس العلما
              می خواستم کاری کنم که کاربر بتونه چند تا ردیف رو انتخاب کنه و به یه فایل دیگه بفرسته ! با توجه به کدی که اون بالا نوشتم چطوری می تونم اینکارو انجام بدم؟
              ممنون

              کامنت

              • shamsololama

                • 2010/02/15
                • 940

                #8
                RE: کمک در ماکرو کپی کردن ردیف !!!

                با درود فراوان
                با دستور کپی هم میشه اینکار رو انجام داد و می توانید یک حلقه مثل For each هم بنویسی تا مطالب سلکت شده را به فایل مورد نظر بفرسته ولی اگر فایل بسته باشه ابتدا باید آن را باز کنید یا دستی و یا با کد
                ---------------------------------------------------------------------------------------------------
                بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم (دکتر شریعتی)
                shamsololama@yahoo.com
                09177733411

                کامنت

                • mohebbi_md

                  • 2011/03/03
                  • 12

                  #9
                  RE: کمک در ماکرو کپی کردن ردیف !!!

                  مرسی
                  من قبلا با سی شارپ برنامه نویسی می کردم خیلی با وبی و امکانات اکسل آشنا نیستم این کد رو هم که می بینید نوشتم از ترکیب چند تا برنامه است !!!! میشه بیشتر راهنمایی کنید ! راستش قرار تو یه فایل اکسل وظایف کارمندها نوشته بشه بعد بر اساس اسم اون کارمندا جستجو کنه و وظایف کارمند رو به فایل خود اون کارمند بفرسته ! من با کد بالا می تونم اسم کارمند رو جستجو کنم ولی تو قرار دادن حلقه برای انتقال و پیدا کردن بقیه وظایف کارمنها مشکل دارم !!!! میشه بیشتر کمک کنید
                  مرسییییییییییی

                  کامنت

                  • mohebbi_md

                    • 2011/03/03
                    • 12

                    #10
                    RE: کمک در ماکرو کپی کردن ردیف !!!

                    بالاخره تونستم با یک کمی بالا و پایین کردن کدها (در واقع بازی کردن با اونا) مشکل قبلیمو حل کنم فقط یه مشکل مونده اونم اینه که وقتی کپی می کنه میگه این سلول تو سلول مقصد هم هست میخوای دوباره کپی کنی یا با یه اسم جدید ذخیره کنی!!!
                    برای چی این سئوال رو می پرسه ! آخه تو فایل مقصد هیچ کدوم این سلولا نیست 1!!!!
                    بعد اگه بخوام درون یه سلول رو هم جستجو کنم باید چیکار کنم؟
                    میشه کمک کنید
                    (در ضمن می خواستم فایل رو اینجا ضمیمه کنم ولی گزینه ای برای اینکار پیدا نکردم!!!!)

                    کامنت

                    Working...