La macro era inserita nell'immagine inviata.
Comunque è questa:
Option Compare Text
Sub Cambia2()
Dim strCella As String, Diz As Range
'
Set Diz = Sheets("dizionario").Range("O1") '<<< Le coordinate del dizionario
'
For Each cella In Range("H1:H10000")
If Len(cella) > 0 And cella.HasFormula = False Then
strCella = cella.Text
For I = 0 To 1000
If Diz.Offset(I, 0) = "" Then Exit For
If Len(strCella) > Len(Replace(strCella, Diz.Offset(I, 0), "")) Then
strCella = Replace(strCella, Diz.Offset(I, 0), Diz.Offset(I, 1))
cella.Value = strCella
' Exit For '***1
End If
Next I
End If
Next cella
End Sub
Poi ho notato che c'è un problema che è stato sottovalutato che il csv non gestisce i fogli multipli. Mi sono accorto di questo in quanto nel file che ti ho inviato in fase di salvataggio elimina i restanti. Quindi anche se inseriamo un dizionario nel foglio del file csv quest'ulltimo va perso.
Per farti capire come avevo strutturato il file ti allego un nuovo file che ho salvato in xlsm contenente anche la macro stessa.
http://www.ecartucce.it/output_7.zip