@Yugosh ...
Untuk yang pertama, terlampir contoh data eksternal yang saya gunakan untuk diimpor. Maaf, sebelumnya saya lupa melampirkannya. Silahkan disesuaikan tabulasi data yang akan diimpor bagaimana dan coba revisi kembali script yang kurang tepat.
Untuk hal kedua, klo pake fungsi FIND, kemungkinan indeks data yang ditemukan akan tidak tepat. Contoh saja, jika data yang dicari adalah SAMPLE (sel L93), maka range yang akan dikembalikan bisa jadi adalah sel L8 karena nilainya juga mengandung kata SAMPLE...
Kalau menurut saya, lebih baik gunakan indeks dari ListBox saja. Cara melewatkan nilai indeks ListBox bisa menggunakan prosedur khusus atau menggunakan properti dari UserForm target. Misalkan saja, pada UserForm FORMMENU ditambahkan script:
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo salah
With FORMDO
'+-- Tambahkan baris ini untuk menyimpan indeks
'+-- ListBox ke FORMDO.
.Tag = Me.ListBox2.ListIndex + 1
.NP.Value = Me.ListBox2.Column(0)
.nomor1.Value = Me.ListBox2.Column(2)
.dana1.Value = Me.ListBox2.Column(3)
End With
FORMDO.Show
Exit Sub
salah:
Call MsgBox("Klik Data Yang Tersedia", vbInformation, "Data Buku Bantu")
End Sub
dan pada UserForm FORMDO susun script sebagai berikut:
Private Sub ubah1_Click()
Dim lIdx As Long
lIdx = CLng(Me.Tag)
Sheet1.Cells(lIdx, "N") = Me.nomor1.Value
Sheet1.Cells(lIdx, "O") = Me.dana1.Value
Call MsgBox("Data Berhasil Di Ubah", vbInformation, "data Buku Bantu")
Me.NP.Value = ""
Me.nomor1.Value = ""
Me.dana1.Value = ""
Unload Me
End Sub
Demikian.