طارق محمود قام بنشر يناير 6, 2015 قام بنشر يناير 6, 2015 السلام عليكم الله عليك ياياسر وعلي كل اللي مشاركين معاك أولا : حبيت اسجل اعجابي بالفكرة وبالجهد المتميز الذي يراه اي زائر للموضوع ثانيا: وللأسف إيدي فاضية ، ومش عاوز تعليق لأني ماعنديش وقت وبعدين فكرت في كودين لقيتهم موجودين بالفعل في الملف إسمحوا لي وسامحوني جميعا وربنا يوفقكم
ياسر خليل أبو البراء قام بنشر يناير 6, 2015 الكاتب قام بنشر يناير 6, 2015 يكفينا منك أخي وحبيببي وأستاذي طارق مرورك بالموضوع فهذا شرف لنا جميعاً ، وكلماتك تعتبر محفزة لنا على المضي قدماً في المشروع ولن أطلب منك أكواد ، طالما أن وقتك لا يسمح ولكن إذا سمح وقتك ، فأطلب منك ألا تنسانا والحمد لله أنك فكرت بكودين ووجدتهما بالمكتبة (هذا في حد ذاته يعتبر إنجاز كبير للمشروع ...لقد بدأت زهوره تتفتح) مشكور على مروك العطر يا باشمهندس ، وبارك الله فيك 2
Yasser Fathi Albanna قام بنشر يناير 6, 2015 قام بنشر يناير 6, 2015 من خلال هذا الكود المرفق تحويل خلايا الاكسيل إلى صورة كل ما عليك فتح الاكسيل واضافة موديول وضع بداخلة الكود بالمرفق ثم قم بتشغيل الماكرو وشاهد Private Declare Function ShellExecute _ Lib "shell32.dll" _ Alias "ShellExecuteA" ( _ ByVal hwnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long) _ As Long Sub SaveLogoAsGif() Dim MyChart As Chart Dim objPict As Object Dim RgCopy As Range On Error Resume Next Set RgCopy = Application.InputBox("Select the range to copy / Saveas", "Selection Save", Selection.Address, Type:=8) If RgCopy Is Nothing Then Exit Sub On Error GoTo 0 RgCopy.CopyPicture Appearance:=xlScreen, Format:=xlBitmap ActiveSheet.PasteSpecial Format:="Bitmap" Set objPict = Selection With objPict .CopyPicture 1, 1 ':=1 Set MyChart = ActiveSheet.ChartObjects.Add(1, 1, .Width + 8, .Height + 8).Chart End With With MyChart .Paste .Export ThisWorkbook.Path & Application.PathSeparator & "Temp.gif" .Parent.Delete End With '// cleanup objPict.Delete Set RgCopy = Nothing Set objPict = Nothing '// Now lets View it ShellExecute 0, vbNullString, ThisWorkbook.Path & Application.PathSeparator & "Temp.gif", _ vbNullString, vbNullString, vbMaximizedFocus End Sub 1
ياسر خليل أبو البراء قام بنشر يناير 7, 2015 الكاتب قام بنشر يناير 7, 2015 تمت الإضافة أخي ياسر البنا ..بارك الله فيك على هذه الأكواد الرائعة ربنا يجعله في ميزان حسناتك لقد أصبحت من المؤسسين لهذه المكتبة ، واحتسب الأجر عند الله أن يكون هذا العمل صدقة جارية لك تنفعك بعد مماتك أطال الله عمرك وطرح البركة فيه وجعل أعمالك كلها صالحة ولوجهه خالصة 1
ibn_egypt قام بنشر يناير 7, 2015 قام بنشر يناير 7, 2015 أخى الفاضل وأستاذي الكريم أ.ياسر حينما راجعت الأكواد بالمكتبة وجدت ان إخواننا المبتدئين ومن يريدون وضع قدمهم على أول سلم لتعلم ال VBA والأكواد ليس لهم نصيب كبير فمعظم الاكواد ما شاء الله دسمة ولهذا قمت بإعداد هذا الملف المبسط جدا لإخواننا المبتدئين به بعض الأكواد البسيطة للمهام الأساسية التى يقوم بها أى مستخدم للإكسل .. اتمنى منك أستاذي الفاضل مراجعتها واضافتها للمكتبة ولك كل الحق في تعديل ما تريد واضافة أو حذف ما تريد بما يحقق الهدف العام خالص تحياتي VBACodes2.rar 3
Yasser Fathi Albanna قام بنشر يناير 7, 2015 قام بنشر يناير 7, 2015 أشكرك أخى وأستاذى الفاضل / ياسر خليل على دعائك الطيب أدام الله عمرك وجعلك الله زخرا لهذا المنتدى العظيم وزادك الله من العلم الكثير والكثير 1
شوقي ربيع قام بنشر يناير 7, 2015 قام بنشر يناير 7, 2015 السلام عليكم اعتذر لك اخي ياسر عن غيابي الفترة الي فاتت هذا كود مميز لتعبئة اليست بوكس أو الكمبو بكس من عمود بدون تكرار Option Explicit Private Sub UserForm_Initialize() Dim i As Integer Dim Valeurs As Variant Dim sDic As Object: Set sDic = CreateObject("Scripting.Dictionary") Me.ListBox1.Clear Me.ComboBox1.Clear With Sheets(1) Valeurs = .Range("A1:A100").Value For i = LBound(Valeurs) To UBound(Valeurs) If Not IsEmpty(Valeurs(i, 1)) Then sDic(Valeurs(i, 1)) = "" Next i End With If IsArray(Valeurs) Then ListBox1.List = sDic.keys: ComboBox1.List = sDic.keys End Sub تحياتي للجميع RABIECHAOUKI.rar 1
الجموعي قام بنشر يناير 7, 2015 قام بنشر يناير 7, 2015 السلام عليكم ورحمة الله تعالى وبركاته كود رائع لتنسيق خصائص الكمبوبوكس وتعبئته بمدى ديناميكي من عمود قابل للزيادة أو النقصان Private Sub UserForm_Initialize() ' متغير خاص ببايانات الكمبوبوكس Dim J As Long 'متغير خاص بأوراق العمل Dim ws As Worksheet ' تحديد ورقة العمل المراد إستدعاء البيانات Set ws = Sheets(1) 'خصائص الكمبوبوكس With Me.ComboBox1 ' خاص بظهور الأعمدة في الكمبوبوكس .ColumnCount = 1 ' عدد الصفوف التي المراد إظهارها .ListRows = 12 'خاص بتنسيق النص(محاذاة لليمين , توسيط , محاذاة لليسار) .TextAlign = fmTextAlignCenter 'تنسيق خصائص الخط في الكمبوبوكس With .Font 'إسم الخط .Name = "Times New Roman" 'حجم الخط .Size = 12 'تغميق الخط .Bold = True End With 'إلى غاية أخر العمود A يساوي الصف الثاني من العمود j متغير For J = 2 To ws.Range("A" & Rows.Count).End(xlUp).Row 'بداية من الصف الثاني إلى غاية أخر بيانات في العمود A كتابة بيانات الموجودةفي العمود .AddItem ws.Range("A" & J) Next J End With End Sub 1
Yasser Fathi Albanna قام بنشر يناير 8, 2015 قام بنشر يناير 8, 2015 (معدل) كود تحويل صيغ الإكسيل إلى المطلقة أو النسبية Sub MakeAbsoluteorRelative() 'Written by OzGrid Business Applications 'www.ozgrid.com Dim RdoRange As Range Dim i As Integer Dim Reply As String 'Ask whether Relative or Absolute Reply = InputBox("Change formulas to?" & Chr(13) & Chr(13) _ & "Relative row/Absolute column = 1" & Chr(13) _ & "Absolute row/Relative column = 2" & Chr(13) _ & "Absolute all = 3" & Chr(13) _ & "Relative all = 4", "OzGrid Business Applications") 'They cancelled If Reply = "" Then Exit Sub On Error Resume Next 'Set Range variable to formula cells only Set RdoRange = Selection.SpecialCells(Type:=xlFormulas) 'determine the change type Select Case Reply Case 1 'Relative row/Absolute column For i = 1 To RdoRange.Areas.Count RdoRange.Areas(i).Formula = _ Application.ConvertFormula _ (Formula:=RdoRange.Areas(i).Formula, _ FromReferenceStyle:=xlA1, _ ToReferenceStyle:=xlA1, ToAbsolute:=xlRelRowAbsColumn) Next i Case 2 'Absolute row/Relative column For i = 1 To RdoRange.Areas.Count RdoRange.Areas(i).Formula = _ Application.ConvertFormula _ (Formula:=RdoRange.Areas(i).Formula, _ FromReferenceStyle:=xlA1, _ ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsRowRelColumn) Next i Case 3 'Absolute all For i = 1 To RdoRange.Areas.Count RdoRange.Areas(i).Formula = _ Application.ConvertFormula _ (Formula:=RdoRange.Areas(i).Formula, _ FromReferenceStyle:=xlA1, _ ToReferenceStyle:=xlA1, ToAbsolute:=xlAbsolute) Next i Case 4 'Relative all For i = 1 To RdoRange.Areas.Count RdoRange.Areas(i).Formula = _ Application.ConvertFormula _ (Formula:=RdoRange.Areas(i).Formula, _ FromReferenceStyle:=xlA1, _ ToReferenceStyle:=xlA1, ToAbsolute:=xlRelative) Next i Case Else 'Typo MsgBox "Change type not recognised!", vbCritical, _ "OzGrid Business Applications" End Select 'Clear memory Set RdoRange = Nothing End Sub تم تعديل يناير 8, 2015 بواسطه Eng : Yasser Fathi Albanna 1
Yasser Fathi Albanna قام بنشر يناير 8, 2015 قام بنشر يناير 8, 2015 كود عند تفعيل الماكرو يقوم بإضافة فى كل تفعيل شيت جديد Private Sub GenerateNewWorksheet() Dim ActSheet As Worksheet Dim NewSheet As Worksheet ' Prevents screen refreshing. Application.ScreenUpdating = False Set ActSheet = ActiveSheet Set NewSheet = ThisWorkbook.Sheets().Add() NewSheet.Move After:=Sheets(ThisWorkbook.Sheets().Count) ActSheet.Select ' Enables screen refreshing. Application.ScreenUpdating = True End Sub 2
Yasser Fathi Albanna قام بنشر يناير 8, 2015 قام بنشر يناير 8, 2015 أ / ياسر وجدت هذا الكود عندى ولكن لا أعرف فى ماذا يستخدم للإستفاده منه Sub TestInputBox() Dim myRange As Range Set myRange = Application.InputBox(Prompt:= _ "Please Select a Range", _ Title:="InputBox Method", Type:=8) If myRange Is Nothing Then ' Range is blank Else myRange.Select End If End Sub
Yasser Fathi Albanna قام بنشر يناير 8, 2015 قام بنشر يناير 8, 2015 كود مسح أى خلايا محددة بها أرقام Sub SmartDel() Application.ScreenUpdating = False Dim selRange As Range Set selRange = Intersect(Selection, ActiveSheet.UsedRange) If selRange Is Nothing Then GoTo exit_SmartDel End If For Each myRange In selRange If IsNumeric(myRange.Formula) = True Then If ActiveSheet.ProtectContents = False Then myRange.MergeArea.ClearContents Else If myRange.Locked = False Then myRange.MergeArea.ClearContents End If End If End If Next myRange exit_SmartDel: Application.ScreenUpdating = True End Sub 1
عماد البشبيشى قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 السادة الافاضل / خالص تقديرى واحترامى وشكرى على كل المجهود الرائع انا مبتدئ فى البرمجة على الكسيل ولدى سؤال لدى فورم بها مجموعة كبيرة من الصفوف ( كل صف عبارة عن مجموعة من الـ text أو الــ combo قمت باضافة اسكرول بار للفورم لكن لا اعرف كيف اتحكم به لسحب الصفحه لاعلى ولاسفل افيدونى افادكم الله ولكم الشكر
ابو تراب قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 السلام عليكم استاذ ياسر هذا كود لتنفيد التغييرات على الشيت في حالة حماية الشيت و مشاركة الملف...ارجوا ان يكون مفيدا تنفيذ الكود في حالة مشاركة ملف الاكسل Sub Button1_Click() بداية الجملة With علي الملف الحالي With ActiveWorkbook .الغاء ظهور رسائل اكسل Application.DisplayAlerts = False .تفعيل الوصول الحصري للملف .ExclusiveAccess .تفعيل ظهور رسائل اكسل Application.DisplayAlerts = True ازالة الحماية للورقة ActiveSheet.Unprotect 111 نسخ الخلية A1 في الخلية A2 [A2] = [A1] حماية الورقة ActiveSheet.Protect 111 . Application.DisplayAlerts = False .تفعيل متابعة التغييرات في الملف المشارك .KeepChangeHistory = True .تفعيل مشاركة الملف .SaveAs Filename:=ActiveWorkbook.FullName, AccessMode:=xlShared . Application.DisplayAlerts = True نهاية الجملة With End With End Sub تشغيل ماكرو في ملف مشارك.zip 1
ابو تراب قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 اكواد التعامل مع جداول الاكسل مرفق ملف للتوضيح Sub btnCreateTable() ' انشاء جدول و تعيين اول سطر كـ اسماء للحقول و اعطاء اسم للجدول ليسهل الوصول اليه Sheet1.ListObjects.Add(xlSrcRange, Range("A1:D9"), , xlYes).Name = "tblStudents" ' الغي الوان الخلفية و اعتمد تنسيق الجدول Range("tblStudents").Interior.ColorIndex = 0 ' الغي فلتر الجدول Range("tblStudents").AutoFilter End Sub Sub btnResetTable() ' الغي الجدول و عده لحالته الاولى (مدى) On Error Resume Next Sheet1.ListObjects("tblStudents").Unlist End Sub Sub btnSortTable() ' ترتيب اسطر الجدول على حسب الاسم With Sheet1.ListObjects("tblStudents").Sort .SortFields.Clear .SortFields.Add _ Key:=Range("tblStudents[[#ALL],[الاسم]]"), _ SortOn:=sortonvalues, _ Order:=xlAscending, _ DataOption:=xlSortNormal Range("tblStudents[#ALL]").Select .Header = xlYes .MatchCase = False .Orientation = xlSortColumns .SortMethod = xlPinYin .Apply End With End Sub Sub btnFilterTable() ' فلترة الحقل الاول (الاسم) و اظهار جميع الطلاب الذين اسمائهم عمر Range("tblStudents").AutoFilter Field:=1, Criteria1:="عمر" End Sub Tables.zip 1
ياسر خليل أبو البراء قام بنشر يناير 9, 2015 الكاتب قام بنشر يناير 9, 2015 بارك الله فيك أخي الغالي ومعلمي شوقي .. لكن لي رجاء بسيط الموضوع صعب أن يقوم به فرد واحد ..رجاء فقط شرح أسطر الكود فيما بعد ولو أسطر بسيطة حتى تتضح الخطوط العريضة للكود أرجو ألا أكون أثقل عليك بطلبي هذا .. وجزيت خير الجزاء أخي الجموعي بوركت وجزيت كل خير .. هكذا يكون العمل شرح ممتاز وكود أروع من شخص متميز .. المداومة سبيل التفوق (لا تنسانا من أكوادك) أخي ياسر البنا جزاكم الله خيراً على الأكواد الدسمة ، ولكن حبذا لو قمت بشرح ولو لأسطر قليلة من الكود .. ورجاء بلاش الأكواد التي لا تعرف لها هدفاً ..ممكن تطرحها في موضوع منفصل حتى تأتي بثمرتها ثم تشارك بها هنا ..عموما أعرف المجهود الذي تبذله لبناء المشروع وأقدر ذلك جيداً. الأخ الكريم عماد نورت المنتدى ..بالنسبة لطلبك اطرح موضوعاً مستقلاًً كي تجد الإجابة لأن الموضوع ليس موضوع للطلبات.. تقبل اعتذاري أخي وحبيبي أبو تراب كنت في انتظار مساهماتك الممتعة ..حقيقة كود مشاركة لملف كنت قد أعددته بالفعل وشرحته ، ولكني فرحت أكثر بشرحك فقررت إزالة شرحي واستبداله بشرحك المتميز بالنسبة للكود الثاني الخاص بالجداول جاري العمل عليه بارك الله فيكم جميعاً إخواني الكرام..
ياسر خليل أبو البراء قام بنشر يناير 9, 2015 الكاتب قام بنشر يناير 9, 2015 (معدل) إخواني الكرام إليكم الإصدار الأخير من مكتبة الصرح الزاخرة بالشرح تمت إضافة حوالي 20 كود جديد .. Codes Library v1.8.rar تم تعديل يناير 9, 2015 بواسطه YasserKhalil
Yasser Fathi Albanna قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 كود تحويل إمتداد Xlsx إلى Xls Sub SaveAllAsXLSX() Dim strFilename As String Dim strDocName As String Dim strPath As String Dim wbk As Workbook Dim fDialog As FileDialog Dim intPos As Integer Dim strPassword As String Dim strWritePassword As String Dim varA As String Dim varB As String Dim colFiles As New Collection Dim vFile As Variant Set fDialog = Application.FileDialog(msoFileDialogFolderPicker) With fDialog .Title = "Select folder and click OK" .AllowMultiSelect = True .InitialView = msoFileDialogViewList If .Show <> -1 Then MsgBox "Cancelled By User", , "List Folder Contents" Exit Sub End If strPath = fDialog.SelectedItems.Item(1) If Right(strPath, 1) <> "\" Then strPath = strPath + "\" End With If Left(strPath, 1) = Chr(34) Then strPath = Mid(strPath, 2, Len(strPath) - 2) End If Set obj = CreateObject("Scripting.FileSystemObject") RecursiveDir colFiles, strPath, "*.xls", True For Each vFile In colFiles Debug.Print vFile strFilename = vFile varA = Right(strFilename, 3) If (varA = "xls" Or varA = "XLS") Then Set wbk = Workbooks.Open(Filename:=strFilename) If wbk.HasVBProject Then wbk.SaveAs Filename:=strFilename & "m", FileFormat:=xlOpenXMLWorkbookMacroEnabled Else wbk.SaveAs Filename:=strFilename & "x", FileFormat:=xlOpenXMLWorkbook End If wbk.Close SaveChanges:=False obj.DeleteFile (strFilename) End If Next vFile End Sub Public Function RecursiveDir(colFiles As Collection, _ strFolder As String, _ strFileSpec As String, _ bIncludeSubfolders As Boolean) Dim strTemp As String Dim colFolders As New Collection Dim vFolderName As Variant 'Add files in strFolder matching strFileSpec to colFiles strFolder = TrailingSlash(strFolder) strTemp = Dir(strFolder & strFileSpec) Do While strTemp <> vbNullString colFiles.Add strFolder & strTemp strTemp = Dir Loop If bIncludeSubfolders Then 'Fill colFolders with list of subdirectories of strFolder strTemp = Dir(strFolder, vbDirectory) Do While strTemp <> vbNullString If (strTemp <> ".") And (strTemp <> "..") Then If (GetAttr(strFolder & strTemp) And vbDirectory) <> 0 Then colFolders.Add strTemp End If End If strTemp = Dir Loop 'Call RecursiveDir for each subfolder in colFolders For Each vFolderName In colFolders Call RecursiveDir(colFiles, strFolder & vFolderName, strFileSpec, True) Next vFolderName End If End Function Public Function TrailingSlash(strFolder As String) As String If Len(strFolder) > 0 Then If Right(strFolder, 1) = "\" Then TrailingSlash = strFolder Else TrailingSlash = strFolder & "\" End If End If End Function 1
Yasser Fathi Albanna قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 كود لعمل نسخة من الشيت الأصلى Sub Copy_ActiveSheet_1() 'Working in Excel 97-2013 Dim FileExtStr As String Dim FileFormatNum As Long Dim Sourcewb As Workbook Dim Destwb As Workbook Dim TempFilePath As String Dim TempFileName As String With Application .ScreenUpdating = False .EnableEvents = False End With Set Sourcewb = ActiveWorkbook 'Copy the sheet to a new workbook ActiveSheet.Copy Set Destwb = ActiveWorkbook 'Determine the Excel version and file extension/format With Destwb If Val(Application.Version) < 12 Then 'You use Excel 97-2003 FileExtStr = ".xls": FileFormatNum = -4143 Else 'You use Excel 2007-2013 Select Case Sourcewb.FileFormat Case 51: FileExtStr = ".xlsx": FileFormatNum = 51 Case 52: If .HasVBProject Then FileExtStr = ".xlsm": FileFormatNum = 52 Else FileExtStr = ".xlsx": FileFormatNum = 51 End If Case 56: FileExtStr = ".xls": FileFormatNum = 56 Case Else: FileExtStr = ".xlsb": FileFormatNum = 50 End Select End If End With ' 'Change all cells in the worksheet to values if you want ' With Destwb.Sheets(1).UsedRange ' .Cells.Copy ' .Cells.PasteSpecial xlPasteValues ' .Cells(1).Select ' End With ' Application.CutCopyMode = False 'Save the new workbook and close it TempFilePath = Application.DefaultFilePath & "\" TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "yyyy-mm-dd hh-mm-ss") With Destwb .SaveAs TempFilePath & TempFileName & FileExtStr, FileFormat:=FileFormatNum .Close SaveChanges:=False End With MsgBox "You can find the new file in " & TempFilePath With Application .ScreenUpdating = True .EnableEvents = True End With End Sub 2
Yasser Fathi Albanna قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 كود فتح إمتداد Xlsm وحفظة بإمتداد Xlsx حتى ولو كان به أكواد Sub Copy_ActiveSheet_2() 'Working in Excel 2000-2013 Dim fname As Variant Dim NewWb As Workbook Dim FileFormatValue As Long 'Check the Excel version If Val(Application.Version) < 9 Then Exit Sub If Val(Application.Version) < 12 Then 'Only choice in the "Save as type" dropdown is Excel files(xls) 'because the Excel version is 2000-2003 fname = Application.GetSaveAsFilename(InitialFileName:="", _ filefilter:="Excel Files (*.xls), *.xls", _ Title:="This example copies the ActiveSheet to a new workbook") If fname <> False Then 'Copy the ActiveSheet to new workbook ActiveSheet.Copy Set NewWb = ActiveWorkbook 'We use the 2000-2003 format xlWorkbookNormal here to save as xls NewWb.SaveAs fname, FileFormat:=-4143, CreateBackup:=False NewWb.Close False Set NewWb = Nothing End If Else 'Give the user the choice to save in 2000-2003 format or in one of the 'new formats. Use the "Save as type" dropdown to make a choice,Default = 'Excel Macro Enabled Workbook. You can add or remove formats to/from the list fname = Application.GetSaveAsFilename(InitialFileName:="", filefilter:= _ " Excel Macro Free Workbook (*.xlsx), *.xlsx," & _ " Excel Macro Enabled Workbook (*.xlsm), *.xlsm," & _ " Excel 2000-2003 Workbook (*.xls), *.xls," & _ " Excel Binary Workbook (*.xlsb), *.xlsb", _ FilterIndex:=2, Title:="This example copies the ActiveSheet to a new workbook") 'Find the correct FileFormat that match the choice in the "Save as type" list If fname <> False Then Select Case LCase(Right(fname, Len(fname) - InStrRev(fname, ".", , 1))) Case "xls": FileFormatValue = 56 Case "xlsx": FileFormatValue = 51 Case "xlsm": FileFormatValue = 52 Case "xlsb": FileFormatValue = 50 Case Else: FileFormatValue = 0 End Select 'Now we can create/Save the file with the xlFileFormat parameter 'value that match the file extension If FileFormatValue = 0 Then MsgBox "Sorry, unknown file extension" Else 'Copies the ActiveSheet to new workbook ActiveSheet.Copy Set NewWb = ActiveWorkbook 'Save the file in the format you choose in the "Save as type" dropdown NewWb.SaveAs fname, FileFormat:= _ FileFormatValue, CreateBackup:=False NewWb.Close False Set NewWb = Nothing End If End If End If End Sub
ياسر خليل أبو البراء قام بنشر يناير 9, 2015 الكاتب قام بنشر يناير 9, 2015 أخي الفاضل ياسر البنا والله أنا مقدر مجهودك..بس للأسف إحنا بكدا بنخرج عن الهدف من المكتبة وهو الشرح أنت ترفق أكواد أكواد بدون شرح ...يا ريت يكون الكود الذي ترفقه مدعوم بالشرح ..خصوصا إنها أكواد دسمة جدا يرجى الرجوع إلى المشاركات السابقة لأني نوهت عن تلك النقطة أكثر من مرة ويصعب علي شرحها حيث أنها أكواد تحتاج لوقت طويل جدا ويمكن تكون صعبة شرحها بالشكل ده
Yasser Fathi Albanna قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 (معدل) كود حماية شيت الإكسل Sub ProtectAll() Dim sh As Worksheet Dim myPassword As String myPassword = "password" For Each sh In ActiveWorkbook.Worksheets sh.Protect Password:=myPassword Next sh End Sub تم تعديل يناير 9, 2015 بواسطه Eng : Yasser Fathi Albanna 1
Yasser Fathi Albanna قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 كود لإلغاء الحماية Sub UnrotectAll() Dim sh As Worksheet Dim myPassword As String myPassword = "password" For Each sh In ActiveWorkbook.Worksheets sh.Unprotect Password:=myPassword Next sh End Sub 1
Yasser Fathi Albanna قام بنشر يناير 9, 2015 قام بنشر يناير 9, 2015 وهذان أيضا كودان حماية لشيت الإكسيل Private Sub Workbook_Open() 'If you have different passwords 'for each Worksheet. Sheets(1).Protect Password:="Secret", _ UserInterFaceOnly:=True Sheets(2).Protect Password:="Carrot", _ UserInterFaceOnly:=True 'Repeat as needed. End Sub Private Sub Workbook_Open() Dim wSheet As Worksheet For Each wSheet In Worksheets wSheet.Protect Password:="Secret", _ UserInterFaceOnly:=True Next wSheet End Sub
ياسر خليل أبو البراء قام بنشر يناير 9, 2015 الكاتب قام بنشر يناير 9, 2015 (معدل) رفعت الراية البيضاء ألا تقرأ المشاركات أخي ياسر ؟؟؟؟؟!! تم تعديل يناير 9, 2015 بواسطه YasserKhalil 1
الردود الموصى بها