Traitement de caractere Asci

Bonsoir à tous

Je recois des données à traiter avec dans certaines colonnes des caractéres venant d'une autre base et qui se retrouve dans mon fichier excel avec des caracteres asci, j ai cru comprendre que des macros pouvait traiter ce genre de probleme, y a t il un expert qui saurait me creer ce genre de macro.

ci joint un exemple des données que je retrouve dans mon fichier

Merci de votre aide si possible

Réparation mécanique

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Forfait Vidange - 100% Synthèse 5W30 + Filtre à huile + 13 points de contrôle sécurité

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Forfait Vidange - 100% Synthèse 5W30 + Filtre à huile + Filtre à air + 13 points de contrôle sécurité

Opération interne : Vidange + Filtre à huile + 13 points de contrôle

Bonjour,

à tester:

Sub Macro()
    ActiveSheet.UsedRange.Select
    Selection.Replace What:="Ã ", Replacement:="à", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    Selection.Replace What:="é", Replacement:="é", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    Selection.Replace What:="ô", Replacement:="ô", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

    Selection.Replace What:="è", Replacement:="è", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

A+

génial ca fonctionne, j ai juste retouche l espace avant la Guillement du premier Selection.Replace What:="Ã",

un grand merci

juste une chose j ai juste les colonnes P et Q de concernés, tu peux me l adapter stp dans la macro

Ca ne fonctionne pas comme ça ?

Qui peut le plus peut le moins.

à partir de quelle ligne ?

Si ça fonctionne bien , juste pour éviter de faire les 40000 lignes de chaque colonne non ?

Histoire de gagner du temps 😜

A partir de quel N° de ligne?

Les deux colonnes ont elles le même nombre de lignes?

Y a-t-il plusieurs feuilles à traiter ou le traitement doit se faire sur la feuille présente à l'écran?

Merci

Une seul feuille à partir de la ligne colonne p et q uniquement

Alors ce sera à partir de la ligne 1, et les deux colonnes ont le même nombre de lignes:

Remplacer

ActiveSheet.UsedRange.Select

par

Range("P1:Q" & Range("P" & Rows.Count).End(xlUp).Row).Select

Bonne soirée et suite.

Merci je teste demain

bonne fin de soirée

Bonsoir,

Autre proposition de code via utilisation d'un fichier texte ADODB.Stream :

Option Explicit

Sub conversion()
    Call UTF8_To_ANSI(plage)
End Sub

Sub UTF8_To_ANSI(ByVal plage As Range)
    Dim fic_texte As Object
    Dim cell As Range
    Dim nom_fichier As String

    Set fic_texte = CreateObject("ADODB.Stream")
    With fic_texte
        '// ouverture fichier texte
        .Open
        .Type = 2   'type texte

        '// écriture plage dans fichier texte en format ANSI
        .Charset = "x-ansi"
        For Each cell In plage.Cells
            .WriteText cell, 1  '?criture par ligne
        Next cell

        '// sauvegarde fichier texte dans répertoire temporaire
        .SaveToFile Environ("tmp") & "\conversion.txt", 2   'sauvegarde avec remplacement

        '// chargement fichier texte converti
        .LoadFromFile Environ("tmp") & "\conversion.txt"
        .Charset = "utf-8"
        .LineSeparator = 10 's?parateur de ligne

        '// recopie fichier texte converti dans plage
        For Each cell In plage.Cells
            cell = .ReadText(-2)    'lecture par ligne
        Next cell

        '// fermeture fichier texte
        .Close
    End With
End Sub

Merci Algoplus

ca fonctionne très bien.

Genial

Merci également a thev mais j ai adopté l autre solution qui fonctionne très bien

Rechercher des sujets similaires à "traitement caractere asci"