Tecnologia, programação e muito Visual FoxPro.

quinta-feira, 12 de maio de 2011

Re: ]] XL-mania [[ Format Tanggal di TextBox

sebetulnya untuk mengentry data tanggal,  ndak usah pakai textbox, ndak usah diatur atur 
kita dapat menggunakan control DateTimePicker (DTPicker), tetapi kalau anda termasuk 
anti Dtpicker ya pakailah control yg paling anda senangi (mungkin textbox) dengan 
pemrogramannyua kira kira spt ini
dtpicker vs txtbox.GIF
Format yg dikehendaki "DD/MM/YYYY"    length = 10
karakter ke3 dan ke6 harus "/", karakter lain harus salah satu dari "0123456789"

jika ketikan sampai pada krakter ke 3 atau ke 6 maka kibor harus hanya mau trima  "/" saja.
ketika ketikan sampai pada karakter lainnya kibor harus hanya mau menerima "0123456789"
saja...

Cara inipun masih pakai "cara bodoh-bodohan: karena  : oleh user yg kurang kerjaan
2 karakter ke 1 dan 2 (DD)  bisa saja diisi 99 (lebih besar dari nilai 31), dan 
2 karakter ke 4 dan 5 (MM) bisa diisi dua karakter yg lebih besar daripada nilai 12

Tetapi di akhir pengetikan (ketika ketikan sudah sampai karakter ke 10, kepada user "nyelèlèk"
seperti itu kita harus berikan pelajaran yang setimpal !?!. 
lho iyaa, kita harus balas dendam to ?  sekarang ini kan sudah jamannya ..

pada saat ketukan ke 10 terdeteksi; kita masukkan 3 komponen tanggal tsb (DD MM dan YYYY)
ke dalam fungsi DateSerial (setara dengan fungsi DATE di woksit)
Nah disitulah tanggal  56 bulan 17 tahun berapa saja < 9999, hasil ketikan user "nyelèlèk", 
kita ubah menjadi nilai validnya

Sekarang siapa yg terdengar ketawanya ?!?
Kita yg gantian tertawa gumbira , dan user cemberut kuciwa...

'-------
Private Sub TextBox1_Change()
   ' siti Vi // memaksa texbox berisi format date DD/MM/YYYY
   ' misal jika nilai DD dan atau nilai MM tidak valid misal
   ' diisi 33/13/2010 maka akan di ubah menjadi tgl tgl 02/02/2011
   ' kalau dgn cara ini nanti usernya marah, mending kita ajak
   ' tawuran aja dech, he he ...
   '----------------------------------------------------------------
   Dim s As String, x As String
   s = TextBox1.Text
   x = Right(s, 1)
   
   Application.EnableEvents = False
   Select Case Len(s)
      Case 1, 2, 4, 5, 7 To 10
         If InStr(1, "0123456789", x, vbTextCompare) = 0 Then
            s = Left(s, Len(s) - 1)
            TextBox1 = s
         End If
       Case 3, 6
         If Not x = "/" Then
            s = Left(s, Len(s) - 1)
            TextBox1 = s
         End If
   End Select
   If Len(s) = 10 Then
      TextBox1 = Format(DateSerial(CInt(Right(s, 4)), _
      CInt(Mid(s, 4, 2)), CInt(Left(s, 2))), "dd/mm/yyyy")
   End If
   
   Application.EnableEvents = True

End Sub
'--------------------

tombol OK even click:    Range("A1") = TextBox1




On Thu, May 12, 2011 at 9:43 AM, Surya Hartantu <suryahartantu@yahoo.com> wrote:
Dear XL-Mania,

Mohon bantuannya......
Saya mempunyai userform dimana ada textboxnya
Saya ingin nantinya user hanya bisa input date format "DD/MM/YYYY"

dan hasil inputan akan masuk ke sheet2.cell A1.

Minta tolong ya scriptnya...

Makasih


Nenhum comentário:

Postagem mais recente Postagem mais antiga Página inicial

Arquivo do blog