Algo sucede cuando copias la macro que no está respetando los saltos de línea.
Te pongo nuevamente la macro, revisa que cada línea de la macro, efectivamente quede en un renglón después de que la pegues.
'*****Macro*****
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.daM
ufila = ActiveCell.SpecialCells(xlLastCell).Row
If Not Intersect(Target, Range("B:B")) Is Nothing Then
If Target.Value <> "" Then
valfactura = Right(Target.Value, 7)
celda = Target.Address
celda = Mid(celda, 4, 7)
Set a = Range(Cells(1, 2), Cells(celda - 1, 2))
Set b = Range(Cells(celda + 1, 2), Cells(ufila, 2))
Set c = Range("F:F")
Union(a, b, c).Select
'Application.Union(Range(Cells(1, 2), Cells(celda - 1, 2)), Range(Cells(celda + 1, 2), Cells(ufila, 2))).Select
Set RangoObj = Selection.Find(What:=valfactura, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False)
If Not RangoObj Is Nothing Then
'La factura si existe
MsgBox ("La factura ya existe en la celda " & RangoObj.Address)
Target.Select
Exit Sub
Else
'Si la celda es borrada, simplemente regresa a target
Target.Select
End If
End If
End If
End Sub
'*****Macro*****
Otra cosa que puedes hacer, primero copiala y pégala en un documento en word como pegado especial / texto sin formato, luego lo vuelves a copiar de word y lo pegas en el lugar de las macros.
Y por último mándame un correo donde te pueda enviar el un archivo con la macro.
Saludos. Dam