![]() |
مشكلة في تشغيل كودين معاً
1 مرفق
السادةالاعزاء المحترمين
قمت بتصميم شيت اكسيل بسيط لمتابعة عمليات التقسيط للمنتجات وأردت ان امنع نقل أو نسخ البرنامج أو تشغيله علي أي جهاز أخر فأستخدمت كود لربط الشيت بالسريال نمبر للهارد ديسك خاصتي. واستخدمت الكود التالي:- Private Sub Workbook_Open() If Hex(CreateObject("Scripting.FileSystemObject").Dri ves.Item("C:").SerialNumber) <> "2E7FAD83" Then MsgBox "Attention !Error thanks to call me ", vbCritical, "Violation des droits du programme" ThisWorkbook.Close savechanges = True End If End Sub ثم وجدت انه لابد انه لابد من اجبار المستخدم من تنشط عمل الماكرو قبل فتح الملف وذلك لتشغيل الكود السابق فاستخدمت الكود التالي Const WelcomePage = "Macros" Private Sub Workbook_BeforeClose(Cancel As Boolean) 'Turn off events to prevent unwanted loops Application.EnableEvents = False 'Evaluate if workbook is saved and emulate default propmts With ThisWorkbook If Not .Saved Then Select Case MsgBox("Do you want to save the changes you made to '" & .Name & "'?", _ vbYesNoCancel + vbExclamation) Case Is = vbYes 'Call customized save routine Call CustomSave Case Is = vbNo 'Do not save Case Is = vbCancel 'Set up procedure to cancel close Cancel = True End Select End If 'If Cancel was clicked, turn events back on and cancel close, 'otherwise close the workbook without saving further changes If Not Cancel = True Then .Saved = True Application.EnableEvents = True .Close savechanges:=False Else Application.EnableEvents = True End If End With End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 'Turn off events to prevent unwanted loops Application.EnableEvents = False 'Call customized save routine and set workbook's saved property to true '(To cancel regular saving) Call CustomSave(SaveAsUI) Cancel = True 'Turn events back on an set saved property to true Application.EnableEvents = True ThisWorkbook.Saved = True End Sub Private Sub Workbook_Open() 'Unhide all worksheets Application.ScreenUpdating = False Call ShowAllSheets Application.ScreenUpdating = True End Sub Private Sub CustomSave(Optional SaveAs As Boolean) Dim ws As Worksheet, aWs As Worksheet, newFname As String 'Turn off screen flashing Application.ScreenUpdating = False 'Record active worksheet Set aWs = ActiveSheet 'Hide all sheets Call HideAllSheets 'Save workbook directly or prompt for saveas filename If SaveAs = True Then newFname = Application.GetSaveAsFilename( _ fileFilter:="Excel Files (*.xls), *.xls") If Not newFname = "False" Then ThisWorkbook.SaveAs newFname Else ThisWorkbook.Save End If 'Restore file to where user was Call ShowAllSheets aWs.Activate 'Restore screen updates Application.ScreenUpdating = True End Sub Private Sub HideAllSheets() 'Hide all worksheets except the macro welcome page Dim ws As Worksheet Worksheets(WelcomePage).Visible = xlSheetVisible For Each ws In ThisWorkbook.Worksheets If Not ws.Name = WelcomePage Then ws.Visible = xlSheetVeryHidden Next ws Worksheets(WelcomePage).Activate End Sub Private Sub ShowAllSheets() 'Show all worksheets except the macro welcome page Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If Not ws.Name = WelcomePage Then ws.Visible = xlSheetVisible Next ws Worksheets(WelcomePage).Visible = xlSheetVeryHidden End Sub والمشكلة الان ان الكودين لا يعملان معاً مع العلم انه عند تطبيق كل كود علي حدا يعمل بكفاءة وانا بخبرتي القليلة أعتقد ان الخطأ في وجود أمرين بنفس الاسم Private Sub Workbook_Open() فأرجوا من جهابذة المنتدي أفادتي وجعل لكودين يعملان معاً مرفق الشيت المراد تطبيق الكودين عليه |
مشاركة: مشكلة في تشغيل كودين معاً
يا جهابذه الاكسيل أفدونا
ولكم الشكر والتقدير |
الساعة الآن 09:26 AM |
Powered by Nile-Tech® Copyright ©2000 - 2025