Ops kayanya ada yang lupa .column deh. Yang hijau adalah perbaikannya. Jangan lupa, Bapak harus dapat nomor SO dulu. Artinya, bagian ini harus masuk setelah bagian pengambil nomor so Lalu, nomor SO itu disimpan dalam sebuah variabel dan variabelnya di masukkan ke baris ini : vso = apanamavariabelnomorso-nya 'sumbernya diletakkan disini
coba ganti dengan yang ini : 'asumsi : '- sheet 'Master Order' data di B5:e10000 tidak ada baris kosong. Header entah dibaris berapa, 'andai dibaris 5 pun juga gak apa. '- formula tadi pagi baru berdasar no so dan lookup ke kolom C:L, jadi so ada di kolom C (3), 'harga di kolom L (12) '- kode part ada di kolom e (5) berdasar penggalan vba berbunyi : 'With Worksheets("Master Order").Range("b5:e10000") 'karena sampai repot-repot ambil data sampai di kolom E. kalau salah ya diganti saja '- composite key oleh kode dan so bersifat unik '- kode part dari Set c = .Find(kodebarang, LookIn:=xlValues) dim rngData as range,rngAnchor as range dim lColTabel as long, lColSO as long, lColKode as long, lColHarga as long 'ganti tipe datanya dengan yang sesuai tipedata aslinya, sementara pakai variant dulu dim vKode as variant, vSO as variant, vHarga as variant set rngdata=sheets("Master Order").range("b5").currentregion with rngdata .parent.autofiltermode=false lcoltabel= .resize(,1)*.column* set rnganchor=.resize(,1).offset(1,0).resize(.rows.count-1) lcolSO= 3 - lcoltabel +1 lcolkode=5-lcoltabel+1 lcolharga=12-lcoltabel+1 vkode = *kodebarang* 'sumbernya diletakkan disini vso = 'sumbernya diletakkan disini .autofilter lcolso, vso .autofilter lcolkode, vkode if .resize(,1).specialcells( xlcelltypevisible ).count > 1 then 'asumsi : me.harga ini adalah textbox Me.Harga.text= _ rnganchor*.specialcells(xlcelltypevisible)*.areas(1) _ .resize(1,1).offset(0,lcolharga-1).value else Me.Harga.text="0" endif .parent.autofiltermode=false end with hehehe... sorry banget, belum bisa buka Excelnya. Moga-moga yang lebih baru ini bisa jalan. Kalau masih salah ambil nilai, mungkin jadi lebih mudah karena dah bisa jalan. Kid. 2012/9/20 Kid Mr. <mr.nm...@gmail.com> > Oh oke, > > hehehe... moga-moga gak salah amat... belum bisa buka filenya, jadi > kira-kira berdasar formula tadi siang dan penggalan VBA... > > Bagian yang bapak Copas, mulai dari With sampai End With nya nanti dinon > aktifkan dulu, kemudian coba tulis dibawahnya script berikut : > > 'asumsi : > '- sheet 'Master Order' data di B5:e10000 tidak ada baris kosong. Header > entah dibaris berapa, > 'andai dibaris 5 pun juga gak apa. > '- formula tadi pagi baru berdasar no so dan lookup ke kolom C:L, jadi so > ada di kolom C (3), > 'harga di kolom L (12) > '- kode part ada di kolom e (5) berdasar penggalan vba berbunyi : > 'With Worksheets("Master Order").Range("b5:e10000") > 'karena sampai repot-repot ambil data sampai di kolom E. kalau salah ya > diganti saja > '- composite key oleh kode dan so bersifat unik > > dim rngData as range,rngAnchor as range > dim lColTabel as long, lColSO as long, lColKode as long, lColHarga as long > > 'ganti tipe datanya dengan yang sesuai tipedata aslinya, sementara pakai > variant dulu > dim vKode as variant, vSO as variant, vHarga as variant > > set rngdata=sheets("Master Order").range("b5").currentregion > with rngdata > .parent.autofiltermode=false > lcoltabel= .resize(,1) > set rnganchor=.resize(,1).offset(1,0).resize(.rows.count-1) > lcolSO= 3 - lcoltabel +1 > lcolkode=5-lcoltabel+1 > lcolharga=12-lcoltabel+1 > vkode = 'sumbernya diletakkan disini > vso = 'sumbernya diletakkan disini > .autofilter lcolso, vso > .autofilter lcolkode, vkode > if .resize(,1).specialcells( xlcelltypevisible ).count > 1 then > 'asumsi : me.harga ini adalah textbox > Me.Harga.text= > rnganchor.areas(1).resize(1,1).offset(0,lcolharga-1).value > else > Me.Harga.text="0" > endif > .parent.autofiltermode=false > end with > > kayanya bisa begitu.. > > Jika pencarian dengan Find, harus dilakukan cek terhadap kriteria satunya > lagi, jika tidak ketemu, maka findnext dan loop terus sampai barisnya > kembali lebih kecil dari baris startnya. Daripada ruwet nentukan loopnya > beserta batasnya, coba pakai fitur autofilter di atas. > > Wassalam, > Kid. > > > 2012/9/20 daniel_aho <daniel_...@yahoo.co.id> > >> ** >> >> >> Dear Mr Kid, >> >> Bagian tersebut kira2 ini : >> >> >> >> With Worksheets("Master Order").Range("b5:e10000") >> Set c = .Find(kodebarang, LookIn:=xlValues) >> >> 'jika ditemukan, maka lihat barisnya. >> If Not c Is Nothing Then >> baris = c.Row >> 'selnajutnya pindahkan nama barang dari sheet2 ke textbox2. >> Me.Harga = Worksheets("Master Order").Cells(baris, 12).Value >> >> >> >> >> "Harga" diambil dari sheet "Master Order" namun itu baru mengacu pada 1 >> kriteria yakni "kode part", >> >> sedang yang saya inginkan adalah ada 2 kriteria, yaitu "kode part" dan >> "No SO" yang diambil dari Sheet " Master Order". >> >> jadi saat saya input data dengan user form, disitu sudah ada "kode part" >> dan "No SO" sehingga "Harga" menyesuaikan dari 2 kriteria tersebut. >> >> Mohon maaf jika penjelasan saya membingungkan atau tidak bisa dipahami. >> >> >> >> Terima kasih, >> >> daniel >> >> >> >> >> >> >> >> >