Remove the DV and use
[vba]
Private Sub Worksheet_Change(ByVal Target As Range)
Dim disOrder As String
Dim newOrder As String
Dim disT As String
Dim disC As String
Dim disD As String
Dim disV As String
Dim disH As String
Dim disS As String
Dim newT As String
Dim newC As String
Dim newD As String
Dim newV As String
Dim newH As String
Dim newS As String
Dim rngTes As Range
With Application
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
If Target.Count = 1 Then
If Not Application.Intersect(Target, Range("ORDER_CHARACTERS")) Is Nothing Then
disOrder = LCase(Target.Value)
disT = "t"
disC = "c"
disD = "d"
disV = "v"
disH = "h"
disS = "s"
If InStr(disOrder, disT) > 0 Then newT = disT
If InStr(disOrder, disC) > 0 Then newC = disC
If InStr(disOrder, disD) > 0 Then newD = disD
If InStr(disOrder, disV) > 0 Then newV = disV
If InStr(disOrder, disH) > 0 Then newH = disH
If InStr(disOrder, disS) > 0 Then newS = disS
Target.Value2 = newT & newC & newD & newV & newH & newS
Select Case LCase(Target.Offset(0, -3).Value)
Case "item 1": Set Rng = Me.Range("RANGE_VALID_COMBINATIONS_FOR_FREE_TEXT_WITH_ITEM_1")
Case "item 2": Set Rng = Me.Range("RANGE_VALID_COMBINATIONS_FOR_FREE_TEXT_WITH_ITEM_2")
Case "item 3": Set Rng = Me.Range("RANGE_VALID_COMBINATIONS_FOR_FREE_TEXT_WITH_ITEM_3")
Case "no item": Set Rng = Me.Range("RANGE_VALID_COMBINATIONS_FOR_FREE_TEXT_WITH_NO_ITEM")
End Select
If IsError(Application.Match(Target.Value, Rng, 0)) Then MsgBox "Invalid Value"
End If
End If
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub[/vba]