Wa'alaikumussalam wr wb Hai Himmah,
Misal : A. data baru ada di sheet 'baru', berupa data 17 kolom mulai dari kolom A, tetapi yang ditulis ke txt file hanya kolom A dan B. Record mulai baris 2 karena baris 1 nya header. Ada tombol di sheet 'baru' menjalankan proses penulisan ke txt file. B. data lama di txt file bernama DataPelanggan.txt di folder yang sama dengan si workbook data baru berisi 2 kolom dengan delimiter titik koma Kira-kira prosesnya begini : 1. buat sheet temporary (misal bernama temp), tapi yang aktif tetap sheet 'baru' 2. copy data (tanpa header) dari sheet 'baru' kolom A dan B ke sheet temp kolom A, simpan jumlah baris yang di-copy 3. baca txt file dan tulis ke sheet temp kolom A dan B di baris baru (menambahkan data hasil paste dari sheet 'baru') 4. di sheet temp, lakukan remove duplicate berdasar kolom A dan pastikan tanpa header 5. di sheet temp, lakukan sort asc berdasar kolom A dan B dan pastikan tanpa header 6. buat txt baru, lalu loop setiap baris berisi data di sheet temp, dan tulis ke txt baru tersebut 7. buang sheet temp 8. selesai (beri pesan ke user bila perlu) VBA nya begini : (sesuaikan dengan keadaan setempat, termasuk meletakkannya di dalam prosedur mana yang akan Anda gunakan) dim shtBaru as worksheet, shtTemp as worksheet, lLastRow as long dim iFile as integer, sLine as string 1. buat sheet temporary (misal bernama temp) set shtBaru=sheets("baru") set shtTemp=sheets.add shtBaru.activate 2. copy data (tanpa header) dari sheet 'baru' kolom A dan B ke sheet temp kolom A with shtBaru range( .cells( 2,2) , .cells( .rows.count , 1 ).end(xlup) ).copy shttemp.range("a1").pastespecial xlpastevalues llastrow=shttemp.usedrange.rows.count end with >> Proses 3 sampai 7 akan bekerja di sheet Temp with shtTemp 'kerja di sheet temp 3. baca txt file dan tulis ke sheet temp kolom A dan B di baris baru (menambahkan data hasil paste dari sheet 'baru') ifile=freefile 'create id file baru untuk proses io file open thisworkbook.path & "\datapelanggan.txt" for input as ifile 'buka file sebagai bahan input do while not eof(ifile) 'loop setiap baris dalam file sampai karakter end of file line input #ifile, sline 'baca sebaris utuh dan simpan ke variabel sLine llastrow=llastrow+1 'baris terakhir di sheet temp naik satu karena akan ada baris dari txt yang masuk .cells( llastrow , 1 ).resize(1,2).value = split( sline , ";" ) 'tulis setiap fields dari sebaris txt ke sheet temp loop 'ke sequence loop berikutnya close ifile 'tutup file 4. di sheet temp, lakukan remove duplicate berdasar kolom A dan pastikan tanpa header .range("a1").currentregion.removeduplicates 1,xlno 'remove duplicate dengan key kolom ke-1 alias kolom A, tanpa header 5. di sheet temp, lakukan sort asc berdasar kolom A dan B dan pastikan tanpa header .range("a1").currentregion.sort .cells(1,1),xlascending,.cells(1,2),order2:=xlascending,header:=xlno,orientation:=xlsortcolumns 6. buat txt baru, lalu loop setiap baris berisi data di sheet temp, dan tulis ke txt baru tersebut ifile=freefile 'create id file baru untuk proses io file open thisworkbook.path & "\datapelanggan.txt" for output as ifile 'buka file sebagai bahan input for llastrow=1 to .usedrange.rows.count 'loop setiap baris di sheet temp if len(.cells(llastrow,1).value)<>0 then 'cek bahwa ada isinya print #ifile , .cells(llastrow,1).value & ";" & .cells(llastrow,2).value endif 'selesai blok kondisi ada isinya next llastrow 'ke baris berikutnya close ifile 'tutup file 7. buang sheet temp application.displayalerts=false 'suruh Excel supaya ndak cerewet dulu .delete 'buang sheet temp application.displayalers=true 'ijinkan Excel untuk kembali cerewet end with 'selesai kerja di sheet temp 8. selesai (beri pesan ke user bila perlu) msgbox "Selesai.",vbinformation,"Judul pesan" *** silakan diatur sendiri semua trap error dan environment Excel dalam mengerjakan proses di atas Wassalamu'alaikum wr wb Kid 2015-11-26 20:53 GMT+07:00 him mah himmah....@gmail.com [belajar-excel] < belajar-excel@yahoogroups.com>: > > > Assalamu'alaikum. Wr. Wb > dear all > > Mau tanya terkait mengedit text file > > saya punya file misal DataPelanggan.txt > isinya terdiri dari Kode Pelanggan dan Nama pelanggan > yang dipisahkan oleh tanda titik koma (;) > isinya seperti ini: > > P-002;ABC > P-001;DEF > P-003;GHI > P-007;XYZ > > kalau dari excel > kita mencari kode pelanggan tertentu > apakah kode pelanggan tersebut > sudah ada atau belum dalam file DataPelanggan.txt > > misal kriterianya kode pelanggan P-003 > ternyata kode pelanggan tersebut sudah ada > sehingga proses selanjutnya > adalah melakukan edit file text tersebut > misal untuk P-003 nama pelanggannya diganti dengan nama OPQ > > sehingga file text tersebut isinya menjadi > > P-002;ABC > P-001;DEF > P-003;OPQ > P-007;XYZ > > kemudian jika kita masukan kode pelanggan P-004 > ternyata dalam file DataPelanggan.txt > kode tersebut tidak ditemukan > sehingga proses selanjutnya adalah menambahkan data baru > misal kode P-004 nama pelanggan KLM > sehingga file DataPelanggan.txt > isninya menjadi > > P-002;ABC > P-001;DEF > P-003;OPQ > P-007;XYZ > P-004;KLM > > kira-kira untuk yang seperti ini > VBA nya bagaimana? > > ada satu lagi > bisa tidak ya kita melakukan sort data > yang ada di file DataPelanggan.txt > sehingga data di file tersebut menjadi urut > > P-001;DEF > P-002;ABC > P-003;OPQ > P-004;KLM > P-007;XYZ > > terima kasih > >