Invoice Manager For Excel Activation Key ◉
'================================================================= ' SHA‑256 → Base64 helper (uses MSXML for crypto) '================================================================= Private Function ComputeSHA256Base64(ByVal s As String) As String Dim xml As Object Set xml = CreateObject("MSXML2.DOMDocument.6.0") Dim hashObj As Object Set hashObj = CreateObject("System.Security.Cryptography.SHA256Managed") Dim bytes() As Byte bytes = StrConv(s, vbFromUnicode) ' UTF‑8 bytes Dim hashBytes() As Byte hashBytes = hashObj.ComputeHash_2((bytes)) 'Convert to Base64 Dim base64 As Object Set base64 = CreateObject("Microsoft.XMLDOM").createElement("b") base64.DataType = "bin.base64" base64.nodeTypedValue = hashBytes ComputeSHA256Base64 = base64.Text End Function
'================================================================= ' GLOBAL SETTINGS – adjust as needed '================================================================= Private Const KEY_LENGTH As Long = 16 ' length of a plain key (characters) Private Const KEY_HASH_ALGO As String = "SHA256" ' only SHA256 is used internally invoice manager for excel activation key
Public Sub ShowSearchForm() frmSearch.Show vbModal End Sub taxPct As Double
'================================================================= ' UI UNLOCK – enables the buttons on the Dashboard sheet '================================================================= Private Sub UnlockUI() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Dashboard") Dim btnNew As Shape, btnSearch As Shape On Error Resume Next Set btnNew = ws.Shapes("btnNew") Set btnSearch = ws.Shapes("btnSearch") On Error GoTo 0 If Not btnNew Is Nothing Then btnNew.OnAction = "ShowInvoiceForm" If Not btnSearch Is Nothing Then btnSearch.OnAction = "ShowSearchForm" 'Optionally hide the activation prompt button (if you placed one) Dim btnActivate As Shape Set btnActivate = Nothing On Error Resume Next Set btnActivate = ws.Shapes("btnActivate") On Error GoTo 0 If Not btnActivate Is Nothing Then btnActivate.Visible = msoFalse End Sub taxAmt As Double
Private Sub btnSave_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Invoices") '--- Basic validation ------------------------------------------------- If Trim(txtNo.Value) = "" Then MsgBox "Invoice number required.", vbExclamation Exit Sub End If '--- Compute total ---------------------------------------------------- Dim amt As Double, taxPct As Double, taxAmt As Double, total As Double amt = CDbl(Val(txtAmt.Value)) taxPct = CDbl(Val(txtTax.Value)) / 100 taxAmt = amt * taxPct total = amt + taxAmt txtTotal.Value = Format(total, "0.00") '--- Find existing row (edit) or append new ---------------------------- Dim r As Range, exists As Boolean Set r = ws.Columns("B").Find(What:=Trim(txtNo.Value), LookIn:=xlValues, LookAt:=xlWhole) If Not r Is Nothing Then exists = True Set r = r.EntireRow Else exists = False Set r = ws.Cells(ws.Rows.Count, 1).End(xlUp).Offset(1, 0) ' next empty row End If '--- Write data -------------------------------------------------------- r.Cells(1, 1).Value = IIf(IsDate(txtDate.Value), CDate(txtDate.Value
'================================================================= ' PUBLIC MACROS – called from the Dashboard buttons '================================================================= Public Sub ShowInvoiceForm() frmInvoice.Show vbModal End Sub
