AHK Macro: Show NumLock, Insert

Is your LAPTOP  keyboard MISSING the STATUS INDICATOR for Insert , CapsLock or NumLock keys?

*IF* your computer once had but LOST this feature, it will be EASIER for you to reinstall from your OEM's website or the installation disk that *may* have come with your computer.

Otherwise this will help!  Requires installing AHK.

; AHK script - a great PLAN B if your laptop is missing this feature AND not available from the OEM download page

~CapsLock:: ; Show CapsLock state on screen
 if GetKeyState("CapsLock", "T")
 Progress, B1 W200 H28 ZH0 FS11 WS900 Y700 CTFF0000, CAPS LOCK ON
 else
 Progress, B1 W200 H28 ZH0 FS11 WS900 Y700 CT0000FF, CAPS LOCK OFF
 SetTimer, OSD_OFF, -2000
 return

~NumLock:: ; Show NumLock state on screen
 if GetKeyState("NumLock", "T")
 Progress, B1 W200 H28 ZH0 FS11 WS900 Y700 CT00FF00, NUM LOCK ON
 else
 Progress, B1 W200 H28 ZH0 FS11 WS900 Y700 CTFF0000, NUM LOCK OFF
 SetTimer, OSD_OFF, -2000
 return

~Insert:: ; Show Insert state on screen
 if GetKeyState("Insert", "T")

 Progress, B1 W200 H28 ZH0 FS11 WS900 Y700 CTE60316, OVERWRITE MODE
else
 Progress, B1 W200 H28 ZH0 FS11 WS900 Y700 CT007800, INSERT MODE
 SetTimer, OSD_OFF, -2000
 return

OSD_OFF:
 Progress, off
 return

;https://autohotkey.com/board/topic/67080-display-capslock-state-helpful-for-vim/?hl=numlock+state#entry457616
 ; https://autohotkey.com/docs/KeyList.htm

Other AHK resources:

Install AutoHotKey for Windows
AHK Tutorial
Setup Notepad++ for AutoHotkey

 

 

Excel Macro Autonumber NonBlanks

Sub NumbernonBlankTestLines()
' user must manually highlight range in Column A
Dim msgs, qy, rep
Dim testcount, r, c As Integer,
Dim startHere As Range, rngSelected As Range
Dim markblank, enforcesinglerowblank As Boolean
enforcesinglerowblank = False

' MsgBox "last cell is " & findlastusedcell()
' use if we add feature to insert column A and auto-select range

testcount = 0

Set startHere = ActiveCell
Set rngSelected = Selection

If TypeName(Selection) = "Range" Then
If Selection.Areas.Count = 1 Then
' MsgBox "selected rows is " & rngSelected.Rows.Count & vbCrLf & "columnn is " & ActiveCell.Column

If rngSelected.Rows.Count < 2 Or ActiveCell.Column <> 1 Then GoTo oops

' magic starts here
'Selection.Name = "eraseme"
markblank = False
'MsgBox rngSelected.Rows.Count

If WorksheetFunction.CountA(rngSelected) > 1 Then
qy = MsgBox("OVERWRITE existing DATA?", vbOKCancel, "WARNING!")
If qy = vbCancel Then
Exit Sub
Else
rngSelected.ClearContents
End If
'WorksheetFunction.CountA(rngSelected)
End If
For r = 1 To rngSelected.Rows.Count

rngSelected(r).Activate

If r = 1 Then
If rngSelected(r).Offset(0, 1) = "" Then
MsgBox rngSelected(r).Offset(0, 1).Value
GoTo oops
End If
End If

'case not blank
If rngSelected(r).Offset(0, 1) > "" Then
If enforcesinglerowblank And markblank Then
GoTo doublelineerror
ElseIf Not markblank Or Not enforcesinglerowblank Then
markblank = Not markblank
rngSelected(r).Value = testcount + 1
' markblank = False Else markblank = True
testcount = testcount + 1
End If
'case blank
ElseIf rngSelected(r).Offset(0, 1) = "" Then
If enforcesinglerowblank And Not markblank Then
GoTo doublelineerror
ElseIf markblank Then
markblank = Not markblank
End If
Else: MsgBox
"Unknown", vbCritical, "Error!"

End If

Next r
' GoTo A1
MsgBox "Numbered " & testcount & " rows"
'measure column B begin and end
'make temporary range from A2: to match B begin to B end

'tbd select column A
'if selection < 2 rows warn and exit
'for each row in A, test adjacent cell B has value - number A, set flag notblank
'if flag notblank then next row should be blank, else warn andexit else skip to next
'if flag notblank, then next row should NOT be blank, else warn and exit, else number A
Else
MsgBox
"Please select only one area.", vbInformation
End If
End If
Exit Sub

doublelineerror:
MsgBox "Only one row per test, MUST be separated by exactly one blank row: see Test# " & testcount, vbCritical, "Halted / Config Error"

Exit Sub

oops:
MsgBox "HALTED: must select multiple continuous rows within column A, alongside alternating data in column B" & vbCrLf _
& "and first selected row is NOT blank", vbCritical, "SELECTION ERROR"

End Sub