نکته مهم در قفل سلول از طریق vba

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

    • 2014/01/12
    • 798

    نکته مهم در قفل سلول از طریق vba

    با سلام و خسته نباشید
    یکی از نکاتی که کمتر دیدم اینه که خیلی از کاربرا از جمله خودم به انتقال داده ها با استفاده از کد از یک شیت محافظت شده به شیت دیگه ، نیاز زیادی پیدا کرده بودیم
    اما غافل از اینکه وقتی ما در یک شیتی و در سلول های مشخص UNLOCK هستند داده ها رو ثبت میکنیم
    مشکل اینجاست که چون Format cell این سلول ها Unlocked شده در صورت انتقال هم اون سلول ها همین خاصیت رو دارن و عملا فقط شیت رمز گذاشته میشه ولی سلول ها قابل تغییرن
    برای حل مشکل باید از کد زیر استفاده کنیم تا format cell رو به حالت lock برگردونه تا در شیت جدید اطلاعات قابل تغییر نباشن
    این ی نمونه کد هست و قسمتی که مهمه رو با رنگ دیگه مشخص کردم
    کد:
    ActiveSheet.Unprotect Password:="Enter your Password"
    [COLOR=#ff0000]Worksheets[/COLOR][COLOR=#ff0000]("Enter your sheet name").Range("A1:E1")[/COLOR][COLOR=#008000].Locked = True[/COLOR]
    ActiveSheet.Protect Password:="Enter your Password"

  • ali.b

    • 2014/01/12
    • 798

    #2
    در ضمن اگه یه وقتی تعداد شیتتون زیاد بود و یک کد جامع نوشتین میتونین کد مربوطه رو به حالت زیر تغییر بدین

    کد:
    [COLOR=#ff0000]Worksheets[/COLOR][COLOR=#ff0000]("Enter your sheet name").Range("A1:E1")[/COLOR][COLOR=#008000].Locked = True[/COLOR]
    مثلا به این حالت
    کد:
    Sheets(i).Activate
    Range("A3").Select
        Range("A1:E1").Locked = True

    کامنت

    • Amir Ghasemiyan

      • 2013/09/20
      • 4504
      • 100.00

      #3
      نوشته اصلی توسط absorkhi
      در ضمن اگه یه وقتی تعداد شیتتون زیاد بود و یک کد جامع نوشتین میتونین کد مربوطه رو به حالت زیر تغییر بدین

      کد:
      [COLOR=#ff0000]Worksheets[/COLOR][COLOR=#ff0000]("Enter your sheet name").Range("A1:E1")[/COLOR][COLOR=#008000].Locked = True[/COLOR]
      مثلا به این حالت
      کد:
      Sheets(i).Activate
      Range("A3").Select
          Range("A1:E1").Locked = True

      ممنون از آموزشتون
      كد آخري كه گذاشتين رو ميشه اينطوري خلاصه كرد:


      کد:
      Sheets(i).Range("A1:E1").Locked = True

      کامنت

      چند لحظه..