Toutes versions Substituer en cascade

cambridge77

XLDnaute Nouveau
Bonjour,
j'ai un énorme fichier qui comporte des caractères un peu particulier qui en fait, sont des "é" ou des "è" ou des "ô". Parfois dans la même cellule.
J'aimerai utiliser la fonction SUBSTITUE, en cascade, pour remplacer tous ces caractères.
Avez vous une solution ?
Exemple :
Alsace Côtes de Barr blanc (Sylvaner), Alsace sélection de grains nobles, cépage jacquère blanc
Devrait devenir :
Alsace Côtes de Barr blanc (Sylvaner), Alsace sélection de grains nobles, cépage jacquâre blanc

La fonction Recherche / remplace fait le taff, mais je dois mettre a jour souvent cette liste et le fichier fait des milliers de ligne.
Merci pour votre aide.
 

vgendron

XLDnaute Barbatruc
Bonjour

Avec un extrait de ton fichier en guise d'exemple, ce serait plus pratique
sinon..
quelques idées
1) par macro
2) Fichier avec plusieurs milliers de ligne===> utilisation de tableau
3) une fonction de remplacement des caractères choisis
toute faite ici
VB:
Function UTF8_encode(S As String) As String
Dim Sr As String, Sc As String, i As Integer
    Sr = ""
    For i = 1 To Len(S)
        Sc = Mid(S, i, 1)
        Select Case Sc
            Case " ": Sc = "%20"
            Case "À": Sc = "%c3%80"
            Case "Á": Sc = "%c3%81"
            Case "Â": Sc = "%c3%82"
            Case "Ã": Sc = "%c3%83"
            Case "Ä": Sc = "%c3%84"
            Case "Å": Sc = "%c3%85"
            Case "Æ": Sc = "%c3%86"
            Case "Ç": Sc = "%c3%87"
            Case "È": Sc = "%c3%88"
            Case "É": Sc = "%c3%89"
            Case "Ê": Sc = "%c3%8a"
            Case "Ë": Sc = "%c3%8b"
            Case "Ì": Sc = "%c3%8c"
            Case "Í": Sc = "%c3%8d"
            Case "Î": Sc = "%c3%8e"
            Case "Ï": Sc = "%c3%8f"
            Case "Ð": Sc = "%c3%90"
            Case "Ñ": Sc = "%c3%91"
            Case "Ò": Sc = "%c3%92"
            Case "Ó": Sc = "%c3%93"
            Case "Ô": Sc = "%c3%94"
            Case "Õ": Sc = "%c3%95"
            Case "Ö": Sc = "%c3%96"
            Case "×": Sc = "%c3%97"
            Case "Ø": Sc = "%c3%98"
            Case "Ù": Sc = "%c3%99"
            Case "Ú": Sc = "%c3%9a"
            Case "Û": Sc = "%c3%9b"
            Case "Ü": Sc = "%c3%9c"
            Case "Ý": Sc = "%c3%9d"
            Case "Þ": Sc = "%c3%9e"
            Case "ß": Sc = "%c3%9f"
            Case "à": Sc = "%c3%a0"
            Case "á": Sc = "%c3%a1"
            Case "â": Sc = "%c3%a2"
            Case "ã": Sc = "%c3%a3"
            Case "ä": Sc = "%c3%a4"
            Case "å": Sc = "%c3%a5"
            Case "æ": Sc = "%c3%a6"
            Case "ç": Sc = "%c3%a7"
            Case "è": Sc = "%c3%a8"
            Case "é": Sc = "%c3%a9"
            Case "ê": Sc = "%c3%aa"
            Case "ë": Sc = "%c3%ab"
            Case "ì": Sc = "%c3%ac"
            Case "í": Sc = "%c3%ad"
            Case "î": Sc = "%c3%ae"
            Case "ï": Sc = "%c3%af"
            Case "ð": Sc = "%c3%b0"
            Case "ñ": Sc = "%c3%b1"
            Case "ò": Sc = "%c3%b2"
            Case "ó": Sc = "%c3%b3"
            Case "ô": Sc = "%c3%b4"
            Case "õ": Sc = "%c3%b5"
            Case "ö": Sc = "%c3%b6"
            Case "÷": Sc = "%c3%b7"
            Case "ø": Sc = "%c3%b8"
            Case "ù": Sc = "%c3%b9"
            Case "ú": Sc = "%c3%ba"
            Case "û": Sc = "%c3%bb"
            Case "ü": Sc = "%c3%bc"
            Case "°": Sc = "%c2%b0"
            Case vbCrLf: Sc = "%0a"
        End Select
        Sr = Sr & Sc
    Next i
    UTF8_encode = Sr
End Function
Sub testfonction()
Dim retour As String
retour = UTF8_encode("°C" & Chr(10) & "°C")
MsgBox retour
End Sub
 

vgendron

XLDnaute Barbatruc
un essai avec ce code
à adapter pour ajouter tous les différents caractères (la fonction toute faite, n'était pas adaptée)
 

Fichiers joints

Discussions similaires


Haut Bas