مي خواهم ضربدر قرمز فرم غير فعال باشد ولي دستور unload me در آن اجرا گردد

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    مي خواهم ضربدر قرمز فرم غير فعال باشد ولي دستور unload me در آن اجرا گردد

    سلام به همه دوستان عزيز،
    من يک فايل طراحي کرده ام و در آن مي خواهم کاربران به صفحات اصلي اکسل دسترسي نداشته باشند.
    همه کارها از يک منوي اصلي انجام مي گردد و در انتها کاربر دوباره به همان منواصلي ارجاع داده مي شود.
    مشکل اينجاست که در يکي از فرمها به دلايلي دگمه قرمز بستن فرم را غير فعال کرده ام، حالا در صورت انصراف کاربر جهت برگشت به منوي اصلي در "دگمه خروج" تعبيه شده روي اين فرم از دستور unload me نمي توانم استفاده کنم (چون آن هم خودبه خود غير فعال شده). به هيچ عنوان از hide هم نبايد استفاده گردد. مجبور شده ام از end استفاده کنم، ولي در اين صورت به صفحات خود اکسل بر مي گرديم! کاري مي شود کرد؟
    يک فايل ضميمه مي کنم، userform3 مشکلي ندارد هم با دگمه خروج و هم با ضربدر قرمز به منوي اصلي باز مي گرديم.
    ولي userform2 چون ضربدر قرمزش غير فعال است در دگمه خروج اگر unload me بنويسم کار نمي کند! Hide هم نبايد بشود، در نتيجه end نوشته ام ولي صفحات اکسل در دسترس قرار مي گيرد!
    فایل های پیوست شده
    [SIGPIC][/SIGPIC]
  • ali.b

    • 2014/01/12
    • 798

    #2
    شما از این نمونه کد استفاده کنید مشکلتون حل میشه
    اینو در فسمت thisworkbook بنویسید
    کد:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)Sheet2.Visible = xlSheetVeryHidden
    Sheet3.Visible = xlSheetVeryHidden
    Sheet4.Visible = xlSheetVeryHidden
    Sheet5.Visible = xlSheetVeryHidden
    Sheet6.Visible = xlSheetVeryHidden
    Sheet7.Visible = xlSheetVeryHidden
    Sheet8.Visible = xlSheetVeryHidden
    Sheet9.Visible = xlSheetVeryHidden
    Sheet10.Visible = xlSheetVeryHidden
    Sheet11.Visible = xlSheetVeryHidden
    Sheet12.Visible = xlSheetVeryHidden
    Sheet13.Visible = xlSheetVeryHidden
    Sheet14.Visible = xlSheetVeryHidden
    Sheet15.Visible = xlSheetVeryHidden
    Sheet16.Visible = xlSheetVeryHidden
    Sheet17.Visible = xlSheetVeryHidden
    Sheet1.Select
    Application.DisplayAlerts = False
    If Me.Saved = False Then Me.Save
    Application.Quit
    End Sub
    Private Sub Workbook_Open()
    Application.Windows.Application.Visible = False
    Sheet2.Visible = xlSheetVeryHidden
    Sheet3.Visible = xlSheetVeryHidden
    Sheet4.Visible = xlSheetVeryHidden
    Sheet5.Visible = xlSheetVeryHidden
    Sheet6.Visible = xlSheetVeryHidden
    Sheet7.Visible = xlSheetVeryHidden
    Sheet8.Visible = xlSheetVeryHidden
    Sheet9.Visible = xlSheetVeryHidden
    Sheet10.Visible = xlSheetVeryHidden
    Sheet11.Visible = xlSheetVeryHidden
    Sheet12.Visible = xlSheetVeryHidden
    Sheet13.Visible = xlSheetVeryHidden
    Sheet14.Visible = xlSheetVeryHidden
    Sheet15.Visible = xlSheetVeryHidden
    Sheet16.Visible = xlSheetVeryHidden
    Sheet17.Visible = xlSheetVeryHidden
    Sheet1.Select
    UserForm2.Show
    End Sub
    این یکی هم از کار انداختن ضربدر بدون هیچ دردسری

    کد:
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = vbFormControlMenu Then Cancel = 1
    End Sub
    این کد رو در قسمت کد اون یوزر فرم مد نظر بزارین حله
    [CENTER]
    [/CENTER]

    کامنت

    چند لحظه..