buat form entry & nomor acak otomatis

  1. 6 bulan yang lalu

    Mohon bantuan nya para master excel, saya kesulitan dalam membuat form entry data, sudah mengikuti beberapa contoh tetap gagal, dan menampilkan tabel transaksi ke listbox...bagaimana cara membuat nomor acak secara otomatis...

    terimakasih mohon bantuannya

    @Mr.P ....

    ... ketika proses entry data, data menimpa yang lama tidak lanjut ke baris selanjutnya ...

    Saran saya, nilai pada kolom A sheet TRANSAKSI sebaiknya diisi melalui script saja. Karena bila nilai pada kolom A tersebut sudah terisi sebagaimana pada file terlampir, alhasil variabel iRow akan terus-menerus menghasilkan nilai 23. Jadi, bila ada data yang akan ditulis ke sheet TRANSAKSI, maka ambil indeks nomor terakhir di kolom A (kolom NO) kemudian tambahkan 1 dan diisi pada kolom A.

    ... cara menambahkan mesage ketika isian yang dimasukan bukan angka ...

    Cara termudah (menurut saya) adalah menambahkan informasi khusus pada properti Tag dari kontrol TextBox yang akan dijadikan kotak input nilai numerik (angka), misalkan saja isi dengan kata kunci NUM dalam properti Tag. Kemudian periksa properti dari setiap kontrol dari objek

    ... angka acak setelah klik tombol simpan lsg hilang, ketika akan entry lagi textbox nya kosong. bagaimana biar muncul terus angkanya ...

    Hal tersebut terjadi karena script Me.TextBox2.Value = "" akan menghapus nilai pada TextBox2 yang berisi angka acak tersebut.

    ... menampilkan listbox tabel (perBakul) sesuai combobox bakul yang dipilih ...

    Banyak cara yang bisa dilakukan untuk mendapatkan target yang dimaksud. Idenya, periksa baris per baris pada tabel data sheet TRANSAKSI dan lakukan pengujian nilai kolom D (kolom KODE BAKUL) dengan nilai pada kontrol ComboBox. Setiap baris data yang sesuai, kemudian ditambahkan ke kontrol ListBox1.

    Terlampir modifikasi scriptnya. Demikian, semoga sesuai.

  2. Caton

    Apr 10 Terverifikasi Indonesia + 11.522 Poin

    @Mr.P ...

    Ada banyak cara untuk mengisi range data pada Worksheet ke dalam kontrol ListBox. Contoh sederhana untuk mengisi kontrol ListBox dari 1 kolom data:

    Me.ListBox1.List = Sheet1.Range("A2:A101").Value

    Notasi atau Keyword Me dapat merupakan UserForm Object atau Worksheet Object, tergantung dimana kontrol ListBox1 diletakkan. Contoh lainnya untuk mengisi kontrol ListBox dari 2 kolom data:

    With Me.ListBox1
        .ColumnCount = 2
        .ColumnWidths = "30;100"
        .List = Sheet1.Range("A2:B101").Value
    End With

    Selain itu, data pada kontrol ListBox juga dapat dipopulasi melalui pengulangan (misalkan menggunakan fungsi FOR ... NEXT). Sehingga, untuk menyusun script pengisian data ke dalam kontrol ListBox yang sesuai dengan kebutuhan, tentunya harus diketahui bagaimana bentuk range sumber data dan bagaimana data akan diambil — misalkan saja jika data yang akan diambil harus memenuhi kondisi atau kriteria tertentu, maka proses pengisian data mungkin lebih tepat jika melalui proses pengulangan.

    Sedangkan untuk membuat nomor acak, VBA mempunyai fungsi RND() yang dapat digunakan. Untuk menghasilkan nilai antara dua nilai, maka sintaksnya dapat berupa:

    Variabel = NilaiMinimum + Rnd() * (NilaiMaksimum - NilaiMinimum)

    misalnya:

    lNum = CLng(666 + Rnd() * (999 - 666))

    atau bisa juga menggunakan fungsi RANDBETWEEN pada objek WorksheetFunction:

    lNum = WorksheetFunction.RandBetween(66, 99)

    Script-script di atas hanyalah contoh dasarnya saja sesuai aturan baku sintaksnya. Implementasi sebenarnya akan bergantung kepada banyak hal. Saya pribadi tidak tahu kesulitan yang Anda maksud itu bagaimana, karena tidak ada lampiran contoh pekerjaan yang Anda kerjakan. Mudah-mudahan penjelasan di atas dapat membantu.

    Demikian.

  3. Terima kasih banyak bos Caton atas ilmunya, sudah saya coba tapi masih ada kendala

    1. ketika proses entry data, data menimpa yang lama tidak lanjut ke baris selanjutnya. dan cara menambahkan mesage ketika isian yang dimasukan bukan angka.
    2. angka acak setelah klik tombol simpan lsg hilang, ketika akan entry lagi textbox nya kosong. bagaimana biar muncul terus angkanya.
    3. menampilkan listbox tabel (perBakul) sesuai combobox bakul yang dipilih
  4. 5 bulan yang lalu

    Caton

    Apr 11 Terverifikasi Jawaban Terpilih Indonesia + 11.522 Poin

    @Mr.P ....

    ... ketika proses entry data, data menimpa yang lama tidak lanjut ke baris selanjutnya ...

    Saran saya, nilai pada kolom A sheet TRANSAKSI sebaiknya diisi melalui script saja. Karena bila nilai pada kolom A tersebut sudah terisi sebagaimana pada file terlampir, alhasil variabel iRow akan terus-menerus menghasilkan nilai 23. Jadi, bila ada data yang akan ditulis ke sheet TRANSAKSI, maka ambil indeks nomor terakhir di kolom A (kolom NO) kemudian tambahkan 1 dan diisi pada kolom A.

    ... cara menambahkan mesage ketika isian yang dimasukan bukan angka ...

    Cara termudah (menurut saya) adalah menambahkan informasi khusus pada properti Tag dari kontrol TextBox yang akan dijadikan kotak input nilai numerik (angka), misalkan saja isi dengan kata kunci NUM dalam properti Tag. Kemudian periksa properti dari setiap kontrol dari objek

    ... angka acak setelah klik tombol simpan lsg hilang, ketika akan entry lagi textbox nya kosong. bagaimana biar muncul terus angkanya ...

    Hal tersebut terjadi karena script Me.TextBox2.Value = "" akan menghapus nilai pada TextBox2 yang berisi angka acak tersebut.

    ... menampilkan listbox tabel (perBakul) sesuai combobox bakul yang dipilih ...

    Banyak cara yang bisa dilakukan untuk mendapatkan target yang dimaksud. Idenya, periksa baris per baris pada tabel data sheet TRANSAKSI dan lakukan pengujian nilai kolom D (kolom KODE BAKUL) dengan nilai pada kontrol ComboBox. Setiap baris data yang sesuai, kemudian ditambahkan ke kontrol ListBox1.

    Terlampir modifikasi scriptnya. Demikian, semoga sesuai.

  5. Terima kasih banyak,
    kenapa row ketika di baris 17 muncul "Maksimum baris data transaksi sudah terlampaui!", saya coba rubah angkanya :

    If (iRow > 22000) Or (lIdx > 17000) Then
            MsgBox "Maksimum baris data transaksi sudah terlampaui!", _
                vbCritical Or vbOKOnly
            Exit Sub


    masih tetap muncul pesan "Maksimum baris data transaksi sudah terlampaui!", dimana salahnya??

    Menampilkan perkalian (harga barang *jumlah) di textbox total ??

  6. Caton

    Apr 13 Terverifikasi Indonesia + 11.522 Poin

    @Mr.P ...

    Lihat gambar berikut yang menunjukkan hubungan varibel iRow dan variabel lIdx terhadap indeks baris dan nilai kolom NO.

    Untitled.png

    Sebenarnya baris pengujian tersebut tidak penting, jadi bisa dihapus saja bila tidak diperlukan. Saya letakkan dalam prosedur tersebut agar bisa digunakan untuk membatasi jumlah transaksi yang akan dimasukkan.

    ... Menampilkan perkalian (harga barang *jumlah) di textbox total ...

    [1]. Atur properti Locked dari kontrol TBTotal menjadi TRUE.
    [2]. Buat prosedur untuk menghitung Total Harga, misal:

    Private Sub HitungTotal()
        If IsNumeric(TBharga) And IsNumeric(TBjml) Then
            TBtotal = TBharga * TBjml
        End If
    End Sub

    Eksekusi prosedur tersebut saat terjadi perubahan pada kontrol TBharga dan kontrol TBjml, misalkan:

    Private Sub TBharga_Change()
        Call HitungTotal
    End Sub
    
    Private Sub TBjml_Change()
        Call HitungTotal
    End Sub

    Demikian, semoga bermanfaat.

  7. Prosedur ini saya hapus, tapi data tidak tersimpan kenapa?? yang salah dimana

    [/code]If (iRow > 22) Or (lIdx > 17) Then
            MsgBox "Maksimum baris data transaksi sudah terlampaui!", _
                vbCritical Or vbOKOnly
            Exit Sub
        End If[code]

  8. Caton

    Apr 13 Terverifikasi Indonesia + 11.522 Poin
    Di sunting 5 bulan yang lalu oleh Caton

    @Mr.P ...

    ... Prosedur ini saya hapus, tapi data tidak tersimpan kenapa?? yang salah dimana ...

    Tidak tahu karena saya tidak tahu apa dan bagaimana modifikasi yang telah Anda lakukan. Kalau Anda bilang prosedurnya yang Anda hapus, ya sudah, tidak akan ada yang diproses yang dikerjakan saat tombol SIMPAN diklik. Jelas di atas saya katakan,

    ... baris pengujian tersebut tidak penting, jadi bisa dihapus ...

    Jadi, baris script tersebut yang dihapus, bukan prosedur dimana script tersebut berada yang dihapus. Saya sendiri sudah menguji apakah dengan menghapus baris tersebut proses tetap berjalan baik. Dan kenyataannya demikian, semua berjalan normal. Untuk lebih pasti, sebaiknya lampirkan saja yang file yang sudah Anda kerjakan, agar dapat dianalisa dimana letak kesalahannya.

    Demikian.

  9. sudah bisa diatasi bos, ">" diganti "=" angka dibesarkan....terima kasih

 

atau Mendaftar untuk ikut berdiskusi!