Option Explicit
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
On Error GoTo clean_exit
With Range("A5:H5")
.Interior.ColorIndex = 2
.Font.Size = 24
.RowHeight = 36
End With
With Range("A7:H40")
.Font.Size = 18
.RowHeight = 30
End With
With Range("A4:H40")
.Borders.LineStyle = xlContinuous
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Name = "Calibri"
End With
Range("A5:H40").Font.Bold = True
Range("A1:H4").Interior.ColorIndex = 1
Range("A7").Select
clean_exit:
Application.ScreenUpdating = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myStartCol As String
Dim myEndCol As String
Dim myStartRow As Long
Dim myLastRow As Long
Dim myRange As Range
If Target.Cells.Count > 1 Then Exit Sub
Application.ScreenUpdating = False
' *** Specify columns to apply this to ***
myStartCol = "A"
myEndCol = "H"
' *** Specify start row ***
myStartRow = 7
' Use first column to find the last row
myLastRow = Cells(Rows.Count, myStartCol).End(xlUp).Row
' Build range to apply this to
Set myRange = Range(Cells(myStartRow, myStartCol), Cells(myLastRow, myEndCol))
' Clear the color of all the cells in range
myRange.Interior.ColorIndex = 6
' Check to see if cell selected is outside of range
If Intersect(Target, myRange) Is Nothing Then Exit Sub
' Highlight the row and column that contain the active cell
Range(Cells(Target.Row, myStartCol), Cells(Target.Row, myEndCol)).Interior.ColorIndex = 8
Target.Interior.Color = vbGreen
Application.EnableEvents = False
Select Case Mid(Range("B7").Value, 10, 1)
Case Is = "S"
Range("E7").Value = "1995"
Case Is = "T"
Range("E7").Value = "1996"
Case Is = "V"
Range("E7").Value = "1997"
Case Is = "W"
Range("E7").Value = "1998"
Case Is = "X"
Range("E7").Value = "1999"
Case Is = "Y"
Range("E7").Value = "2000"
Case Is = "1"
Range("E7").Value = "2001"
Case Is = "2"
Range("E7").Value = "2002"
Case Is = "3"
Range("E7").Value = "2003"
Case Is = "4"
Range("E7").Value = "2004"
Case Is = "5"
Range("E7").Value = "2005"
Case Is = "6"
Range("E7").Value = "2006"
Case Is = "7"
Range("E7").Value = "2007"
Case Is = "8"
Range("E7").Value = "2008"
Case Is = "9"
Range("E7").Value = "2009"
Case Is = "A"
Range("E7").Value = "2010"
Case Is = "B"
Range("E7").Value = "2011"
Case Is = "C"
Range("E7").Value = "2012"
Case Is = "D"
Range("E7").Value = "2013"
Case Is = "E"
Range("E7").Value = "2014"
Case Is = "F"
Range("E7").Value = "2015"
Case Is = "G"
Range("E7").Value = "2016"
Case Is = "H"
Range("E7").Value = "2017"
Case Is = "J"
Range("E7").Value = "2018"
Case Is = "K"
Range("E7").Value = "2019"
End Select
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
On Error GoTo AllowEvents
Application.EnableEvents = False
Application.ScreenUpdating = False
For Each c In Target
If c.Row > 6 And c.Column < 9 And Not IsEmpty(c) Then
If Not c.HasFormula Then
c.Value = UCase(c.Value)
Else
c.Formula = Replace(c.Formula, "=", "=UPPER(") & ")"
End If
End If
Next c
If Target.CountLarge > 1000 Then GoTo AllowEvents
If Not Intersect(Target, Range("B:B")) Is Nothing Then
For Each c In Intersect(Target, Range("B:B"))
If c.Row > 6 Then
If Len(c.Value) <> 17 And Len(c.Value) > 0 Then
MsgBox "VIN MUST BE 17 CHARACTERS", vbCritical, "VIN CHARACTER COUNT MESSAGE"
c.Value = ""
c.Select
GoTo AllowEvents
Else
c.Characters(Start:=10, Length:=1).Font.ColorIndex = 3
End If
End If
Next c
End If
AllowEvents:
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub