Qui n´a pas déjà été ennuyé par le message ci-dessous:
" Votre message ne doit pas contenir de caractères spéciaux. Ces derniers peuvent provenir d´un copier / coller depuis un autre document."
Je vous présente une solution garantie sans virus ( normal, on n´accède pas au disque dur). De plus, garantie ABSOLUE, je soumets les sources du programme à tous et je ne propose pas d´éxécutable, mais un moyen de le faire soi-même.
Cette solution fonctionne selon le principe d´un utilitaire que vous lancez APRES avoir copié le texte qui ne " passe" pas dans le presse-papier.
Ce code fonctionne chez moi et répare les caractères qui ne " passent" pas.
Il fonctionne selon le principe évoqué précédemment:
- vous sélectionnez le texte qui ne " passe" pas,
- vous faites copier ( ou CTRL+C),
- lancez l´utilitaire, " ex: RéparerCaractèresSpéciaux", celui-ci corrige le contenu du presse-papier,
- l´action de coller ( CTRL+V) que vous enchaînez le prouve.
Je propose le code à 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.
Puis vous lancer " Créer un exécutable", vous le nommez comme vous voulez, ex: RéparerCaractèresSpéciaux , et c´est ce nom que vous invoquez.
Si vous n´avez pas d´outils de développement, vous pouvez copier ce code pour en faire une macro Word ou Excel.
Si vous ne savez pas comment faire des macros, ce n´est pas grave, bcp de forumeurs peuvent répondre.
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