چطور ميشه فقط و فقط يك شيت را طوري قفل كرد كه نشه حذفش كرد !؟

Collapse
X
 
  • زمان
  • نمایش
Clear All
new posts
  • misammisam
    مدير تالار حسابداری و اکسل

    • 2014/04/03
    • 892

    چطور ميشه فقط و فقط يك شيت را طوري قفل كرد كه نشه حذفش كرد !؟

    با سلام

    چطور ميتونم يك شيت مشخص ، با يك نام مشخص رو طوري با vb قفل كنم كه قابل حذف شدن نباشه ولي بقيه شيتها رو بشه حذف كرد . مثلا من 3 تا شيت دارم sheet1 و sheet2 و sheet3 من ميخوام فقط sheet1 طوري قفل بشه كه نشه حذفش كرد ولي بقيه شيتها رو بشه حذف كرد .
    sigpic
  • امين اسماعيلي
    مدير تالار ويژوال بيسيك

    • 2013/01/17
    • 1198

    #2
    یا درود
    هر چند راه ها ی مختلفی واسه delete کردن شیت وجود داره اما خوب بیا این راه رو امتحان کن ببین در این حد به ارت میاد

    1- اول کد زیر رو باید برای ایونت کتیو شدن شیت 1 بنویسیم

    کد:
    Private Sub Worksheet_Activate()
    Application.CommandBars("Ply").Enabled = False
    End Sub
    2 - برعکس همین کد رو برای دی اکتیو شدن شیت مورد نظ مینویسیم
    کد:
    Private Sub Worksheet_Deactivate()
    Application.CommandBars("Ply").Enabled = True
    End Sub
    حالا راست کلیک رو این شیت غیر فعال شد.
    بعدش باید کاری کنی که شیت از منو بار هم غیر فعال بشه که میتونی واسه اون شیت یه پسورد بزاری و قفلش کنی و در هنگام قفل کردن یه سری محدودیت هایی رو که داره مل تغییر اطلاعات رو برداری. اینطوری delete از منو بار هم برداشته میشه. اگرم فرم داری نمونه کد خودکار وارد شدن پسورد و دوباره قفل شدن تو سایت هست میتونی استفاده کنی. تست کن ببین اینایی که گفتم به کارت میان
    در ضمن پسورد شیت 1 = 1214 هستش. برای محکم کاری میتونی واسه کد های vba هم پسورد بزاری . ولی در کل بگم همیشه یه راه درو هست. چون ما که از مایکرو سافت که ویندوز رو میده بیرون به 12 ساعت نکشیده کرکش میکنن که قویتر نیسیم . ولی بازم این میتونه در اون حد که شما میخواین کار گشا باشه
    فایل های پیوست شده
    در پناه خداوندگار ایران زمین باشید و پیروز

    کامنت

    • misammisam
      مدير تالار حسابداری و اکسل

      • 2014/04/03
      • 892

      #3
      نوشته اصلی توسط امين اسماعيلي
      یا درود
      هر چند راه ها ی مختلفی واسه delete کردن شیت وجود داره اما خوب بیا این راه رو امتحان کن ببین در این حد به ارت میاد

      1- اول کد زیر رو باید برای ایونت کتیو شدن شیت 1 بنویسیم

      کد:
      Private Sub Worksheet_Activate()
      Application.CommandBars("Ply").Enabled = False
      End Sub
      2 - برعکس همین کد رو برای دی اکتیو شدن شیت مورد نظ مینویسیم
      کد:
      Private Sub Worksheet_Deactivate()
      Application.CommandBars("Ply").Enabled = True
      End Sub
      حالا راست کلیک رو این شیت غیر فعال شد.
      بعدش باید کاری کنی که شیت از منو بار هم غیر فعال بشه که میتونی واسه اون شیت یه پسورد بزاری و قفلش کنی و در هنگام قفل کردن یه سری محدودیت هایی رو که داره مل تغییر اطلاعات رو برداری. اینطوری delete از منو بار هم برداشته میشه. اگرم فرم داری نمونه کد خودکار وارد شدن پسورد و دوباره قفل شدن تو سایت هست میتونی استفاده کنی. تست کن ببین اینایی که گفتم به کارت میان
      در ضمن پسورد شیت 1 = 1214 هستش. برای محکم کاری میتونی واسه کد های vba هم پسورد بزاری . ولی در کل بگم همیشه یه راه درو هست. چون ما که از مایکرو سافت که ویندوز رو میده بیرون به 12 ساعت نکشیده کرکش میکنن که قویتر نیسیم . ولی بازم این میتونه در اون حد که شما میخواین کار گشا باشه
      تشكر از جوابت ، از هيچي بهتره .
      فقط چرا تو اكسل 2007 كار نميكنه ولي تو اكسل 2003 كار ميكنه !!!!!!!!!
      تو اكسل 2003 هم وقتي sheet ها رو با دكمه ctrl بصورت گروهي انتخاب ميكني دوباره ميشه شيتهارو حذف كرد .

      اگر كدهاي ديگه اي به نظرتون رسيد ممنون ميشم همينجا برام بزاريد .
      sigpic

      کامنت

      • ~M*E*H*D*I~

        • 2011/10/19
        • 4374

        #4
        با استفاده از کد زیر میتونی شیت خاصی رو پروتکت کنی
        کد PHP:

        Public PvSh As String
         
        Public Pwd As String
         
         
         
        Private Sub Workbook_SheetActivate(ByVal Sh As  Object)
         If 
        Pwd "" Then
         
        If Sh.Name "Sheet2" Then
         Num 
        ActiveWindow.Index
         Windows
        (Num).Visible False
         
        If Application.InputBox("Enter Password""Password") <> "123" Then
         MsgBox 
        "Incorrect Password"vbCritical"Error"
         
        Application.EnableEvents False
         Sheets
        (PvSh).Select
         Application
        .EnableEvents True
         
        Else
         
        Pwd "123"
         
        End If
         
        Windows(Num).Visible True
         End 
        If
         
        End If
         
        End Sub
         
         
         
        Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
         
        PvSh Sh.Name
         
         End Sub 

        sigpic

        کامنت

        • امين اسماعيلي
          مدير تالار ويژوال بيسيك

          • 2013/01/17
          • 1198

          #5
          با درود
          من کدو تو 2010 تست کردم ج داد . در ضمن شیت 1 رو قفل کردین.
          یه راه دیگه هم اینه که شما شیت مذکور رو veryhide کنین با کد نویسی و اطلاعاتشو با یوزر فرم وارد کنین.
          در پناه خداوندگار ایران زمین باشید و پیروز

          کامنت

          Working...