نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: تعمیم دادن دستور زیر برای همه صفحات موجود در فایل و صفحات جدید ایجاد شده.

  1. #1


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    تعمیم دادن دستور زیر برای همه صفحات موجود در فایل و صفحات جدید ایجاد شده.

    سلام دوستان در پرسشی دیگر من این راه حل خوب رو از استاد Dolfin یاد گرفتم . حالا می خوام این دستور رو جوری تغییر بدم که وابسته به شماره Sheet ها نباشه و کلا هرچی تو فایل هست رو شامل شود .
    یه سوال دیگه هم دارم با توجه به این که این کد نویسی مخصوص ویندوز 64 بیتی است اگر کسی با ویندوز 32 بیتی این فایل رو اجرا کند احتمالا جواب میدهد یا نه ؟؟ اگر نمی دهد چه کار میشود کرد ؟

    کد PHP:
    Option Explicit
    Declare PtrSafe Function WNetGetUser Lib "mpr.dll" _
                                 Alias 
    "WNetGetUserA" (ByVal lpName As String_
                                                       ByVal lpUserName 
    As StringlpnLength As Long) As Long

    Const NoError 0        'The Function call was successful

    Public Function GetUserName() As String

    Buffer size for the return string.
    Const 
    lpnLength As Integer 255

        
    ' Get return buffer space.
    Dim status As Integer

        ' 
    For getting user information.
    Dim lpNamelpUserName As String

        
    ' Assign the buffer size constant to lpUserName.
        lpUserName = Space$(lpnLength + 1)

        ' 
    Get the log-on name of the person using product.
        
    status WNetGetUser(lpNamelpUserNamelpnLength)

        
    ' See whether error occurred.
        If status = NoError Then
            ' 
    This line removes the null characterStrings in C are null-
            
    ' terminated. Strings in Visual Basic are not null-terminated.
            ' 
    The null character must be removed from the C strings to be used
            
    ' cleanly in Visual Basic.
            lpUserName = Left$(lpUserName, InStr(lpUserName, Chr(0)) - 1)
        Else
            ' 
    An error occurred.
            
    GetUserName "Unable to get the name."
            
    GoTo lbl_Exit
        End 
    If

        
    ' Display the name of the person logged on to the machine.
        GetUserName = lpUserName
    lbl_Exit:
        Exit Function
    End Function 
    کد PHP:
    Private Sub Workbook_Open()
    If 
    GetUserName "s.tabibi" Or GetUserName "a.alijanzadeh" Then
    Sheet2
    .Unprotect ("132025")
    Sheet3.Unprotect ("132025")
    Else
    Sheet2.Protect Contents:=TrueScenarios:=TruePassword:=132025AllowSorting:=TrueAllowFiltering:=True
    Sheet3
    .Protect Contents:=TrueScenarios:=TruePassword:=132025AllowSorting:=TrueAllowFiltering:=True
    End 
    If
    End Sub 
    دسترسی محدود با استفاده از Usename های لوگین شده در ویندوز (محدود از نظر تغییر دادن ولی قابل فیلتر و سورت کردن می باشد)
    یوزر های وارد شده بالا یوزر هایی هستن که دسترسی کامل دارند .
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.

  2. سپاس ها (1)


  3.  

  4. #2


    آخرین بازدید
    2016/11/06
    تاریخ عضویت
    January 2014
    محل سکونت
    تهران
    نوشته ها
    149
    امتیاز
    1192
    سپاس
    175
    سپاس شده
    414 در 123 پست
    تعیین سطح نشده است

    سلام در جواب سوال اول برای اینکه کد شما شامل تمام شیت های موجود بشه باید از دستور for به این شکل استفاده کنید :
    کد:
    Private Sub Workbook_Open()
    Dim ws As Worksheet
    If GetUserName = "s.tabibi" Or GetUserName = "a.alijanzadeh" Then
    For Each ws In Worksheets
    ws.Unprotect ("132025")
    Next ws
    Else
    For Each ws In Worksheets
    ws.Protect Contents:=True, Scenarios:=True, Password:=132025, AllowSorting:=True, AllowFiltering:=True
    Next ws
    End If
    End Sub
    در جواب سوال دوم هم چون کد به صورت یک تابع تعریف شده در ویندوز های 32 و 64 مشکلی ایجاد نمیشه .
    خانه اکسل - http://********************



اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ ها: 5
    آخرين نوشته: 2015/05/12, 13:53
  2. تعمیر فایل اکسل
    توسط YEJAMOMA در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 6
    آخرين نوشته: 2015/02/03, 17:07
  3. نگهداری و تعمیرات و MIS با استفاده از اکسل
    توسط m_d6712 در انجمن مهندسی صنایع و اکسل
    پاسخ ها: 14
    آخرين نوشته: 2015/01/20, 16:42
  4. تعمیم
    توسط sogmad در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 18
    آخرين نوشته: 2014/08/21, 15:07
  5. آیا این مسئله نگهداری و تعمیرات با vba قابل حل هست؟
    توسط esyoo در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 25
    آخرين نوشته: 2012/04/06, 17:51

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

تعمیم دادن یک دستور در ویژوال بیسیک

کلمات کلیدی این موضوع

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است