Hai Dhiya Nabill,
Listing code berikut diletakkan pada sebuah module.
Public Sub NamaBarang_Set(rngKerja As Range)
Dim rngKode As Range
Dim rngNama As Range
'ubah "b5:b55" dengan suatu yang lain yang merujuk ke range kode untuk
lebih dinamis
'asumsi : kolom B untuk kode dan kolom C untuk nama di sheet Stok
Set rngKode = Sheet2.Range("b5:b55")
Set rngNama = rngKode.Offset(0, 1) '-> bisa juga dengan
Sheet2.Range("c5:c55")
rngKerja.Value = UCase(rngKerja) 'untuk membuat input seragam huruf
capital
'asumsi : pada sheet target (pembelian atau penjualan), letak nama
barang
' selalu 1 kolom dikiri kolom kode barang.
'baris berikut adalah formula :
'Index(range_nama_di_sheet_stok, Match(input_user,
range_kode_di_sheet_stok, 0) )
'ini lebih cepat dibanding loop yang dibuat sendiri dengan segala macam
metode loop,
'karena menggunakan library excel yang di develop dengan bahasa program
yang lebih
'baik dibanding VB.
rngKerja.Offset(columnoffset:=-1) = _
Application.WorksheetFunction.Index(rngNama, _
Application.WorksheetFunction.Match(rngKerja.Value, rngKode,
0) _
)
End Sub
Pada sheet Pembelian dan sheet Penjualan, dibuat sebuah event.
Misal pada sheet Pembelian : (sesuaikan kolom dan baris untuk cek-nya sesuai
struktur tabel dalam sheet)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then 'cek, hanya 1 cell yang nilainya diubah
user ?
If Target.Column = 3 Then 'cek, yang diubah adalah pada kolom 3
(kolom C) ?
If Target.Row > 4 Then 'cek, yang diubah adalah pada baris
yang lebih dari 4 -> jadi C5, C6, dst ?
If LenB(Target.Offset(columnoffset:=-2)) <> 0 Then 'cek,
apakah pada kolom A ada datanya ?
NamaBarang_Set Target 'ke Sub NamaBarang_Set
di module bawa object range ini
End If
End If
End If
End If
End Sub
2009/6/12 dhiya nabill <[email protected]>
>
>
> saya membuat ingin membuat aplikasi dari excel dengan memanfaatkan vba-nya,
> namun masih terganjal dengan beberapa kendala:
> 1. pada sheet1 (pembelian) pada nama barang, bagaimana bisa memunculkan
> nama barang secara otomatis yang datanya diambil dari sheet2 (stok) dengan
> hanya cukup mengetik kode barang saja.. (dengan vba)
> 2. pada sheet3 (penjualan) kasusnya sama persis diatas.
>
> terima kasih atas jawabannya..
>
> file contoh sy kirim lewat attch
>
> ------------------------------
> .
>
>
>