جلوگیری از Delete شدن بعضی ستونها

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

  • majid_mx4
    پاسخ داد
    با سلام

    منم با استفاده از کد های دوست خوبم جناب آقای اسماعیلی عزیز کد را کامل تر کردم .

    توضیح اینکه این کد فقط ستون d و f را میشناسه برای خواسته شما باید کدی تهیه شود که سر تیتر را شناسایی و شماره ستون آن را به کد بدهد و درواقع ستون توسط سر تیتر شناسایی بشه که کمی کار داره ولی شدنی ایست .


    خلاصه : عدم حذف ستون 4 و 6 فقط در شیت 1 و قابلیت تغییر اطلاعات آن


    با تشکر میر
    فایل های پیوست شده

    Leave a comment:


  • امين اسماعيلي
    پاسخ داد
    ba drod
    با درود
    کد:
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.CodeName = "Sheet1" Then
        If ((Target.Column = 4 Or Target.Column = 6)) Then
    
    
            With Application
                .EnableEvents = False
                .Undo
                MsgBox "ÇÌÇÒ ÊÛííÑ äÏÇÑíÏ", 16
                .EnableEvents = True
            End With
            
        Else
        
            Exit Sub
            
        End If
    End If
    End Sub
    in barhasbe code agha majide gole, onam chon gofti in kareto rah mindaze
    این برحسب کد آقا مجید گله، اونم چون گفتی این کارت رو راه میندازه
    Last edited by حسام بحرانی; 2015/03/10, 12:34.

    Leave a comment:


  • hs208
    پاسخ داد
    نوشته اصلی توسط abootorab
    با درود
    با تشکر از میثم عزیز، حداقل بنده نتونستم از طریق ماکرو روش مناسبی پیدا کنم و تنها کاری که تونستم انجام بدم این بود که کاربر نتونه ستون یا محدوده تعریف شده رو انتخاب کنه که در نهایت بتونه اونو حذف کنه که البته خودم زیاد با این روش موافق نیستم اما شاید به کار شما بیاد دوست عزیز.
    کد PHP:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If 
    Target.Address = Range("دستگاه").Address Then
            Cells
    (1, Target.Column).Select
            MsgBox 
    "You can not select this range!"
        
    End If
    End Sub 
    رو شیت مورد نظر راست کلیک و View Code را بزنید و سپس کد بالا رو در پنجره vb کپی کنید.

    آقای abootorab با سلام ، مجددا کد شما رو دقیق تر بررسی کردم
    اگر واضح تر بخوام مشکلش رو توضیح بدم اینه که با انتخاب ستون به ما پیغام میده که" امکان انتخاب این رنج وجود ندارد " ولی با تایید پیغام یک پنجره از طرف آفیس باز میشود که میتوان از آنجا گزینه Delete را انتخاب کرد و بعد راجع به نحوه shift دادن سلول میپرسد و با انتخاب هر نوع shift ، مقدار اولین سلول در همان ستون پاک شده و مقدار سلول مجاور جایگزین آن میشود

    آیا امکان برطرف کردن این مشکل هست؟ اگه باشه ممکنه از این کد هم یه جاهایی بتونم استفاده کنم

    ممنون

    Leave a comment:


  • hs208
    پاسخ داد
    سلام آقای میر

    با تشکر از پیگیری دوستانه شما

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

    اگر لطف کنید همون برنامه ای که اول نوشته بودید رو به صورتی تغییر بدید که فقط در یک شیت خاص (مثلا sheet1) نتوان ستون های مورد نظر را پاک کرد و اطلاعات ستون نیز قابل تغییر باشد ممنون میشوم

    یک نکته دیگه رو هم بگم چون ممکنه اون ستون هایی مهم جابجا بشوند بنابراین میخوام توی برنامه ای که به این منظور مینویسید از نامی که برای ستون انتخاب شده استفاده کنید مثلا ستون "dastgah" یا ستون "moshtary" (از شماره حروف ستون مثل A یا F استفاده نکنید)

    از لطف و بزگواری شما بسیار ممنونم

    Leave a comment:


  • majid_mx4
    پاسخ داد
    با سلام

    دوست عزیز احتراما راه دیکر پیشنهاد میکنم که بسیار بهتر و مطمئن تر از راه قبل و هم خیلی راحت است

    لطفا فایل ضمیمه را ببینید.

    خلاصه : استفاده از پروتکت برای جلو گیری از حذف ستون های دلخواه (مخصوصا سر ستون )

    با تشکر میر
    فایل های پیوست شده

    Leave a comment:


  • hs208
    پاسخ داد
    با سلام
    جناب majid_mx4 ممنون از کد ارسالی شما. اگر لطف کنید کد رو تغییر بدید که فقط در یک شیت خاص (مثلا sheet1) نتوان ستون های مورد نظر را پاک کرد و اطلاعات ستون نیز قابل تغییر باشد ممنون میشوم


    و با تشکر از دوست عزیز abootorab باید عرض کنم که پاسخ شما هم تا حدودی کار را راه میاندازد ولی یک نکته دارد که بعد نشان دادن پیغام باز هم گزینه پرسش در مورد shift دادن ستون به left , right و ... را میپرسد اگرچه بعد از پاسخ دادن به آن پرسش باز هم ستون را پاک نمیکند ولی به نظرم برای کابر گیج کننده باشد اگر لطف کنید این مورد را برطرف کنید بسیار از شما ممنون میشوم

    Leave a comment:


  • abootorab
    پاسخ داد
    نوشته اصلی توسط hs208
    با سلام دوستان

    یک ماکرو میخواستم که در صورت اقدام به Deleteکردن چند ستون خاص (مثلا ستون D و F ) پیغام خطا بدهد و اجازه حذف این ستون ها داده نشود
    ( اگر این ستون ها نامگذاری شده باشند آیا میشود ماکرو بالا را به جای ستون D و F ، با نام ستون نوشت ؟ (مثلا نام ستون ها "دستگاه" و "مشتری" باشد

    لطفا راهنمایی کنید من زیاد برنامه نویسی بلد نیستم ممنون
    با درود
    با تشکر از میثم عزیز، حداقل بنده نتونستم از طریق ماکرو روش مناسبی پیدا کنم و تنها کاری که تونستم انجام بدم این بود که کاربر نتونه ستون یا محدوده تعریف شده رو انتخاب کنه که در نهایت بتونه اونو حذف کنه که البته خودم زیاد با این روش موافق نیستم اما شاید به کار شما بیاد دوست عزیز.
    کد PHP:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If 
    Target.Address = Range("دستگاه").Address Then
            Cells
    (1, Target.Column).Select
            MsgBox 
    "You can not select this range!"
        
    End If
    End Sub 
    رو شیت مورد نظر راست کلیک و View Code را بزنید و سپس کد بالا رو در پنجره vb کپی کنید.

    Leave a comment:


  • majid_mx4
    پاسخ داد
    دوست عزیز

    لطفا بفرمایید
    1- درکل شیت ها با آن ستون خاص و یا شیتی خاص با آن ستون

    2- کلا ستون حذف نشود و غیر قابل تغییر باشد ( اطلاعات آن ) یا اطلاعات ستون قابل تغییر باشد و فقط ستونها جذف نشوند


    بهر حال یک فایل که در تمامی شیتها اجازه حذف و یاتغییر ستون d و f را نمی دهد ضمیمه کرد.

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

    Leave a comment:


  • misammisam
    پاسخ داد
    سلام
    شاید این به دردتون بخوره .
    سلول d1 تا f1 رو سلکت بکنید و بعد بنویسید ""= وکلیدهای shift+ctrl+enter رو بزنید که بصورت آرایه ای بشه .
    حالا دیگه نمیشه یک یا 2 ستون رو پاک کرد فقط میشه بطور همزمان هر سه تا ستونو با هم پاک کرد .
    فایل های پیوست شده

    Leave a comment:


  • hs208
    یک موضوع ایجاد کرد جلوگیری از Delete شدن بعضی ستونها

    جلوگیری از Delete شدن بعضی ستونها

    با سلام دوستان

    یک ماکرو میخواستم که در صورت اقدام به Deleteکردن چند ستون خاص (مثلا ستون D و F ) پیغام خطا بدهد و اجازه حذف این ستون ها داده نشود
    ( اگر این ستون ها نامگذاری شده باشند آیا میشود ماکرو بالا را به جای ستون D و F ، با نام ستون نوشت ؟ (مثلا نام ستون ها "دستگاه" و "مشتری" باشد

    لطفا راهنمایی کنید من زیاد برنامه نویسی بلد نیستم ممنون
چند لحظه..