Catatan:
* File yg ingin dibuka dibatasi hanya file workbook (ber-extensi *.xls )
kecuali workbook
yg berisi makro yg ditanyakan (ctv_OpenAllFile_in_a_folder.xls)
* Sebelum Looping, kita dapat menyebutkan jumlah ITEM dlm folder; yg dimaksud
dengan
item ialah semua file (type apa pun) dan Sub Folders.
* Jumlah file yg berextensi *.xls hanya dapat disebutkan setelah LOOPING.
* Dalam contoh di bawah ini, setelah file dibuka, akan disela dengan pemunculan
MessageBox; maksodnya untuk memberi kesempatan anda melihat bahwa file telah
dibuka;
kemudian file tsb ditutup kembali sebelum membuka file berikutnya.
Anda dapat menghapus bagian ini (dengan konsekwensi semua file dlm folder
walaupun
berisi ratusan/ribuan file xls akan dibuka semua )
Contoh ini (hanya salah satu cara dari banyak cara lain) telah sering diposted
ke milis
(dgn berbagai variasi) dlm rangka menanggapi berbagai kasus.
' ---------------
Sub OpenAllFileInaFolder()
' siti Vi / membuka semua Files pada folder tertentu
'----------------------------------------------------
Dim FSO As Object, FOL As Object, n as Integer
Dim MyFile As Object, fPath As String
' nama Folder (path lengkap) dapat anda edit misal
' fPath = "D\MyFolder\MySubFOlder\MyProject"
fPath = ThisWorkbook.Path
On Error GoTo Akhir
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FOL = FSO.GetFolder(fPath).Files
For Each MyFile In FOL
If Not MyFile.Name = ThisWorkbook.Name Then
If UCase(Right(MyFile.Name, 4)) = ".XLS" Then
n = n + 1
Workbooks.Open Filename:=MyFile.Name
MsgBox "file ini akan ditutup sebelum membuka file berikutnya"
Workbooks(MyFile.Name).Close
End If
End If
Next
MsgBox "Jumlah workbooks (*.xls) : " & n
Akhir:
End Sub
--------------------------------------------------------------------------------
----- Original Message -----
From: Yasir Arafat
To: [email protected]
Sent: Friday, February 26, 2010 10:31 AM
Subject: ]] XL-mania [[ Open file (all in folder) pakai macro
Dear Pakar XL
Bagaimana code di macro sehingga macro dapat membaca jumlah file yang
ada di folder,
kemudian membuka file tersebut satu persatu.
Selama ini saya selalu menggunakan code:
Dim FileData As String
FileData = Application.GetOpenFilename("Excel File,*.xls")
Workbooks.Open FileName:=FileData
Namun dengan perintah itu saya harus mengklik file yang saya inginkan
(dalam folder yang sama) dan mengulang kembali perintah tersebut untuk
file yang kedua
dan seterusnya.
Memang jika file dalam folder tersebut sedikit, tidak terlalu
merepotkan, tapi apabila
sudah mulai bertambah, akan merepotkan dan sangat memungkinkan membuka
file
yang sudah dibuka sebelumnya, sehingga data yang diproses menjadi
berganda.
Terima kasih atas sharing ilmunya
Best Regard
Yasir