هشدار خالی بودن سلول در هنگام کپی 2

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

    • 2012/08/02
    • 42

    هشدار خالی بودن سلول در هنگام کپی 2

    با سلام
    لطفا اشتباه کد فایل زیر رو بررسی کنید
    فایل های پیوست شده
  • Amir Mohsenpour

    • 2010/02/10
    • 146
    • 53.33

    #2
    Option Explicit


    Sub Copy2TOLID110()
    Dim k As Integer
    If WorksheetFunction.CountA(Worksheets("cal").Range(" b3:h3")) > 0 Then
    k = Sheets("cal").Range("a3").Value
    Worksheets("cal").Range("b3:h3").Copy
    Worksheets("cal2").Cells(k, 2).PasteSpecial xlPasteValues
    Else: MsgBox "no data"




    End If




    Worksheets("A").Select
    End Sub
    [align=center]با تشکر
    امیر محسن پور[/align]

    کامنت

    • ahmada1983

      • 2012/08/02
      • 42

      #3
      ممنون ولی کدی که ارسال شده با تغییر علامت مساوی به بزرگتر وقتی سلولی خالی باشه هشدار نمی ده و کپی رو انجام می ده

      کامنت

      • amir_ts

        • 2015/03/17
        • 1247

        #4
        امتحان کنید...
        کد:
        [LEFT]
        Sub Copy2TOLID110()
        Dim k As Integer
        If WorksheetFunction.CountIf(Worksheets("cal").Range("b3:h3"), 0) = 0 Then
                           k = Sheets("cal").Range("a3").Value
                            Worksheets("cal").Range("b3:h3").Copy
                            Worksheets("cal2").Cells(k, 1).PasteSpecial xlPasteValues
        Else: MsgBox "no data"
        End If
        Worksheets("A").Select
        End Sub
        [/LEFT]
        فایل های پیوست شده
        [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

        کامنت

        • Amir Mohsenpour

          • 2010/02/10
          • 146
          • 53.33

          #5
          نوشته اصلی توسط ahmada1983
          ممنون ولی کدی که ارسال شده با تغییر علامت مساوی به بزرگتر وقتی سلولی خالی باشه هشدار نمی ده و کپی رو انجام می ده
          باسلام و عرض ادب
          با توجه به نوشتن کانت a بجای کانت if حتما جواب میده لطفا امتحان کنید و نتیجه رو اعلام بفرمایین
          بااحترام
          [align=center]با تشکر
          امیر محسن پور[/align]

          کامنت

          • Amir Mohsenpour

            • 2010/02/10
            • 146
            • 53.33

            #6
            البته شما درست فرمودین من تصورم این بود ک کل سلولها اگر خالی باشند اینکارو انجام بده و بنابراین پاسخ شما صحیح تر است
            ممنون
            [align=center]با تشکر
            امیر محسن پور[/align]

            کامنت

            • ahmada1983

              • 2012/08/02
              • 42

              #7
              واقعا ممنون فقط یک مشکل کوچیک اینکه چرا وقتی کپی انجام می شه توی cel2 از ستون A شروع میکنه و کپی می کنه مگه ما شروع محدوده کپی رو از b ندادیم

              کامنت

              • Amir Mohsenpour

                • 2010/02/10
                • 146
                • 53.33

                #8
                Option Explicit


                Sub Copy2TOLID110()
                Dim k As Integer
                If WorksheetFunction.CountBlank(Worksheets("cal").Ran ge("b3:h3")) = 0 Then
                k = Sheets("cal").Range("a3").Value
                Worksheets("cal").Range("b3:h3").Copy
                Worksheets("cal2").Cells(k, 2).PasteSpecial xlPasteValues
                Else: MsgBox "no data"

                End If

                Worksheets("A").Select
                End Sub


                شروع محدوده کپی B3 هستش اگه محدوده دیگری مدنظرتونه خودتون میتونین Alt+F11 رو بزنین و ادیت کنید
                Last edited by Amir Mohsenpour; 2017/01/10, 08:50.
                [align=center]با تشکر
                امیر محسن پور[/align]

                کامنت

                • ahmada1983

                  • 2012/08/02
                  • 42

                  #9
                  مشکل حل شد
                  Worksheets("cal2").Cells(k, 1).PasteSpecial xlPasteValues
                  بجای (k,1) زدم(k,2)

                  کامنت

                  • Amir Mohsenpour

                    • 2010/02/10
                    • 146
                    • 53.33

                    #10
                    منم ک همینو براتون نوشتم ...ولی موفق باشید خوشحالم ک مشکلتون حل شد
                    از Amir_ts عزیز هم ممنون
                    [align=center]با تشکر
                    امیر محسن پور[/align]

                    کامنت

                    • ahmada1983

                      • 2012/08/02
                      • 42

                      #11
                      من فرمول رو یکم تغییر دادم که اسم شیت رو از سلول a1 بگیره و جواب درست بود ولی وقتی مقدار k رو تغییر دادم ERROR می ده مشکل از کجاست
                      Sub Copy2TOLID110()
                      Dim x As String
                      Dim k As Integer
                      If WorksheetFunction.CountIf(Worksheets("cal").Range( "b3:h3"), 0) = 0 Then
                      x = Sheets("cal").Range("a2").Value
                      k = Count(Worksheets(x).Range("a:a"))
                      Worksheets("cal").Range("b3:h3").Copy
                      Worksheets(x).Cells(k, 2).PasteSpecial xlPasteValues
                      Else: MsgBox "no data"

                      End If
                      Worksheets("A").Select
                      End Sub

                      کامنت

                      • ahmada1983

                        • 2012/08/02
                        • 42

                        #12
                        ممنون فکر کنم پست شما چند ثانیه زودتر اومد . . .

                        کامنت

                        • Amir Mohsenpour

                          • 2010/02/10
                          • 146
                          • 53.33

                          #13
                          فایل رو بفرستین و بگین دقیقا میخواین چیکار کنین. جواب دادن به این سوال خیلی طولانی شد.
                          [align=center]با تشکر
                          امیر محسن پور[/align]

                          کامنت

                          • ahmada1983

                            • 2012/08/02
                            • 42

                            #14
                            فایل همونه که خودتون فرستادین فقط من یکم تغییر توی کداش دادم و می خوام در نهایت به اینجا برسم که برای انجام کپی
                            1-اسم شیت رو از یک سلول توی Cal بگیره
                            2-کپی در اولین ردیف خالی شیت مورد نظر انجام بشه
                            3- شماره ردیف هم در اولین سلول قرار داده بشه بطوری که اگه ردیفی حذف بشه شماره ها آپدیت بشن
                            4- جدا از کپی در شیت مورد نظر همه اطلاعات در یک شیت جداگانه ذخیره بشن(اطلاعاتی که در شیت های مختلف ذخیره می شن تجمیع بشن توی مثلا شیت Totall)
                            می دونم خیلی طولانی شد ببخشید

                            دو مورد اول رو حل کردم
                            فقط مونده مورد 3
                            4 هم که زیاد سخت نیست
                            Last edited by ahmada1983; 2017/01/10, 09:49.

                            کامنت

                            چند لحظه..