Caractère mal interprété

4 réponses
Avatar
rmillerlcxl
Bonjour,

Je ne savais pas quoi inscrire dans le champ Objet.

Par une macro je liste les fichier .pdf pr=C3=A9sents dans le r=C3=A9pertoi=
re dans une feuille.

Pour une fichier le qui appara=C3=AEt dans la cellule est FF-Certificat pre=
=CC=81lable=20

Mais curieusement lors je fais msgbox(activecell.value) je re=C3=A7ois FF-C=
ertificat pre=C2=B4lable.

Le =C3=A9 est mal "interpr=C3=A9t=C3=A9". C'est curieux car si je fais acti=
vecell.offset(0,1).value =3D activecell.value =E2=80=A6 je re=C3=A7ois le m=
=C3=AAme nom soit FF-Certificat pre=CC=81lable.

Existerait-il une fa=C3=A7on de restaurer le texte afin de recevoir =C3=A9 =
au lieu de e=C2=B4?

Je sais que ce fichier a =C3=A9t=C3=A9 num=C3=A9ris=C3=A9. C'est que dans u=
ne proc=C3=A9dure qui envoi les fichiers dans PDF Creator =E2=80=A6 lorsque=
arriv=C3=A9 =C3=A0 ce fichier tout arr=C3=AAte.

Merci =C3=A0 l'avance.

4 réponses

Avatar
Michd
Bonjour,
| Je sais que ce fichier a été numérisé
Es-tu certain que c'est le caractère "é" qui est utilisé dans "FF-Certificat prélable". Le meilleur
moyen de t'assurer de cela, ouvre l'explorateur Windows et retape le mot ou le caractère spécifié
"é". Est-ce que cela corrige la situation?
MichD
Avatar
Michd
La solution la plus simple c'est de modifier le nom du fichier manuellement. Si c'est le seul
caractère problématique dans les noms de fichiers, tu peux créer une petite procédure pour remplacer
ce caractère par "é" pour tous les fichiers. Ceci est le résultat de la numérisation...Est-ce qu'il
y a seulement le nom du fichier qui est affecté ou/et le contenu du fichier. Si c'est seulement pour
quelques "é", est-ce que cela vaut la peine d'élaborer une procédure pour effectuer la modification?
Ce caractère n'existe pas en vba. Essaie de copier dans la fenêtre de l'éditeur de code ce caractère
et tu obtiendras ceci. Tu as 2 caractères distincts. La boîte de message (msgbox) requiert VBA de
lire les caractères tandis qui si tu copies le contenu d'une cellule vers un autre, Excel ne fait
pas une lecture du contenu du message.
'------------------
Sub test()
Dim T As String
T = "e´"
MsgBox Len(T) ' = 2 caractères
End Sub
'------------------
MichD
Avatar
rmillerlcxl
Bonjour à nouveau,
Merci.
Il y a effectivement 2 caractères. Par Excel ou par VBA … lors que je tente de faire un rechercher, remplacer … le e´ n'est e ffectivement pas reconnu. J'ai aussi essayé la procédure ci-desso us mais sans succès.
Je suis conscient qu'il serait préférable de trouver la source du problème et faire la correction à cet endroit. Exemple le clavie r, le numériseur etc.
Mais c'est qu'avant de trouver et de savoir qu'il y a cette situation pour un fichier … c'est beaucoup de temps perdu. Aussi comme vous le men tionnez … j'ai eu l'exemple du e´ au lieu de é … mais pourrait-il y avoir d'autres caractères qui pourraient être mal interprétés?
Je vous partage aussi ceci. Dans ma procédure … la liste des n oms des fichiers .pdf est affichée dans une feuille Excel exemple A1:A 100. Donc c'est dans le fichier Excel … dans cette plage que je ten terais de corriger la situation.
N'y aurait-il pas un code comme Encoding = "ISO-8859-1" quelque chose du genre?
Merci à l'avance … encore.
Sub test2()
Dim T As String
T = "e´"
MsgBox Len(T) ' = 2 caractères
Selection.Replace what:="e´", replacement:="é"
Selection.Replace what:=T, replacement:="é"
MsgBox (ActiveCell.Value)
End Sub
Avatar
Michd
Bonjour,
Dans la plage A1:A100 si tu as dans une ligne UN caractère particulier comme celui indiqué, la macro
va le faire disparaitre. Si tu as plus d'un caractère par ligne, il faudra modifier la macro.
'-----------------------------------------
Sub test2()
Dim X As String, A As Long
Dim M As String
Application.EnableEvents = False
Application.ScreenUpdating = False
With Worksheets("Feuil1")
For Each C In .Range("A1:A10")
If Application.IsText(C) Then
For A = 1 To Len(C)
If AscW(Mid(C, A, 1)) = 769 Then
M = Mid(C, 1, A - 2) & "é"
M = M & Mid(C, A + 1, 100)
End If
Next
If M <> "" Then
C.Value = M
End If
End If
Next
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
a écrit dans le message de groupe de discussion :
Bonjour à nouveau,
Merci.
Il y a effectivement 2 caractères. Par Excel ou par VBA … lorsque je tente de faire un rechercher,
remplacer … le e´ n'est effectivement pas reconnu. J'ai aussi essayé la procédure ci-dessous mais
sans succès.
Je suis conscient qu'il serait préférable de trouver la source du problème et faire la correction à
cet endroit. Exemple le clavier, le numériseur etc.
Mais c'est qu'avant de trouver et de savoir qu'il y a cette situation pour un fichier … c'est
beaucoup de temps perdu. Aussi comme vous le mentionnez … j'ai eu l'exemple du e´ au lieu de é …
mais pourrait-il y avoir d'autres caractères qui pourraient être mal interprétés?
Je vous partage aussi ceci. Dans ma procédure … la liste des noms des fichiers .pdf est affichée
dans une feuille Excel exemple A1:A100. Donc c'est dans le fichier Excel … dans cette plage que je
tenterais de corriger la situation.
N'y aurait-il pas un code comme Encoding = "ISO-8859-1" quelque chose du genre?
Merci à l'avance … encore.
Sub test2()
Dim T As String
T = "e´"
MsgBox Len(T) ' = 2 caractères
Selection.Replace what:="e´", replacement:="é"
Selection.Replace what:=T, replacement:="é"
MsgBox (ActiveCell.Value)
End Sub