السلام عليكم ورحمة الله وبركاته
أقدم لكم كود يقوم بإنشاء مصنف منفصل لكل ورقة عمل في نفس مسار المصنف الحالي
بفرض أن لديك أربعة أوراق عمل ( الأول Main - الثاني Data - الثالث Search - الرابع Result) ، وبعض أوراق العمل يحتوي على معادلات ، والبعض يحتوي على أكواد في حدث المصنف
والمطلوب تصدير كل ورقة عمل إلى مصنف جديد وتحويل المعادلات إلى قيم ، والتخلص من الأكواد الموجودة في حدث ورقة العمل
عند تنفيذ الكود يبدأ في نسخ كل ورقة عمل ويسميها باسمها كمصنف جديد في نفس مسار المصنف الحالي ، ويحول المعادلات إلى قيم ثم يحذف الكود الموجود في حدث ورقة العمل ، ثم أخيراً يقوم الكود بإغلاقه
عند تنفيذ الكود يبدأ في نسخ كل ورقة عمل ويسميها باسمها كمصنف جديد في نفس مسار المصنف الحالي ، ويحول المعادلات إلى قيم ثم يحذف الكود الموجود في حدث ورقة العمل ، ثم أخيراً يقوم الكود بإغلاقه
وأخيراً إليكم الكود الذي يؤدي هذه المهمة
Sub Split_Workbook()
Dim xPath As String
Dim Sh As Worksheet
Dim strName As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
For Each Sh In ThisWorkbook.Worksheets
Sh.Copy
ActiveWorkbook.ActiveSheet.UsedRange.Value = ActiveWorkbook.ActiveSheet.UsedRange.Value
strName = Sh.CodeName
With ActiveWorkbook.VBProject.VBComponents(strName).CodeModule
.DeleteLines 1, .CountOfLines
End With
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" & Sh.Name & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.ActiveWorkbook.Close False
Next Sh
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
تسلم ايدك يا حبيب الكل
ردحذفسلمت من كل سوء أخي الحبيب حسن
ردحذف