Are you sure you're willing to put up with typing 31 letters and getting the
error message which tells you to do it all over again?
I would use event code which limits the text to 30 characters or less
without the annoying message DV provides.
Example code...................no error trapping for text or dates
Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "A1:A10" 'edit to suit
Dim cell As Range
On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
With Target
If Len(.Value) > 30 Then
.Value = Left(.Value, 30)
End If
End With
End If
ws_exit:
Application.EnableEvents = True
End Sub
Gord Dibben MS Excel MVP