IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Caractère "é" remplacé par truc bizarre dans ma feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut Caractère "é" remplacé par truc bizarre dans ma feuille
    Bonjour :

    Dans toutes les cellules de ma feuille, le caractère "é" est remplacé par un truc bizarre "├⌐". Par ex : "ing├⌐nieur" à la place de "ingénieur" .

    Comment je peux résoudre remettre "é" si on ne peux pas entrer "├⌐" dans le code.(Quand je colle "├⌐" dans mon code ça donne "??")

    Merci d'avance.

  2. #2
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    Vu que cette feuille est une copie d'un fichier .csv, est-ce que je peux agir sur la procédure de la copie pour éviter ce problème?
    Par exemple, dans mon code, ajoute "remplace "é" par "e" "?

    Voici mon code de la copie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    Dim MyDocuments, strFileName, myToday, file, strConnection As String
     
    strConnection = "TEXT;" & "C:\Users\stg_pao\Desktop\ExportStat_Campagne_Destinataires.csv"
    With ActiveSheet.QueryTables.Add(Connection:= _
        strConnection, Destination:=Workbooks("data.xlsm").Sheets("Commerciaux").Range("$A$1"))
        .Name = "temp"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 437
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = True
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = True
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
     
     
    ' Importation données commerciaux terminée
     
    ' ---------------------------------------------------------------------------------------------------

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Si tu emploies cette méthode, est-ce que le résultat est le même ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.OpenText Chemin & Fichier, Local:=True

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Quel est la provenance de ton csv, une page web? utf8?

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    Bonjour :

    C'est des données que j'ai téléchargé depuis le logiciel Sarbacane. Les caractères sont bons dans le ficher csv mais après la copie dans mon classeur ils deviennent déformés.

  6. #6
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    J'ai trouvé une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .TextFilePlatform = 437
    en remplaçant 437 par une des valeurs ci-dessous :

    xlMacintosh ou xlMSDOS

    puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("data.xlsm").Sheets("Commerciaux").Cells.Replace "é", "é", xlPart
    Problème résolu.

  7. #7

  8. #8
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    Merci !

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Intéressant ton code rdurupt.
    De mon côté, j'ai recherché toutes les possibilités que j'ai rencontrées et faisait un Replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub Caractères_CSV_UTF8()
        Dim Recherche As Range
     
        Application.ScreenUpdating = False
     
        Cells.Replace "á", "à", xlPart
        Cells.Replace "Ã ", "à", xlPart
        Cells.Replace "À", "À", xlPart
        Cells.Replace "â", "â", xlPart
        Cells.Replace "Â", "Â", xlPart
        Cells.Replace "ä", "ä", xlPart
        Cells.Replace "é", "é", xlPart
        Cells.Replace "É", "É", xlPart
        Cells.Replace "è", "è", xlPart
        Cells.Replace "È", "È", xlPart
        Cells.Replace "ê", "ê", xlPart
        Cells.Replace "Ê", "Ê", xlPart
        Cells.Replace "ë", "ë", xlPart
        Cells.Replace "Ë", "Ë", xlPart
        Cells.Replace "ï", "ï", xlPart
        Cells.Replace "Ïl", "Ïl", xlPart
        Cells.Replace "î", "î", xlPart
        Cells.Replace "ÃŽ", "Î", xlPart
        Cells.Replace "ô", "ô", xlPart
        Cells.Replace "ö", "ö", xlPart
        Cells.Replace "Ô", "Ö", xlPart
        Cells.Replace "ù", "ù", xlPart
        Cells.Replace "û", "û", xlPart
        Cells.Replace "ü", "ü", xlPart
        Cells.Replace "ç", "ç", xlPart
        Cells.Replace "Ç", "Ç", xlPart
        Cells.Replace "ñ", "ñ", xlPart
        Cells.Replace "ò", "ò", xlPart
     
     
        Set Recherche = Cells.Find("Ã", LookIn:=xlValues, LookAt:=xlPart)
        If Not Recherche Is Nothing Then
            MsgBox "Il y a d'autres caractères à ajouter à la liste" & vbCrLf & _
                    "sur la ligne " & Recherche.Row & " par exemple", vbInformation, "Caractères UTF8"
     
        End If
     
        Set Recherche = Nothing
     
        Application.ScreenUpdating = True
        MsgBox "OK"
    End Sub
    Je vais faire des tests quand j'aurai quelques minutes pour voir si ta méthode est plus rapide.

  10. #10
    Invité
    Invité(e)
    Par défaut
    bonjour parmi,
    je ne suis pas sur qu'il fonctionne car un code ascii donné peut afficher "é" sur différente valeurs!

    mais ça veau le coup de tester!
    Citation Envoyé par parmi Voir le message
    Intéressant ton code rdurupt.
    De mon côté, j'ai recherché toutes les possibilités que j'ai rencontrées et faisait un Replace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Sub Caractères_CSV_UTF8()
        Dim Recherche As Range
     
        Application.ScreenUpdating = False
     
        Cells.Replace "á", "à", xlPart
        Cells.Replace "Ã ", "à", xlPart
        Cells.Replace "À", "À", xlPart
        Cells.Replace "â", "â", xlPart
        Cells.Replace "Â", "Â", xlPart
        Cells.Replace "ä", "ä", xlPart
        Cells.Replace "é", "é", xlPart
        Cells.Replace "É", "É", xlPart
        Cells.Replace "è", "è", xlPart
        Cells.Replace "È", "È", xlPart
        Cells.Replace "ê", "ê", xlPart
        Cells.Replace "Ê", "Ê", xlPart
        Cells.Replace "ë", "ë", xlPart
        Cells.Replace "Ë", "Ë", xlPart
        Cells.Replace "ï", "ï", xlPart
        Cells.Replace "Ïl", "Ïl", xlPart
        Cells.Replace "î", "î", xlPart
        Cells.Replace "ÃŽ", "Î", xlPart
        Cells.Replace "ô", "ô", xlPart
        Cells.Replace "ö", "ö", xlPart
        Cells.Replace "Ô", "Ö", xlPart
        Cells.Replace "ù", "ù", xlPart
        Cells.Replace "û", "û", xlPart
        Cells.Replace "ü", "ü", xlPart
        Cells.Replace "ç", "ç", xlPart
        Cells.Replace "Ç", "Ç", xlPart
        Cells.Replace "ñ", "ñ", xlPart
        Cells.Replace "ò", "ò", xlPart
     
     
        Set Recherche = Cells.Find("Ã", LookIn:=xlValues, LookAt:=xlPart)
        If Not Recherche Is Nothing Then
            MsgBox "Il y a d'autres caractères à ajouter à la liste" & vbCrLf & _
                    "sur la ligne " & Recherche.Row & " par exemple", vbInformation, "Caractères UTF8"
     
        End If
     
        Set Recherche = Nothing
     
        Application.ScreenUpdating = True
        MsgBox "OK"
    End Sub
    Je vais faire des tests quand j'aurai quelques minutes pour voir si ta méthode est plus rapide.

  11. #11
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Bonjour,

    sinon via ADODB.Stream.

    En indiquant le bon code de plateforme, il n'y a pas besoin de conversion supplémentaire avec un objet QueryTable …


    ______________________________________________________________________________________________________
    Je suis Paris, …

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    De mon côté, ces fichiers csv proviennent d'une requête web (de SAP)
    On a 2 choix:
    - importer en csv et les caractères sont foutus, mais les nombres sont des nombres
    - importer en xls et les caractères sont corrects, mais les nombres sont en valeurs

    Les deux nécessitent une macro particulière...

    La manière que j'utilise fonctionne bien, mais je vais faire des tests quand même avec le code de rdurupt. Tests pour la vitesse surtout...
    (Les caractères spéciaux sont toujours les mêmes et se remplacent toujours correctement)

  13. #13
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 184
    Par défaut
    Cells.Replace "á", "à", xlPart
    Cells.Replace "Ã ", "à", xlPart
    Cells.Replace "À", "À", xlPart
    Cells.Replace "â", "â", xlPart
    Cells.Replace "Â", "Â", xlPart
    Cells.Replace "ä", "ä", xlPart
    Cells.Replace "é", "é", xlPart
    Cells.Replace "É", "É", xlPart
    Cells.Replace "è", "è", xlPart
    Cells.Replace "È", "È", xlPart
    Cells.Replace "ê", "ê", xlPart
    Cells.Replace "Ê", "Ê", xlPart
    Cells.Replace "ë", "ë", xlPart
    Cells.Replace "Ë", "Ë", xlPart
    Cells.Replace "ï", "ï", xlPart
    Cells.Replace "Ãl", "Ïl", xlPart
    Cells.Replace "î", "î", xlPart
    Cells.Replace "ÃŽ", "Î", xlPart
    Cells.Replace "ô", "ô", xlPart
    Cells.Replace "ö", "ö", xlPart
    Cells.Replace "Ô", "Ö", xlPart
    Cells.Replace "ù", "ù", xlPart
    Cells.Replace "û", "û", xlPart
    Cells.Replace "ü", "ü", xlPart
    Cells.Replace "ç", "ç", xlPart
    Cells.Replace "Ç", "Ç", xlPart
    Cells.Replace "ñ", "ñ", xlPart
    Cells.Replace "ò", "ò", xlPart
    J'ai testé et ce code marche bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/05/2010, 11h23
  2. [ICEFACES] Les quotes sont remplacées par &#_39;
    Par Mathieu.J dans le forum JSF
    Réponses: 0
    Dernier message: 19/01/2010, 16h09
  3. Réponses: 1
    Dernier message: 29/12/2008, 11h31
  4. les caractères accentués sont remplacés par des caractères chinois
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/12/2008, 22h33
  5. truc bizarre dans une boucle
    Par deubelte dans le forum C++
    Réponses: 10
    Dernier message: 22/01/2007, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo