This code should do what you need:
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim lastCol As Integer, myRow As Long
   Dim myRange As Range
   
   If Target.Count > 1 Then Exit Sub
   
   Set myRange = Target
   If Target.Column = 16 Then
      myRow = Target.Row
      Application.EnableEvents = False
      With ThisWorkbook.ActiveSheet
         lastCol = .Cells(myRow, Columns.Count).End(xlToLeft).Column
         If lastCol >= 18 Then
            .Cells(myRow, 18).Resize(, lastCol - 17).Copy .Cells(myRow, 19)
         End If
      End With
      Target.Offset(, 2) = Target
      Target = ""
      Application.EnableEvents = True
      Set myRange = Target.Offset(, 2)
   End If
   
   If Intersect(myRange, [R6:AJ43]) Is Nothing Then Exit Sub
   If Not myRange Like "[ud]*" Then myRange.Font.Name = "Arial": myRange.Font.Color = vbBlack: Exit Sub
   Application.EnableEvents = False
   myRange.Font.Name = "Arial"
   With myRange.Characters(1, 1)
      .Font.Name = "Marlett"
      .Text = IIf(.Text = "u", "t", "u")
      myRange.Font.Color = IIf(.Text = "u", vbRed, vbGreen)
   End With
   Application.EnableEvents = True
End Sub
Regards,
Antonio