PDA

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



ali.b
2014/09/20, 23:24
سلام این کد رو در قسمت Vb شیت مورد نظر بزارین
با این کد هر سلولی که توش فرمول باشه رو قفل میکنه اما روی سلول های دیگه کلیک کنید دیگه شیت قفل نیست. دیگه دردسرهای مربوط به قفل شیت رو هم ندارین

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim rng As Range
For Each rng In Target.Cells
If rng.HasFormula Then
ActiveSheet.Protect
Exit Sub
Else
ActiveSheet.Unprotect
End If
Next rng End Sub

Skynet
2017/03/08, 20:47
با سلام
من کاری که گفتید رو انجام دادم ولی فرقی نکرد!
آیا نکته ای برای این کار وجود داره یا جایی از عملیاتی که انجام دادم اشتباه بوده ؟! لطفا در صورت امکان فایل نمونه بگذارید ممنونم
14437

Amir Ghasemiyan
2017/03/09, 01:30
با سلام
من کاری که گفتید رو انجام دادم ولی فرقی نکرد!
آیا نکته ای برای این کار وجود داره یا جایی از عملیاتی که انجام دادم اشتباه بوده ؟! لطفا در صورت امکان فایل نمونه بگذارید ممنونم
14437

سلام دوست عزیز
من کد دوستمون رو یکم اصلاح میکنم. بعضی جاها باید اینتر میخورده که نخورده



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range
For Each rng In Target.Cells
If rng.HasFormula Then
ActiveSheet.Protect
Exit Sub
Else
ActiveSheet.Unprotect
End If
Next rng
End Sub

Skynet
2017/03/09, 23:12
با سلام و احترام
عالیییییییی خیلی خیلی ممنونم فوق العاده بهم کمک میکنه مرسییی

Skynet
2017/03/09, 23:29
سلام دوست عزیز
من کد دوستمون رو یکم اصلاح میکنم. بعضی جاها باید اینتر میخورده که نخورده



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rng As Range
For Each rng In Target.Cells
If rng.HasFormula Then
ActiveSheet.Protect
Exit Sub
Else
ActiveSheet.Unprotect
End If
Next rng
End Sub





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

Amir Ghasemiyan
2017/03/10, 00:06
ضمن تشکر مجدد، یک سوال؟
آیا امکان این هست که این کد رو جوری طراحی کرد که در پایان کد دیگری اجرا شود ؟!
چون من با ماکرو عملیاتی رو ضبط کردم که شامل اضافه کردن و حذف سلول ها و سطرهایی میشه که حاوی فرمول هم هستن، که با کپی این کد قفل فرمول در شیت مربوطه، ماکروی از قبل ضبط شده به مشکل بر می خوره چون نمی تونه سلول های حاوی فرمول رو حذف کنه و نیمه کاره متوقف میشه .
آیا راهی برای حل این مشکل هست خیلی ممنونم ؟

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

Skynet
2017/03/10, 15:03
ممنونم از شما

Skynet
2017/03/10, 15:04
درست متوجه سوالتون نشدم اما چیزی که میخواین قابل انجامه. کافیه قبل از خط آخر اسم ماکرویی که ضبط کردین رو بنویسید



جناب قاسمیان عزیز، ببخشید نتونستم منظورمو رو درست بیان کنم، با یک مثال منظورم رو کامل می کنم.
در فایل پیوست یک مثال تهیه کردم، که یک ماکرو جهت انتقال داده از یک جدول در شیت 2 به شیت 1 تهیه شده که جدول مربوط در شیت 1، یک ستون اخر رو بیشتر داره که حاوی محاسبه سود هست، ماکروی مربوطه جدول شیت 2 رو از سطر عنوان تا سطر آخر کپی کرده و به شیت 1 سطر یک میاره و بعد از انتقال ، سطر یک که حاوی عنوان جدول شیت 2 بود رو پاک میکنه!
جدا از اینکه اصولا راه بهتری برای انجام این انتقال هست، اما درخواست من این هست که از کد قف گذاری ، در این مثال به چه صورتی استفاده کنم که بعد از انتقال ، سلول های حاوی فرمول، قفل شده و قابل ویرایش نباشند!
خیلی خیلی ممنونم

14450

Amir Ghasemiyan
2017/03/12, 15:50
چیزی که من از پیام شما برداشت کردم اینه که اگه شیت قفل بشه مشکل شما حل میشه
من کدهاتون رو اصلاح کردم لطفا بررسی بفرمایید

Skynet
2017/03/12, 20:30
با سلام و احترام
خیلی ممنونم جناب قاسمیان این شیوه هم بدون کد نویسی خیلی عالیه ممنونم.
یک مشکلی که وجود داره اینکه ظاهرا" در هر دو روش، خصوصیت Table از لحاظ فیلتر کردن عناصر و گسترش سطر های با فشردن کلید Inter از کار می افته که برای من که بی نهایت از Table ها در کارام استفاده می کنم مشکل بزرگی رو فراهم می کنه بطوریکه عملا نمی تونم از هیچکدوم استفاده کنم چون نیاز به خاصیت فیلتر عناصر و اضافه شدن سطرهای جدیدی با فشردن کلید tab دارم، با این حال خیلی خیلی ممنونم از توجه شما

kamaee
2019/07/29, 16:58
سلام دوست عزیزمن کد دوستمون رو یکم اصلاح میکنم. بعضی جاها باید اینتر میخورده که نخورده
private sub worksheet_selectionchange(byval target as range) dim rng as range for each rng in target.cells if rng.hasformula then activesheet.protect exit sub else activesheet.unprotect end if next rng end subسلام ، ببخشید ی سوال !!! چرا وقتی این کد را در محیط vba کپی می کنم ، زمان اجرای کد از من نام ماکرو رو میخاد ؟ و اجرا نمیشه ؟؟

Amir Ghasemiyan
2019/07/29, 20:35
سلام ، ببخشید ی سوال !!! چرا وقتی این کد را در محیط vba کپی می کنم ، زمان اجرای کد از من نام ماکرو رو میخاد ؟ و اجرا نمیشه ؟؟

سلام دوست عزیز
این کد رو باید در قسمت کدهای شیت مورد نظر اضافه کنید نه یک ماژول و برای اجرای این کد باید تغییری در یک سلول اکسل ایجاد کنید تا نتیجه رو ببینید نه اینکه از داخل محیط vba کد رو اجرا کنید