Transformer des symboles en lettres

Bonjour à tous,

Je ne suis pas une pro des macros, j'ai donc besoin de votre aide !

J'exporte un fichier sous format CSV que j'ouvre avec excel. Le problème est que j'ai certaines lettres qui se transforment en symboles…

du type : "Très haute", le "è" qui devrait être un "è" ; ou alors "é" qui devrait être un "é" ...

J'aimerai donc mettre en place une macro qui me permettrai de transformer tous ces symboles en lettres.

Merci beaucoooooouuuuuup pour votre aide.

Bonne journée,

Gaëlle

Bonjour,

Si je me rappelle bien, c'est de l'utf8 le codage, normalement tu as le choix lors de l'ouverture du fichier csv, pour l'ouvrir au format utf8, c'est presque tout en bas de la liste de choix, ça t'évitera de passer par une macro

Si tu n'as pas le choix et que ça ne marche toujours pas, merci de me dire.

EDIT: Tu peux aussi trouver des convertisseurs utf8 en ascii et inversement.

Je n'ai pas le choix lors de l'ouverture du fichier...

Rebonjour, je te passe quand même des aides:

https://www.vulgarisation-informatique.com/document-utf8-excel.php

https://www.commentcamarche.net/forum/affich-18338950-convertir-utf-8-en-ansi

Est-ce que tu peux ouvrir ton fichier sur le bloc note par exemple, puis faire enregistrer sous, et sélectionner codage ansi (c'était pas ascii mais ansi en fait).

J'ai ouvert mon fichier sur bloc note et j'ai testé l'encodage ANSI, les symboles c'est ok...maintenant le problème c'est les colonnes, rien n'est à sa place...

Je n'y arrive pas... Voici mes fichiers simplifiés, avec une seule opération.

Sous le format CSV et TXT.

Peut être que vous arriverez à en sortir quelque chose...

Merci encore,

Gaëlle

36glpi5.csv (855.00 Octets)
19glpi5.txt (923.00 Octets)

Il semble que tu aies des saut de ligne dans certaines cellules, ça doit être ma géré par Excel quand tu ouvres le fichier...

ça fait n'importe quoi dès la cellule E2 qui contient:

Bonjour,

La vente pour le lot D009 sur le programme BANA BIZA pour les clients RR et KO ne remonte par or celle-ci a bien été créée sous G2PCOM avec le numéro 64285.

Je vous remercie par avance

Bien cordialement

La

Oui, et le problème c'est que c'est un export avec plus de 1000 lignes, donc je ne peux pas modifier toutes les cellule avec saut de ligne....

Rebonjour,

J'ai essayé d'utiliser la fonction Strconv mais pas concluant pour le moment...

Et par le biais d'une macro cela ne serait-il pas plus simple ?

En tout cas merci beaucoup pour votre aide.

Gaëlle

C'est bon j'ai réussi à faire une macro. Merci pour votre aide et bonne fin de journée,

Gaëlle

re,

à tester,

Sub test()
Cells.Replace What:=Chr(195) & Chr(169), Replacement:="é", LookAt:=xlPart
Cells.Replace What:=Chr(195) & Chr(168), Replacement:="è", LookAt:=xlPart
Cells.Replace What:=Chr(195), Replacement:="à", LookAt:=xlPart
End Sub

Bonjour,

Je ne voulais pas passer par un code comme i20100 parce que je voulais tester quelque chose qui couvre vraiment tous les caractères un peu spéciaux qui peuvent être mis à mal par l'ouverture d'un fichier en utf8, comme le ç, le à, le ù, etc...

Bonjour,

Si tu as la possibilité de télécharger Power Query pour ta version Excel 2010, télécharge et installe !...

Tu pourras traiter ton csv à l'ouverture en indiquant l'origine en UTF8.

Cdlt.

Bonsoir Gaëlle,

Une proposition de lecture de fichier texte UTF-8 au moyen de l'object ADODB.Stream :

Option Explicit
Sub ImportTXT_UTF8()
    Dim adoStream As Object
    Dim oRange As Range
    Dim aString() As String
    Dim lRow As Long, lCol As Long, i As Long
    Dim sTextFileToConvert As String
    Dim lNbrows As Long

    'Récupération du fichier texte UTF-8 à importer
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Show
        .Title = "Sélectionner le fichier TXT UTF-8 à convertir"
        If .SelectedItems.Count > 0 Then
            sTextFileToConvert = .SelectedItems(1)
        Else
            MsgBox "Aucun fichier sélectionné!", vbOKOnly, "TRAITEMENT IMPOSSIBLE"
            Exit Sub
        End If
    End With

    Set adoStream = CreateObject("ADODB.Stream")

    adoStream.Charset = "UTF-8"
    adoStream.LineSeparator = adLF
    adoStream.Open
    adoStream.LoadFromFile sTextFileToConvert

    'Chargement de la ligne contenant les entêtes de colonnes
    aString = Split(Replace(adoStream.ReadText(adReadLine), Chr(34), ""), ";") 'split des entêtes dans un tableau
    lCol = UBound(aString)
    If lCol > 0 Then
        lRow = lRow + 1
        With ActiveSheet
            Set oRange = .Range(.Cells(lRow, 1), .Cells(lRow, lCol))
            oRange.Value = Application.Transpose(Application.Transpose(aString))
        End With
    End If

    'Chargement de la totalité restante du fichier texte en supprimant les "
    aString = Split(Replace(adoStream.ReadText, Chr(34), ""), ";")
    lNbrows = (UBound(aString) / lCol) - 1 ' Calcul du nombre de lignes du fichier texte chargé
    With ActiveSheet
        Set oRange = .Range(.Cells(2, 1), .Cells(2 + lNbrows, lCol))
        oRange.Value = Application.Transpose(Application.Transpose(aString))
    End With

    adoStream.Close
    Set adoStream = Nothing

End Sub
Rechercher des sujets similaires à "transformer symboles lettres"