اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

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

    • 2012/04/01
    • 16

    اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

    با سلام خدمت همه دوستان و اساتيد لطفا راهنمايي كنيد.
    با vba ميشه فقط درمحدوده خاصي از سلول هاي شيت (نه همه شيت) قابليت cut و paste رو حذف كرد؟ (قابليت copy رو لازم دارم )
    بيشتر اينو براي اين لازم دارم كه cut سلول باعث خطاي refrence
    نشه.
    ممنون

  • Javid Mokhtari
    مدير تالار ويژوال بيسيك

    • 2012/01/16
    • 1212
    • 73.00

    #2
    RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

    با سلام.
    خب این کار رو از طریق قفل کردن سلول هم می توانید انجام دهید.
    کد VBهم... :
    Range("A1:A10").Locked = True
    ActiveSheet.Protect
    [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
    بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

    شرکت در دوره:
    [/FONT][/SIZE]
    [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
    [/B][/FONT][/SIZE]
    [/CENTER]
    [/INDENT]
    [/FONT]

    کامنت

    • samadi1973

      • 2012/04/01
      • 16

      #3
      RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

      ممنون از راهنماييتون ولي قفل كردن قابليت copy , cut , past و وارد كردن اطلاعات روميگيره هدف من صرفا حذف قابليت cutهست و نه بيشتر

      Private Sub Workbook_Activate()
      Application.CutCopyMode = False

      End Sub
      مشابه اين دستور روميخوام ولي صرفا براي cut
      امكان داره؟

      کامنت

      • daghyad

        • 2012/03/30
        • 117

        #4
        RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

        سلام شما میخواهید که کار برنتونه تعدادی از سلولها را cut یا delete کنه را هش اینه که روی رویداد changeیک شیت اینکد را تایپ کنید:
        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim NoChgRg As Range
        Dim chg As Range
        Set NoChgRg = [a1:f74,j9:j74,n9:u25]
        Set chg = Application.Intersect(Target, NoChgRg)
        If Not chg Is Nothing Then
        Application.EnableEvents = False
        MsgBox "نمي توانيد حذف کنيد سلول محافظت شده است"
        Application.Undo
        Application.EnableEvents = True
        End If
        Set chg = Nothing
        End Sub


        و کافی ست محدوده ای را که میخوای محافظت کنید را بالا انتخاب کنید

        کامنت

        • samadi1973

          • 2012/04/01
          • 16

          #5
          RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

          ممنون از زحمتتون من صرفا قصدم حذف قابليت cut هست و قصدم حذف قابليت هاي كپي يا جلوگيري از وارد كردن اطلاعات نيست.قابليت كپي و وارد كردن رو لازم دارم.

          کامنت

          • daghyad

            • 2012/03/30
            • 117

            #6
            RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

            سلام این کار قابلیت کات کردن محدوده ای را که شما تعریف می کنید را از بین می برد تنها در همون محوده و حتی کپی کردن و پیست کردن هم امکان پذیره شما کد را امتحان کنیدو محدوده را توی کد تغییر بدید [hr]

            Set NoChgRg = [a1:f74,j9:j74,n9:u25]
            محدوده را در این قسمت از برنامه تغییر بده

            کامنت

            • samadi1973

              • 2012/04/01
              • 16

              #7
              RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

              سلولهي رنجي كه شما در فرمول تعيين كردين كامل سلول ها رو قفل ميكنه فقط قابليت select ميده البته اطلاعات ميشه وارد كرد يا paste رو استفاده كرد اما بعد از ظاهر شدن پيغام 'نمي توانيد حذف کنيد سلول محافظت شده است'اگر ok رو بزيم يا پنجره رو ببنديم اطلاعات از بين ميره.
              Set NoChgRg
              no chang rang(رنج كاملا بدون تغيير)
              بازم ممنون

              کامنت

              • shamsololama

                • 2010/02/15
                • 940

                #8
                RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

                نوشته اصلی توسط samadi1973
                با سلام خدمت همه دوستان و اساتيد لطفا راهنمايي كنيد.
                با vba ميشه فقط درمحدوده خاصي از سلول هاي شيت (نه همه شيت) قابليت cut و paste رو حذف كرد؟ (قابليت copy رو لازم دارم )
                بيشتر اينو براي اين لازم دارم كه cut سلول باعث خطاي refrence
                نشه.
                ممنون

                با درود فراوان

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

                برای حذف کات در فایل نمونه من کات از تو راست کلیک و از کلید ترکیبی کنترل و ایکس رو حذف کردم و فقط برای محدوده سلهای که با رنگ زرد مشخص شده در نظر گرفته شده است

                امیدوارم همان چیزی که مد نظر شماست بوده باشه


                کد:
                Sub EnableControl(Id As Integer, Enabled As Boolean)
                Dim CB As CommandBar
                Dim C As CommandBarControl
                For Each CB In Application.CommandBars
                Set C = CB.FindControl(Id:=Id, recursive:=True)
                If Not C Is Nothing Then C.Enabled = Enabled
                Next
                End Sub



                Private Sub Worksheet_SelectionChange(ByVal Target As Range)

                If Target.Column = 1 Or Target.Address = Range("c1").Address Or Target.Address = Range("e5").Address Then
                EnableControl 21, False ' cut
                Application.OnKey "^x", ""
                Else
                EnableControl 21, True ' cut
                Application.OnKey "^x"
                End If
                End Sub



                فایل نمونه:
                [attachment=538]
                فایل های پیوست شده
                ---------------------------------------------------------------------------------------------------
                بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
                shamsololama@yahoo.com
                09177733411

                کامنت

                • samadi1973

                  • 2012/04/01
                  • 16

                  #9
                  RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

                  عالي بود ارشام خان ممنون
                  ميشه كاري كرد كه هنگامي كه drag &drop رو انجام ميديم "صرفا "قابليت" move" رو هم گرفت؟
                  از اين كه بدون چشمداشت كمك ميكنيد ممنونتم .
                  منتظر ميمونم

                  کامنت

                  • shamsololama

                    • 2010/02/15
                    • 940

                    #10
                    RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

                    نوشته اصلی توسط samadi1973
                    عالي بود ارشام خان ممنون
                    ميشه كاري كرد كه هنگامي كه drag &drop رو انجام ميديم "صرفا "قابليت" move" رو هم گرفت؟
                    از اين كه بدون چشمداشت كمك ميكنيد ممنونتم .
                    منتظر ميمونم
                    با درود فراوان

                    اگر منظرو شما اینه که با موس هم نشه درگ کرد و همان کار کات رو انجام داد کافیه به کد قبل یک آیتم دیگر اضاف کنیم
                    Application.CellDragAndDrop = False


                    که کد به این صورت نوشته میشه

                    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

                    If Target.Column = 1 Or Target.Address = Range("c1").Address Or Target.Address = Range("e5").Address Then
                    EnableControl 22, False ' cut
                    Application.OnKey "^x", ""
                    Application.CellDragAndDrop = False

                    Else
                    EnableControl 21, True ' cut
                    Application.OnKey "^x"
                    Application.CellDragAndDrop = True

                    End If
                    End Sub


                    فایل نمونه:
                    [attachment=540]


                    فایل های پیوست شده
                    ---------------------------------------------------------------------------------------------------
                    بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
                    shamsololama@yahoo.com
                    09177733411

                    کامنت

                    • samadi1973

                      • 2012/04/01
                      • 16

                      #11
                      RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

                      مشكلمو حل كردين خيلي خيلي ممنونم
                      ضمنا استاد اگه براتون امكان پذيره در مورد سفارشي كردن menu bar با vba كه در ادرس ذيل
                      قرار دادين نيزفايل نمونه رو هم محبت بفرماييد
                      فرمول هاي فول اسكرين و حذف كلي جواب داد ولي فرمول هاي حذف موردي در اكسل 2010 من اجرا نشد.
                      http://forum.exceliran.com/showthread.php?tid=290
                      با تشكر فراوان

                      کامنت

                      • daghyad

                        • 2012/03/30
                        • 117

                        #12
                        RE: اولين سوال من(حذف قابليت cut در محدوده خاصي از سلولها)

                        سلام ممنون از اقای شمس العلما ی عزیز که زحمت کشیدند و فایل ها را هم گذاشتند اما فقط یه سوال هست و اون این که ما cut کردن را در همون فایل می تونیم از منو home انجام بدیم و با زدن اینتر پیست هم میشه این را باید چکار کرد ممنون[hr]
                        سلام این هم یک کد که تو کل ورک بوک قابلیت کان را حذف می کنه اما باز هم این مشکا هست که از منوی home میشه اون را کپی و کات کرد

                        کامنت

                        چند لحظه..