terima kasih, nanti saya coba dulu ya oh iya terkait dengan remove duplikat apakah data yang tidak diremove itu sesuai dengan yang kita inginkan ya
misal data P-003;GHI P-003;OPQ maka yang diremve adalah yang awal P-003;GHI Pada 26 November 2015 22.41, 'Mr. Kid' mr.nm...@gmail.com [belajar-excel] < belajar-excel@yahoogroups.com> menulis: > > > 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 >> > > >