Cara Membuat TextBox yang hanya bisa memuat angka di VBA Excel


Sayangnya VBA (hingga versi 2007 yang saya gunakan) tidak memiliki fitur untuk menyaring karakter pada Textboxn-nya. Karena hal tersebut, dalam pembuatan userform, saya terpaksa menambah beberapa perintah tambahan, agar textbox yang saya buat hanya akan menginput angka yang valid.

     Sebagai contoh, saya memberi contoh kasus textbox dengan nama "TBRupiah":
Private Sub TBRupiah_Change()

'1- Menentukan bentuk koma yang diakui oleh VBA
        KomaDiAngka = "."
        If 1 & "," & "000" & "." & "01" = 1000 + (1 / 100) = False Then KomaDiAngka = ","
            'Menentukan bentuk koma yang diakui oleh VBA -End

'2- Mencegah karakter Non Angka agar bisa Masuk
        TBRupiah = Replace(TBRupiah, ",", KomaDiAngka)
        TBRupiah = Replace(TBRupiah, ".", KomaDiAngka)
        For pengulangan = 1 To Application.WorksheetFunction.Min(Len(TBRupiah), 40)
        If IsNumeric(Mid(TBRupiah, pengulangan, 1)) = False And Mid(TBRupiah, pengulangan, 1) <> "-" And Mid(TBRupiah, pengulangan, 1) <> KomaDiAngka Then TBRupiah = Replace(TBRupiah, Mid(TBRupiah, pengulangan, 1), "")
        Next pengulangan
            'Mencegah karakter Non Angka agar bisa Masuk -End

'3- Mencegah tanda minus yang tidak sesuai kaidah
        TBRupiah = Left(TBRupiah, 1) & Replace(Mid(TBRupiah, 2, Len(TBRupiah)), "-", "")
            'Mencegah tanda minus yang tidak sesuai kaidah -End

'4 Mencegah desimal yang tidak sesuai kaidah
        TBRupiah = Left(TBRupiah, InStr(TBRupiah, KomaDiAngka)) & Replace(Mid(TBRupiah, InStr(TBRupiah, KomaDiAngka) + 1, Len(TBRupiah)), KomaDiAngka, "")
            'Mencegah desimal yang tidak sesuai kaidah -End


End Sub