Caractère mal interprété

Le
rmillerlcxl
Bonjour,

Je ne savais pas quoi inscrire dans le champ Objet.

Par une macro je liste les fichier .pdf présents dans le répertoi=
re dans une feuille.

Pour une fichier le qui apparaît dans la cellule est FF-Certificat pre=
́lable

Mais curieusement lors je fais msgbox(activecell.value) je reçois FF-C=
ertificat pre´lable.

Le é est mal "interprété". C'est curieux car si je fais acti=
vecell.offset(0,1).value = activecell.value … je reçois le m=
ême nom soit FF-Certificat prélable.

Existerait-il une façon de restaurer le texte afin de recevoir é =
au lieu de e´?

Je sais que ce fichier a été numérisé. C'est que dans u=
ne procédure qui envoi les fichiers dans PDF Creator … lorsque=
arrivé à ce fichier tout arrête.

Merci à l'avance.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michd
Le #26488170
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
Michd
Le #26488184
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
rmillerlcxl
Le #26488194
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
Michd
Le #26488230
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
Publicité
Poster une réponse
Anonyme