Voici le code qui fonctionne chez moi et qui répare les caractères qui ne " passent" pas.
Il fonctionne selon le principe évoqué précédemment ( sélection texte, copier, lancer l´utiliaire, correction du contenu du presse-papier, l´action de coller le prouve.
Je le propose à la lecture générale et je serais vraiment content de savoir si d´autres caractères ne passent pas, afin de compléter ce programme.
Pour le faire fonctionner, il suffit de copier tout ce qui suit dans un module de code vb.
Option Explicit
Sub Main()
Const CF_TEXT = 1 ´ Définit le format de texte
Dim Apostrophe_Anormale, Apostrophe_Normale
Dim DoubleQuoteGauche_Anormale, DoubleQuoteDroite_Anormale, DoubleQuote_Normale
Dim Tiret_Anormal, Tiret_Normal
Dim PointsDeSuspension_Anormaux, PointsDeSuspension_Normaux
Dim OEAccolés_Anormaux, OEAccolés_Normaux
Dim Tilde
Dim Temp
Apostrophe_Anormale = Chr(180): Apostrophe_Normale = Chr(39)
DoubleQuoteGauche_Anormale = Chr(147): DoubleQuoteDroite_Anormale = Chr(148): DoubleQuote_Normale = Chr(34)
Tiret_Anormal = Chr(150): Tiret_Normal = Chr(45)
PointsDeSuspension_Anormaux = Chr(133): PointsDeSuspension_Normaux = Chr(46) & Chr(46) & Chr(46)
OEAccolés_Anormaux = Chr(156): OEAccolés_Normaux = Chr(111) & Chr(101)
Tilde = Chr(126)
On Error Resume Next ´ Définit la gestion des erreurs.
Temp = Clipboard.GetText(CF_TEXT) ´ Obtient le texte contenu dans le Presse-papiers.
Temp = Replace(Temp, Apostrophe_Anormale, Apostrophe_Normale)
Temp = Replace(Temp, DoubleQuoteGauche_Anormale, DoubleQuote_Normale)
Temp = Replace(Temp, DoubleQuoteDroite_Anormale, DoubleQuote_Normale)
Temp = Replace(Temp, Tiret_Anormal, Tiret_Normal)
Temp = Replace(Temp, PointsDeSuspension_Anormaux, PointsDeSuspension_Normaux)
Temp = Replace(Temp, OEAccolés_Anormaux, OEAccolés_Normaux)
Temp = Replace(Temp, Tilde, " ")
Clipboard.SetText Temp ´On réécrit le texte amendé dans le presse-paier
End Sub