I am using the formula shown below to format the user input number in D6 as ####-####-#### and to ensure only twelve digits (not letters) are entered. However, I need the same function on the same worksheet to happen to D3 but only to ensure nine digits (#########) are entered. This would prevent users from entering letters such as O for zeros or I for ones in either cell.
Is this possible and can anyone help me with this?
Is this possible and can anyone help me with this?
Code:
[/FONT]
[FONT=Calibri][COLOR=black][FONT=Verdana]Option Explicit<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Private Sub Worksheet_Change(ByVal Target As Range)<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Dim myRng As Range<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Dim myCell As Range<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Dim iCtr As Long<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Set myRng = Me.Range("D6")<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]If Intersect(Target, myRng) Is Nothing Then Exit Sub<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]On Error GoTo errHandler:<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Application.EnableEvents = False<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]For Each myCell In Intersect(Target, myRng).Cells<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]With myCell<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]If IsEmpty(.Value) Then<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]'do nothing<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]ElseIf Application.IsNumber(.Value) Then<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]MsgBox "Please enter Text in: " & .Address(0, 0)<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana].ClearContents<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]ElseIf Len(.Value) <> 12 Then 'Must be twelve digits<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]MsgBox "Information numbers are twelve digits: " & .Address(0, 0)<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana].ClearContents<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Else<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]For iCtr = 1 To Len(.Value)<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]If IsNumeric(Mid(.Value, iCtr, 1)) Then<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]'keep looking<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Else<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]MsgBox "Numbers Only for the Information Number: " & .Address(0, 0)<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana].ClearContents<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Exit For<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]End If<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Next iCtr<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana].Value = Format(.Value, "0000-0000-0000")<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]End If<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]End With<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Next myCell<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]errHandler:<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]Application.EnableEvents = True<o:p></o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]<o:p> </o:p>[/FONT][/COLOR]
[COLOR=black][FONT=Verdana]End Sub[/FONT][/COLOR][/FONT]
[FONT=Calibri][/FONT]
[FONT=Calibri]