Showing posts with label Microsoft Excel. Show all posts
Showing posts with label Microsoft Excel. Show all posts

Friday, May 22, 2020

Biyan Stevig

InputBox Tipe Password di Macro VBA Microsoft Excel

Buatlah Sebuah Module dengan cara :
- Klik Menu Insert
- Pilih Module

setelah module dibuat, masukkan koding berikut ini :

Option Explicit
'----------------------------------
'API CONSTANTS FOR PRIVATE INPUTBOX
'----------------------------------

#If VBA7 Then
    Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, _
        ByVal ncode As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr
    Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias _
        "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr
    Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
        (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr
    Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As Long
    Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _
        (ByVal hDlg As LongPtr, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
    Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" _
        (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long
#Else
    Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
        ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
    Private Declare Function GetModuleHandle Lib "kernel32" Alias _
        "GetModuleHandleA" (ByVal lpModuleName As String) As Long
    Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
        (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _
        ByVal dwThreadId As Long) As Long
    Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
    Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _
        (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _
        ByVal wParam As Long, ByVal lParam As Long) As Long
    Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _
        (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
    Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long
#End If

'Constants to be used in our API functions
Private Const EM_SETPASSWORDCHAR = &HCC
Private Const WH_CBT = 5
Private Const HCBT_ACTIVATE = 5
Private Const HC_ACTION = 0

#If VBA7 Then
    Private hHook As LongPtr
#Else
    Private hHook As Long
#End If

'----------------------------------
'PRIVATE PASSWORDS FOR INPUTBOX
'----------------------------------

'////////////////////////////////////////////////////////////////////
'Password masked inputbox
'Allows you to hide characters entered in a VBA Inputbox.
'
'Code written by Daniel Klann
'March 2003
'64-bit modifications developed by Alexey Tseluiko 
'and Ryan Wells (wellsr.com)
'February 2019
'////////////////////////////////////////////////////////////////////

#If VBA7 Then
Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPtr
#Else
Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
#End If

    Dim RetVal
    Dim strClassName As String, lngBuffer As Long
    If lngCode < HC_ACTION Then
        NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam)
        Exit Function
    End If

    strClassName = String$(256, " ")
    lngBuffer = 255
    If lngCode = HCBT_ACTIVATE Then 'A window has been activated
        RetVal = GetClassName(wParam, strClassName, lngBuffer)
        If Left$(strClassName, RetVal) = "#32770" Then
            'This changes the edit control so that it display the password character *.
            'You can change the Asc("*") as you please.
            SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, asc("*"), &H0
        End If
    End If
    'This line will ensure that any other hooks that may be in place are
    'called correctly.
    CallNextHookEx hHook, lngCode, wParam, lParam
End Function

Function InputBoxDK(Prompt, Title) As String
#If VBA7 Then
    Dim lngModHwnd As LongPtr
#Else
    Dim lngModHwnd As Long
#End If

    Dim lngThreadID As Long
    lngThreadID = GetCurrentThreadId
    lngModHwnd = GetModuleHandle(vbNullString)
    hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)
    InputBoxDK = InputBox(Prompt, Title)
    UnhookWindowsHookEx hHook
End Function

Untuk mencobanya silahkan buat sebuah form dan 1 buah commandbutton melalui menu Insert >> Userform :

doubleclick pada Commandbutton1 tersebut dan masukkan koding berikut ini :

 Dim x
    x = InputBoxDK("Silahkan Masukkan Password", "Password Required")
    If x <> "passwordkamu" Then
        MsgBox "Maaf Password Salah", vbInformation, "Pemberitahuan"
    Else
        MsgBox "Password Benar", vbInformation, "Pemberitahuan"
    End If

Silahkan coba Run.


Read More

Tuesday, March 31, 2020

Biyan Stevig

Membuat Form Input VBA Microsoft Excel

Userform VBA Excel


Dengan mempelajari VBA Excel maka kita bisa membuat sebuah aplikasi profesional dengan mudah. VBA ini digunakan untuk mendasain sebuah Form yang mana Microsoft Excel sendirilah sebagai databasenya.

Bagi pemula tidak perlu khawatir, karena cara membuat sebuah aplikasi dengan memanfaatkan VBA Excel ini sangatlah mudah dipahami, jadi perlu memilik basic pemograman sekalipun.

Langsung saja.

1. Langkah Pertama Silahkan buka Microsoft Excelnya, kemudian Silahkan munculkan Tab Develover
Baca : Cara Memunculkan Tab Developer Micorosoft Excel

2. Buka Tab Developer Tersebut, Klik Visual Basic

3. Buatlah sebuah form (UserForm)


4. Buat lah :
  • 5 LABEL
  • 4  TextBox
  • 1 CommandButton

5. Double Click pada Tombol Simpan, kemudian Masukkan Coding Berikut Ini :

    Dim No_Urut As Integer
    Set Aktif_Sheet = Worksheets("Sheet1")
    
    Baris_Terakhir = Aktif_Sheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

    Aktif_Sheet.Cells(Baris_Terakhir, 1) = TextBox1

    Aktif_Sheet.Cells(Baris_Terakhir, 2) = TextBox2
    Aktif_Sheet.Cells(Baris_Terakhir, 3) = TextBox3
    Aktif_Sheet.Cells(Baris_Terakhir, 4) = TextBox4

6. Silahkan di Run 


Untuk Lebih Jelasnya tentang Fungsi-Fungsi dari Coding Di atas silahkan Tonton :



#microsoftexcel #excel #vba #visualbasic #vbaexcel
Read More
Biyan Stevig

Memunculkan Tab Developer yang Hilang Microsoft Excel

Tab Developer pada excel secara default tidak ada, karena itu perlu dimunculkan terlebih dahulu. Tab Developer ini memang disediakan untuk seorang developer misalkan tujuan untuk memunculkan Tab Developer ini adalah untuk membuat Aplikasi dengan VBA Excel.

Dengan menggunakan VBA Excel kita dapat membuat sebuah aplikasi layaknya aplikasi pada umumnya.

Langkah Pertama Silahkan buka Microsoft Excelnya, kemudian Silahkan munculkan Tab Develover
cara untuk memunculkan tab Develover sebagai berikut :

Klik Tab FILE

Kemudian Pilih OPTION

Pilih CUSTOMIZE RIBBON kemudian ceklis DEVELOPER


Jika masih Kurang jelas Silahkan Tonton Video Berikut ini :


#microsoftexcel #developerexcel #vbaexcel

Read More