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
> 
>

Kirim email ke