با سلام
منم با استفاده از کد های دوست خوبم جناب آقای اسماعیلی عزیز کد را کامل تر کردم .
توضیح اینکه این کد فقط ستون d و f را میشناسه برای خواسته شما باید کدی تهیه شود که سر تیتر را شناسایی و شماره ستون آن را به کد بدهد و درواقع ستون توسط سر تیتر شناسایی بشه که کمی کار داره ولی شدنی ایست .
خلاصه : عدم حذف ستون 4 و 6 فقط در شیت 1 و قابلیت تغییر اطلاعات آن
با تشکر میر
جلوگیری از Delete شدن بعضی ستونها
Collapse
X
-
ba drod
با درود
in barhasbe code agha majide gole, onam chon gofti in kareto rah mindazeکد: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
این برحسب کد آقا مجید گله، اونم چون گفتی این کارت رو راه میندازهLast edited by حسام بحرانی; 2015/03/10, 12:34.Leave a comment:
-
با درود
با تشکر از میثم عزیز، حداقل بنده نتونستم از طریق ماکرو روش مناسبی پیدا کنم و تنها کاری که تونستم انجام بدم این بود که کاربر نتونه ستون یا محدوده تعریف شده رو انتخاب کنه که در نهایت بتونه اونو حذف کنه که البته خودم زیاد با این روش موافق نیستم اما شاید به کار شما بیاد دوست عزیز.
رو شیت مورد نظر راست کلیک و View Code را بزنید و سپس کد بالا رو در پنجره vb کپی کنید.کد 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
آقای abootorab با سلام ، مجددا کد شما رو دقیق تر بررسی کردم
اگر واضح تر بخوام مشکلش رو توضیح بدم اینه که با انتخاب ستون به ما پیغام میده که" امکان انتخاب این رنج وجود ندارد " ولی با تایید پیغام یک پنجره از طرف آفیس باز میشود که میتوان از آنجا گزینه Delete را انتخاب کرد و بعد راجع به نحوه shift دادن سلول میپرسد و با انتخاب هر نوع shift ، مقدار اولین سلول در همان ستون پاک شده و مقدار سلول مجاور جایگزین آن میشود
آیا امکان برطرف کردن این مشکل هست؟ اگه باشه ممکنه از این کد هم یه جاهایی بتونم استفاده کنم
ممنونLeave a comment:
-
سلام آقای میر
با تشکر از پیگیری دوستانه شما
در مورد فایل جدید باید بگم که همون طور که توی سوال مطرح کردم میخوام از پاک شدن بعضی ستون ها حتی در حالتی که شیت پروتکت نباشه جلوگیری بشه آخه بعضی وقتها همکاران شیت رو از حالت قفل در میارن و نیاز دارن که بعضی ستون ها رو پاک کنن
میخوام ستون های مهم که در برنامه های دیگه استفاده شدن به هیچ وجه پاک نشن
اگر لطف کنید همون برنامه ای که اول نوشته بودید رو به صورتی تغییر بدید که فقط در یک شیت خاص (مثلا sheet1) نتوان ستون های مورد نظر را پاک کرد و اطلاعات ستون نیز قابل تغییر باشد ممنون میشوم
یک نکته دیگه رو هم بگم چون ممکنه اون ستون هایی مهم جابجا بشوند بنابراین میخوام توی برنامه ای که به این منظور مینویسید از نامی که برای ستون انتخاب شده استفاده کنید مثلا ستون "dastgah" یا ستون "moshtary" (از شماره حروف ستون مثل A یا F استفاده نکنید)
از لطف و بزگواری شما بسیار ممنونمLeave a comment:
-
با سلام
دوست عزیز احتراما راه دیکر پیشنهاد میکنم که بسیار بهتر و مطمئن تر از راه قبل و هم خیلی راحت است
لطفا فایل ضمیمه را ببینید.
خلاصه : استفاده از پروتکت برای جلو گیری از حذف ستون های دلخواه (مخصوصا سر ستون )
با تشکر میرفایل های پیوست شدهLeave a comment:
-
با سلام
جناب majid_mx4 ممنون از کد ارسالی شما. اگر لطف کنید کد رو تغییر بدید که فقط در یک شیت خاص (مثلا sheet1) نتوان ستون های مورد نظر را پاک کرد و اطلاعات ستون نیز قابل تغییر باشد ممنون میشوم
و با تشکر از دوست عزیز abootorab باید عرض کنم که پاسخ شما هم تا حدودی کار را راه میاندازد ولی یک نکته دارد که بعد نشان دادن پیغام باز هم گزینه پرسش در مورد shift دادن ستون به left , right و ... را میپرسد اگرچه بعد از پاسخ دادن به آن پرسش باز هم ستون را پاک نمیکند ولی به نظرم برای کابر گیج کننده باشد اگر لطف کنید این مورد را برطرف کنید بسیار از شما ممنون میشومLeave a comment:
-
با درودبا سلام دوستان
یک ماکرو میخواستم که در صورت اقدام به Deleteکردن چند ستون خاص (مثلا ستون D و F ) پیغام خطا بدهد و اجازه حذف این ستون ها داده نشود
( اگر این ستون ها نامگذاری شده باشند آیا میشود ماکرو بالا را به جای ستون D و F ، با نام ستون نوشت ؟ (مثلا نام ستون ها "دستگاه" و "مشتری" باشد
لطفا راهنمایی کنید من زیاد برنامه نویسی بلد نیستم ممنون
با تشکر از میثم عزیز، حداقل بنده نتونستم از طریق ماکرو روش مناسبی پیدا کنم و تنها کاری که تونستم انجام بدم این بود که کاربر نتونه ستون یا محدوده تعریف شده رو انتخاب کنه که در نهایت بتونه اونو حذف کنه که البته خودم زیاد با این روش موافق نیستم اما شاید به کار شما بیاد دوست عزیز.
رو شیت مورد نظر راست کلیک و View Code را بزنید و سپس کد بالا رو در پنجره vb کپی کنید.کد 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
Leave a comment:
-
دوست عزیز
لطفا بفرمایید
1- درکل شیت ها با آن ستون خاص و یا شیتی خاص با آن ستون
2- کلا ستون حذف نشود و غیر قابل تغییر باشد ( اطلاعات آن ) یا اطلاعات ستون قابل تغییر باشد و فقط ستونها جذف نشوند
بهر حال یک فایل که در تمامی شیتها اجازه حذف و یاتغییر ستون d و f را نمی دهد ضمیمه کرد.
خلاصه فایل: جلو گیری از حذف و تغییر اطلاعات دوستون مشخص در تمامی شیتها
با تشکر میرفایل های پیوست شدهLeave a comment:
-
سلام
شاید این به دردتون بخوره .
سلول d1 تا f1 رو سلکت بکنید و بعد بنویسید ""= وکلیدهای shift+ctrl+enter رو بزنید که بصورت آرایه ای بشه .
حالا دیگه نمیشه یک یا 2 ستون رو پاک کرد فقط میشه بطور همزمان هر سه تا ستونو با هم پاک کرد .فایل های پیوست شدهLeave a comment:
-
جلوگیری از Delete شدن بعضی ستونها
با سلام دوستان
یک ماکرو میخواستم که در صورت اقدام به Deleteکردن چند ستون خاص (مثلا ستون D و F ) پیغام خطا بدهد و اجازه حذف این ستون ها داده نشود
( اگر این ستون ها نامگذاری شده باشند آیا میشود ماکرو بالا را به جای ستون D و F ، با نام ستون نوشت ؟ (مثلا نام ستون ها "دستگاه" و "مشتری" باشد
لطفا راهنمایی کنید من زیاد برنامه نویسی بلد نیستم ممنون
Leave a comment: