mba siti,
Saya mau menambahkan, mungkin saja bisa menjadi bekal kalo nanti mau cari size
file/foldernya.
Script yang ditambahkannya adalah di
.Cells(r, 1) = r '= nomor urut
.Cells(r, 2) = MyFile.Name '= ambil Name-nya!, Tulis di cell
.cells(r,3)=round (Myfile.size/1000000,2) & " MB" ' = Sizenya berapa
Regards,
IF
-----Original Message-----
From: [email protected] [mailto:[email protected]]on Behalf Of
siti Vi
Sent: Tuesday, March 03, 2009 5:58 PM
To: [email protected]
Subject: Re: ]] XL-mania [[ Mengambil data dalam suatu sheet untuk diprint
berdasarkan kriteria tertentu
mohon maaf para XL-maniawan XL-maniawati..
'kepala' thread ini sudah berumur 1 pekan, dan sebetulnya sudah "game-over"
dengan adanya solusi dari mas kid yg memanfaatkan servis winAPI.
tapi siti masih mauk ngeyel ceriwis soal how-to-loop files in a folder
seperti yg juga sudah di singgung mas kid: bisa dgn memanfaatkan FSO
(objek sistem per-file-an) yg memang bisa diakses melalui vba.
( 'ancen aku 'cah ngeyelan o'..)
akhir kalimat = 'o' itu singkatan dan "kok", dan diucapkan secara singkat
segera setelah
kata di depannya hampiir tanpa jedah. ini salah satu slank semarangan...
makro berikut ini pernah muncul di milis XL-mania kita;
walaupun tidak persis sama UJUNG tujuannya dengan request pak herry s.,
tetapi modifikasinya tidak sulit karena hanya urusan mengubah instuksi:
mencatat nama file diganti menjadi membuka file.
sedangkan di tahap itu; koleksi-files dlm sebuah folder tertentu (where: FOLDER
dipilih
sendiri oleh user melalui dialogBox BrowseForFolder) sudah di depan mata.
mudah mudahan cukup berharga sekedar untuk menambah koleksi makro kita...
---------------------------
Sub ListFilesNameOfSpecifiedFolder()
'----------------------------------------------------
' siti Vi / bluewater 21 april 2008
' mendaftar NamaFiles dari sebuah folder tertentu,
' truzz ditulis di ActiveSheet's cells
'----------------------------------------------------
Dim fBrowser As BrowseInfo
Dim PathDirNm As String
Dim szTitle As String
Dim lpIDList As Long
Dim FSO As Object
Dim FOL As Object
Dim MyFile As Object
Dim r As Integer
'== BAGIAN I: Urusan mencari Folder =========
'-- (user pilih folder melalui BrowseInfo)----------
szTitle = "©tv: Pilih salah satu Folder..."
With fBrowser
.hWndOwner = Application.Hwnd
.lpszTitle = lstrcat(szTitle, "")
.ulFlags = BI_RetuOnlyFSDir + BI_NoGoBelowDomain
End With
lpIDList = SHBrowseForFolder(fBrowser)
If (lpIDList) Then
PathDirNm = Space(Max_Path)
SHGetPathFromIDList lpIDList, PathDirNm
PathDirNm = Left(PathDirNm, InStr(PathDirNm, vbNullChar) - 1)
Range("D2") = PathDirNm ' hanya untuk info di sheet
Else '( jika lpIDList = 0 / false Then )
Exit Sub
End If
'== BAGIAN II: ===============================
'-- Urusan mendaftar fileName ke sheet --------------
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FOL = FSO.GetFolder(PathDirNm).Files
' hapus area data
Range("b6").CurrentRegion.Offset(1, 0).ClearContents
' - kunjungi semua Anggota Koleksi (file)
With Range("B6")
For Each MyFile In FOL
r = r + 1
.Cells(r, 1) = r '= nomor urut
.Cells(r, 2) = MyFile.Name '= ambil Name-nya!, Tulis di cell
Next
End With
End Sub
' ========================================================
' siti's Note:
' ========================================================
' UDT (user define type) tidak di tampakkan di mail ini; di VBE anda bisa
' melihatnya di module bernama UDT
'---------------------------------------------------------------------------------------------------
'
' karena di dalam sebuah folder bisa mengandung BANYAK files
' maka dapat dikatakan: file-file dlm folder tsb adalah SEBUAH Object
Collection,
' di mana setiap File adalah anggota dari Koleksi (variable FOL) tsb
'
' seperti BIASANYA, mengakses koleksi harus dng struktur Looping.
' pilihan paling cocok adalah struktur For Each - Next
' dan sebelumnya harus kita siapkan sebuah variable-Object
' yg mewakili Tiap Anggota tsb. (= variable MyFile)
'
' dengan cara itu, di tiap [step loop] kita hanya perlu menyebut
' [ Variables DOT Property ] saja
' (dlm contoh di atas = MyFile.Name )
' sambil "menuliskan" nya ke sebuah cell yg nilai Row nya kita
' "naikkan" secara beruntun dengan sebuah Counter [r]
' (anda bilang : "secara berurutan sesuai jumlah file yg ada")
'
' Cell C5 (tempat hasil /nama-nma file akan dituliskan) dapat
' anda modif. sesuai tempat di sheet yg menurut anda lebih tepat
'------------------------------------------------------------------
' jurangmangu, hari kartini, 21 april 2008
'------------------------------------------------------------------
2009/2/26 Herry Sutjipto < herry...@cv- <mailto:[email protected]>
aldira.co.id>
Hallo para pakar XL-mania ……
Tolong dong …. Saya lagi pusing …. Manggil data untuk di print ulang.
Bisa memasukkan data, tapi mau manggil yang sudah terlanjur masuk nggak bisa ….
Problemnya terlampir dalam worksheet. Ada dua problema di “Sheet(Input_V)” dan
“Sheet(Print_V)”.
Terima kasih sebelumnya.
Best regards.
Herry Sutjipto