Format isi Format Tanggal Textbox yang bisa di hitung

  1. 4 tahun lalu

    Dear All,

    Mohon bantuanya lagi, saya ada textBox4 yang di isi dengan tanggal, dan kemudian secara langsung akan mengisi textbox5 dengan tanggal di textbox4 di jumlahkan dengan 50 (dalam hari)

    saya coba dengan coding di bawah tapi error, mohon pencerahan dan bantuanya

    Private Sub TextBox4_Change()

    If TextBox4.TextLength = 2 Or TextBox4.TextLength = 5 Then
    TextBox4.Text = TextBox4.Text + "/"
    End If

    TextBox5.Value = (TextBox4.Value) + 50

    End Sub

    Trimakasih banyak atas bantuanya.

  2. Masdad

    8 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Kode ini:

    TextBox4.Text = TextBox4.Text + "/"


    pasti akan debug, karena menjumlahkan string/text.

    Ini sebenarnya mau cari apa ya, penambahan tanggal atau format Date atau hanya angka saja? kok itu menggunakan panjang isi data sebagai validasinya.

  3. Dear Pak @Masdad ,

    saya sedang cari tanggal setelah di tambah 50 hari dan seterusnya, jadi format tanggal yang di minta

    ini yang saya temui coding dibawah setelah browsing2, kendalanya saya tidak bisa leluasa mengetik di textboxnya, dengan coding TextBox4.Text = TextBox4.Text + "/", selalu debug, bagaimana supaya pengisian tanggal pada textbox nya lebih mudah tanpa debug debug, Mohon pencerahanya. Trimakasih

    Private Sub txtPOEndDate_Change()

    Dim Poend As Date

    Poend = Format(txtPOEndDate.Text, "DD/MM/YY")

    'sesudah 50 hari dari POend date
    txtPOExpiredDate = Format(Poend + 50, "DD/MMM/YYYY")

    'di sebelum 14 hari dari PO End Date
    txtDateReminder = Format(Poend - 14, "DD/MMM/YYYY")

    'di setelah 14 hari dari PO End Date
    txtDateWarning1 = Format(Poend + 14, "DD/MMM/YYYY")

    'di setelah 28 hari dari PO End Date
    txtDateWarning2 = Format(Poend + 28, "DD/MMM/YYYY")

    End Sub

  4. Masdad

    8 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Saya kira selama tanggalnya di ketik manual, akan tetap ada debug. Ada 2 saran yang bisa saya berikan.

    1. Gunakan error trap jadi jika ada error langsung exit sub saja.
    2. Menggunakan Calendar Control jadi gak perlu ngetik manual, tinggal pilih tanggal saja jadi gak akan debug karena formatnya sudah format Date.
  5. Dear Pak @Masdad ,Trimakasih banyak saranya,

    Bisa tolong kasih sample untuk 2 saran tersebut,

    Trimakasih

  6. Masdad

    9 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Saran yg pertama saya anggap kurang efektif, apalagi kalau beneran pakai error trap exit sub, ya langsung selesai gak ada hasil lagi di TextBox2-nya hehe.

    Jadi saya kasih contoh yang kedua, untuk yang kedua ini sebenarnya ada banyak cara, bisa menggunakan Calendar Control / Date Picker (tidak bisa dipakai di Excel 64 bit), menggunakan Calendar Control Class (kalender di module Class VBA), atau pun memakai Calender Form (kalender yg dibuat menggunakan User Form Excel). Pada contoh file terlampir menggunakan yang Calendar Form.

  7. Dear Pak @Masdad ,

    Trimakasih banyak atas saran nya contoh filenya, benar ini sangat simple dan lebih mudah dalam pengisian tanggal,

    - Pertanyaan berikutnya lagi setelah saya coba untuk saya simpan datanya dari textbox ke sheet pembacaan format tanggalnya jadi beda ya, di userform "DD/MM/YYYY" ketika di excel sheet jadi "MM/DD/YYYY", mohon pencerahanya lagi pak, apa masalahnya

    - Pertanyaan yang kedua, ketika saya coba untuk bersihkan layar kerja textbox1 yang berisi tanggal, dengan code Textbox1.value = "" ko debug ya pak? debug nya mengarah ke "TextBox2 = Format(DateValue(TextBox1) + 50, "dd/mm/yyyy")", sementara yang textbox2 dan textbox3 itu bisa di pakai value = "", mohon pencerahanya lagi pak

    Saya ucapkan Trimakasih banyak atas saran dan pembelajaranya

  8. Masdad

    10 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Format Date tidak sesuai: biasanya sih karena default dari format Date yang digunakan, biar tetap sesuai yang diinginkan maka datanya yang akan masuk ke sheet harus di format juga. Contohnya:

    Sheet1.Range("A1") = CDate(Format(TextBox2, "dd/mm/yyyy"))

    Fungsi CDate untuk menjadikan Format Date, kalau tidak pakai CDate biasanya formatnya jadi General.

    Debug ketika TextBox1 kosong: ini karena Textbox2 tidak dapat menjumlahkan/mengolah data dari Textbox1 yang kosong, solusinya bisa di buat IF Else. misalnya:

    Private Sub TextBox1_Change()
    If TextBox1 = "" Then
        TextBox2 = ""
        TextBox3 = ""
    Else
        TextBox2 = Format(DateValue(TextBox1) + 50, "dd/mm/yyyy")
        TextBox3 = Format(DateValue(TextBox1) - 14, "dd/mm/yyyy")
    End If
    End Sub

    Silahkan di coba lagi :)

  9. Dear Pak@Masdad ,

    Trimakasih banyak pemebelajaranya, saya pakai format date ketika perintah "Simpan" dan berhasil susai dengan format tanggal yang saya inginkan, sekali lagi trimakasih,

    masalah yang kedua , saya belum paham pak, maaf mungkin pertanyaan saya salah , jadi saya ada perintah clean atau bersihkan form kerja, jika ada kesalahan atau pengeditan data atau mau input baru

    private sub cmdclean_click()

    text1.value =""
    text2.value=""
    dst

    end sub

    nah, ketika saya coba running, debug mengarah ke Text1 yang formatnya tanggal pak, saya sudah coba ganti dengan text1.text juga tetap debug,

    mohon pencerahanya lagi pak, sebelum nya saya ucapkan banyak trimakasih atas semua pembelajaranya

  10. maaf kurang di info tambahan, debug nya muncul ketika text1 sudah di isi dengan, kalau kosong seperti awal form di buka tidak debug saat perintah clean nya di jalankan, Trimakasih

  11. Dear Pak @Masdad ,

    trimakasih pak, saya sudah mengerti solusi yang sudah di berikan, semua berhasil,

    trimakasih banyak

  12. Masdad

    12 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Alhamdulillah...

  13. Mohon gabung ,
    mau tnya @Masdad ,bagamaina Caranya Input userform kalendernya
    ke Range ?

  14. Masdad

    22 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Tinggal masukin saja misal datanya diambilkan dari TextBox2:

    Sheet1.Range("A1") = CDate(Format(TextBox2, "dd/mm/yyyy")

    Untuk CDate berfungsi menformat tanggal menjadi Date, sedangkan fungsi Format untuk menentukan format Date yang diinginkan misalnya "dd/mm/yyyy"

    Atau mungkin mau menampilkan formnya langsung dari sheetnya, seperti ini:

    kalender.gif

    Bisa menggunakan kode vba:

    Private Sub CommandButton1_Click()
    Tanggal = CalendarForm.GetDate(Sheet1.Range("A1"))
    If Tanggal <> 0 Then Sheet1.Range("A1") = CDate(Format(Tanggal, "dd/mm/yyyy"))
    End Sub

  15. @Masdad bagamna jika range yang akan kita isi kita tentukan ,
    contoh saya mau isi range A10 atau A12 misalnya
    form calendernya langsung terinput ke range A10 atau A12

    Terimakasih Mohon Pencerahannya

  16. Masdad

    24 Apr 2020 Terverifikasi Demak + 2.198 Poin

    @Masdad Bisa menggunakan kode vba:

    Private Sub CommandButton1_Click() Tanggal = CalendarForm.GetDate(Sheet1.Range("A1")) If Tanggal <> 0 Then Sheet1.Range("A1") = CDate(Format(Tanggal, "dd/mm/yyyy")) End Sub

    ini udah dikasih contoh, tinggal ubah target selnya saja dari A1 menjadi A10 atau A12, jadi saya yakin pasti sudah bisa sendiri :)

  17. Dear @Masdad Mkasud sya Tiap range bisa kita isi Pake form calender tersebut
    Seperti gambar terlampir jadi tiap range mucul form calendernya heheh
    kan saya biasanya menggunakan datepicker ,tapi datepicker jika dipc lain belum terinstal jdi tdk bsa menggunakan nya hehehe

  18. Masdad

    24 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Apa seperti ini?

    kalender oto.gif

    kode vba-nya:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Not Application.Intersect(Target, Range("A2:A11")) Is Nothing Then
            Tanggal = CalendarForm.GetDate(ActiveCell)
            If Tanggal <> 0 Then ActiveCell = CDate(Format(Tanggal, "dd/mm/yyyy"))
        End If
    End Sub

  19. @Masdad Wah super skali makash banyak

    sangat sesuai yg saya maksud

    Ilmunya akan menjadi amal jariah amin

  20. Masdad

    24 Apr 2020 Terverifikasi Demak + 2.198 Poin

    Alhamdulillah...

  21. Newer ›
 

atau Mendaftar untuk ikut berdiskusi!