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

Kirim email ke