بسم الله الرحمن الرحيم
Get the List of File Names and Extension from a Folder in Excel VBA
اليوم نعرض عليكم طريقة لعرض الملفات الموجودة في مسار معين داخل الاكسيل وتحديد الامتداد المراد عرضه
أولا نقوم بفتح مصنف جديد ونفتح محرر الاكواد
ونقوم بانشاء Module جديد ونضع هذا الكود بداخله
الصورة مصغرة أنقر هنا لرؤيتها بحجمها الطبيعي 1037*623
CODE
Function GetFileNamesbyExt(ByVal FolderPath As String, FileExt As String) As Variant
Dim Result As Variant
Dim i As Integer
Dim MyFile As Object
Dim MyFSO As Object
Dim MyFolder As Object
Dim MyFiles As Object
Set MyFSO = CreateObject("Scripting.FileSystemObject")
Set MyFolder = MyFSO.GetFolder(FolderPath)
Set MyFiles = MyFolder.Files
ReDim Result(1 To MyFiles.Count)
i = 1
For Each MyFile In MyFiles
If InStr(1, MyFile.Name, FileExt) <> 0 Then
Result(i) = MyFile.Name
i = i + 1
End If
Next MyFile
ReDim Preserve Result(1 To i - 1)
GetFileNamesbyExt = Result
End Function
وبعدها نقوم بوضع هذه الدالة داخل الاكسيل وتحديد خلية المسار وخلية الامتداد المراد عرضهم
وسحب المعادلة الى نطاق يسمح بعرض جميع الملفات بمعنى اذا كان محتوى الفولدر يقدر ب 100 ملف فنسحب المعادلة على عدد صفوف تغطى هذا الرقم
المعادلة كالاتي
CODE
=IFERROR(INDEX(GetFileNamesbyExt($A$1;$B$1);ROW()-1);"")
حيث ان A1 مسار الفولدر
و B1 الامتداد المراد عرضه
اما ROW()-1)
لوضع اول معادلة بالصف الثاني لكي يتم عرض اول ملف داخل الفولدر بطريقة صحيحة وعدم تجاهل احد الملفات
اذا اردت وضع المعادلة في صف اخر وليكن مثلا الصف 3
يتم التعديل على ROW()-1 وجعلها ROW()-2
حتى لا يتم تجاهل اول ملفات داخل الفولدر
لتظهر لنا الملفات كما بالصورة
الصورة مصغرة أنقر هنا لرؤيتها بحجمها الطبيعي 437*462
لتحميل الملف بالمرفقات