slmat malam Admin, saya sedang belajar membuat menu menggunakan Vb,minta tolong bagaimana scrip memanggil data siswa berdasarkan kelas yang sudah dipilih, mohon bimibingannya. terima kasih
slmat malam Admin, saya sedang belajar membuat menu menggunakan Vb,minta tolong bagaimana scrip memanggil data siswa berdasarkan kelas yang sudah dipilih, mohon bimibingannya. terima kasih
@bejo ...
Membuat menu, atau membuat daftar data siswa berdasarkan kelas terpilih? Saya kasih contoh membuat daftar data siswa saja pada file terlampir. Semoga sesuai.
Demikian.
terima kasih master, saya ini mau menempatkan hasil select menu data pada sheet1, tapi gk jadi2 master, help me please........, thanks before!!!!
@bejo ...
Coba gunakan script berikut:
Private Sub cmdSave_Click() Dim lIdx As Long lIdx = lstSiswa.ListIndex With Sheet1 .Range("A10") = lstSiswa.List(lIdx, 0) .Range("B10") = lstSiswa.List(lIdx, 1) .Range("C10") = lstSiswa.List(lIdx, 2) End With End Sub
... atau bisa juga seperti berikut ini:
Private Sub cmdSave_Click() Dim lIdx As Long lIdx = lstSiswa.ListIndex Sheet1.Range("A10:C10") = Split(lstSiswa.List(lIdx, 0) & "|" & _ lstSiswa.List(lIdx, 1) & "|" & lstSiswa.List(lIdx, 2), "|") End With End Sub
Demikian.
terima kasih banyak master, semoga tuhan membalas kebaikan anda.
selamat malam master, saya mnta tolong lagi master, saya belajar menghapus baris, tapi kq gk jadi2 ya, tolong ya master
@bejo ...
Pengujian kondisi pada baris script berikut:
... If Cells(k, 1).Value = TB1.Value Then ... End If ...
akan terus gagal (FALSE) oleh karena tipe nilai yang dihasilkan script Cells(k, 1).Value
akan berupa numerik, sedangkan tipe nilai yang dihasilkan oleh kontrol TextBox berupa alphanumerik. Sederhananya,
10 <> "10"
Coba ganti scriptnya menjadi:
... If CStr(Cells(k, 1).Value) = TB1.Value Then Cells(k, 1).EntireRow.Delete End If ...
Demikian.
terima kasih banyak ilmunya master, sudah sangat membantu
lagi master, kalau data yg dicari tidak ada, misalnya memasukkan angka 50, menampilkan msg not found, scripnya bagaimana master,
@bejo ...
Coba ubah saja script untuk Event Procedure CommandButton1 menjadi seperti berikut:
Private Sub CommandButton1_Click() Dim vResult As Variant Dim xlRange As Range '+-- Sesuaikan baris berikut dengan nama sheet '+-- dan range aktual yang akan diproses. Set xlRange = Sheet1.Range("A1:A300") '+-- Periksa tipe nilai yang akan dicari. If IsNumeric(TB1) Then '+-- Jika tipe nilai numerik, ubah menjadi angka. vResult = Application.Match(CLng(Trim$(TB1)), xlRange, 0) Else '+-- Jika tipe nilai alphanumerik, gunakan apa adanya. vResult = Application.Match(Trim$(TB1), xlRange, 0) End If '+-- Jika hasilnya angka, maka '+-- baris data ditemukan. If IsNumeric(vResult) Then Sheet1.Rows(vResult).EntireRow.Delete TB1 = vbNullString Else '+-- Jika bukan angka (biasanya berupa '+-- Error 2042), berarti data tidak ada. MsgBox "Tidak ada data tersebut!" End If End Sub
Dengan script di atas, tidak perlu melakukan proses pengulangan, dan data yang dicari bisa berupa angka (numerik) atau huruf (alphabet) serta gabungan angka dan huruf (alphanumerik).
Demikian.
terima kasih master, tp apa bedanya data tipye numeric dengan alpanumeric master???
@bejo ... terima kasih ...
Sama-sama mas...
@bejo ... apa bedanya data tipye numeric dengan alpanumeric ...
Tipe data numerik dapat diproses secara matematika, sedangkan alphanumerik tidak ... :D Selengkapnya dapat ditanyakan kepada mbah Google. Sebaiknya pelajari lebih jauh tipe data dalam VBA...
Saya jelaskan sedikit mengenai script VBA di atas:
... '+-- Periksa tipe nilai yang akan dicari. If IsNumeric(TB1) Then '+-- Jika tipe nilai numerik, ubah menjadi angka. vResult = Application.Match(CLng(Trim$(TB1)), xlRange, 0) Else '+-- Jika tipe nilai alphanumerik, gunakan apa adanya. vResult = Application.Match(Trim$(TB1), xlRange, 0) End If ...
Pada dasarnya, kontrol TextBox akan mengembalikan nilai berupa teks (String). Tak perduli karakter apapun yang kita input, tetap nilainya akan dianggap sebagai teks. Saat kita memasukkan nilai 50, maka nilainya akan terbaca sebagai "50" (tanda kutip ganda melambangkan nilai tersebut sebagai string). Meski dilayar terlihat sebagai sebuah bilangan (angka/numerik), tetap saja tipe aktualnya adalah teks (atau string atau alphanumerik yakni gabungan angka, huruf dan atau karakter lainnya).
Jika pada range:
Sheet1.Range("A1:A300")
berisi angka (atau bertipe numerik), maka menggunakan fungsi MATCH dengan nilai yang dicari adalah nilai yang diinput pada kontrol TexBox (TB1) secara langsung, maka tidak akan menghasilkan apapun selain Error. Meskipun yang diinput pada kontrol TextBox adalah angka, misalkan angka 5. Hal ini terjadi karena tipe nilai dari kontrol TextBox adalah teks atau string atau alphanumerik. Gambarannya scriptnya akan terlihat sebagai berikut:
Application.Match("5", xlRange, 0)
Padahal seharusnya:
Application.Match(5, xlRange, 0)
Fungsi MATCH pada script tersebut sebenarnya tidak perduli apakah tipe nilai yang akan dicari adalah numerik atau alphanumerik (dalam Excel, tipe data seperti ini dikenal sebagai Variant). Namun saat melakukan proses pencarian, fungsi MATCH akan membandingkan apakah tipe nilai yang dicari sama dengan tipe nilai pada range atau Array yang ditelusuri. Sehingga, meskipun kenyataannya ada angka 5 pada range tersebut, fungsi MATCH akan menganggap:
"5" <> 5
Untuk mengatasi hal ini, perlu diuji dahulu apakah nilai yang diinput bisa dianggap sebagai nilai numerik atau tidak, dengan menggunakanlah fungsi ISNUMERIC. Contoh:
ISNUMERIC ("250") = TRUE ISNUMERIC ("ANA") = FALSE ISNUMERIC ("F16") = FALSE
Jadi, meskipun nilai pada kontrol TextBox bukan numerik, namun kita dapat menguji apakah tipe nilai yang diinput merupakan numerik atau bukan. Apabila nilai pada kontrol TextBox dapat dinggap sebagai numerik, maka lakukan konversi dari string menjadi numerik,
... CLng(Trim$(TB1)) ...
Sebaliknya, biarkan saja nilai tetap sebagai string. Selanjutnya, hasil pengujian disimpan pada variabel vResult
yang bertipe Variant (tipe nilai ditentukan saat variabel sudah berisi nilai). Penggunaan tipe Variant dikarenakan fungsi:
Application.Match
akan mengembalikan 2 tipe data, yakni numerik jika baris data yang cocok ditemukan, dan string berisi nomor kesalahan (Error) jika baris data tidak ada yang cocok. Ini berbeda dengan fungsi serupa yang merupakan properti dari objek WorksheetFunction:
WorksheetFunction.Match
yang akan menghasilkan angka jika cocok dan error #N/A jika gagal...
Demikian.
terima kasih banyk master, sudah menjelaskan panjang lebar, walau memang blm mengerti sepenuhnya tp sudah ada gambaran perbedaannya, sekali lagi terima kasih.