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 :

Macro avec des accents


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut Macro avec des accents
    Bonjour,

    Est ce possible d'ignorer les accents dans une macro ?

    Je m'explique :
    fichier n°1
    Troye d''Ariege (colonne avec l'adresse du site internet)
    5000 lignes

    fichier n°2
    Troye d''Ariège (colonne en attente de recevoir la macro avec le site internet)
    35 000 lignes

    La macro va aller chercher si elle trouve des villes identiques entre le fichier n°1 et 2
    Si macro trouve 2 villes identiques = prend adresse www dans le fichier 1 pour insérer adresse www dans le fichier 2


    1ère question
    Est ce qu'il existe une méthode pour comparer les villes sans tenir compte des accents ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ÀàÁáÂâÃãÄäÅ寿ÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖöØøÙùÚúÛûÜüÝýÞþœŒ
    2 ème question
    Si toutes les villes sont en Majuscule dans le fichier n°1 est ce que ça pourrait solutionner le problème de mes accents qui sont dans le fichier n°2 que je veux conserver ?

    Pour le moment je suis bloqué la dessus parce toutes les villes qui ont des accents sont ignorés avec l'exécution de la macro

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Bonjour,
    Je ne sais pas comment tu fais la recherche mais tu as une option :
    A tester ...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    Normalement cela permet d'ignorer les différences entre min et maj, mais n'est pas insensible aux accents

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Le truc qui marchera à coup sûr, c'est d'utiliser les expressions régulières pour remplacer tous tes caractères à accents par les caractères sans accents.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    c'est exactement ce que je ne veux pas faire

    Je dois conserver les accents c'est ça ma question et pas comment les enlever

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    On ne s'est pas très bien compris: tu compares ta donnée sans accent à celle où tu remplaces les accents par des lettres pour savoir si tes 2 villes correspondent. Bien sûr ça ne modifiera rien à tes données. Ai-je été assez clair?

    Lis un peu les tutos sur les regex je pense que ça sera un peu plus complet et explicite sur ce que ça te permet de faire:
    http://lgmorand.developpez.com/dotnet/regex/
    http://cafeine.developpez.com/access/tutoriel/regexp/

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 277
    Par défaut
    Ce que je cherche dois ressembler à ça

    vbTextCompare
    si trouve
    [^ÀàÁáÂâÃãÄäÅ寿ÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖöØøÙùÚúÛûÜüÝýÞþœŒ]
    alors ignore uniquement ces caractères pour faire la comparaison
    Ci dessus l'expression régulière ignore les accents, mais je ne sais pas comment l'insérer dans une macro pour Excel !

    Si j'ai bien compris je dois utiliser ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Command4_Click()
      Dim texte1 As String, texte2 As String, conclusion As String
      texte1 = "ÀàÁáÂâÃãÄäÅ寿ÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖöØøÙùÚúÛûÜüÝýÞþœŒ"
      texte2 = "AaBbCcDdEefGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"
      conclusion = IIf(comparons(texte1, texte2), "sont très vraisemblablement", "ne sont pas")
      MsgBox texte1 & vbCrLf & "et" & vbCrLf & texte2 & vbCrLf & conclusion & " la même chose"
    End Sub
    De cette façon tous les caractères spéciaux seront ignoré.
    Exact ?

  8. #8
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Je préfèrerais en ce qui me concerne rester sur du "très probablement" (ce sera très souvent bien suffisant dans un tel cas ...)

    Exemple :

    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
    Private Sub Command1_Click()
      Dim texte1 As String, texte2 As String, conclusion As String
      texte1 = "Voilà un exemple. Ici avec le mot Ariège et là avec le mot Tübingen"
      texte2 = "Voila un exemple. Ici avec le mot Ariege et là avec le mot Tubingen"
      conclusion = IIf(comparons(texte1, texte2), "sont très vraisemblablement", "ne sont pas")
      MsgBox texte1 & vbCrLf & "et" & vbCrLf & texte2 & vbCrLf & conclusion & " la même chose"
    End Sub
    Private Function comparons(t1 As String, T2 As String) As Boolean
      Dim titi() As Byte, I As Integer, filtre As String
      titi = StrConv(t1, vbFromUnicode)
      filtre = ""
      For I = 0 To UBound(titi)
        If titi(I) > 127 Then
          filtre = filtre & "?"
        Else
          filtre = filtre & Chr(titi(I))
        End If
      Next
    If T2 & t1 Like filtre & filtre Then comparons = True
    End Function
    Et rien n'empêche, si on le désire en plus, d'ignorer la casse (suffit de comparer Lcase de l'un avec Lcase de l'autre, par exemple...

Discussions similaires

  1. Comparaison avec des accents
    Par Zugg dans le forum Paradox
    Réponses: 8
    Dernier message: 26/09/2007, 10h33
  2. Export de table avec des accents
    Par AODRENN dans le forum Excel
    Réponses: 1
    Dernier message: 24/05/2007, 11h57
  3. Export de table avec des accents
    Par AODRENN dans le forum Outils
    Réponses: 3
    Dernier message: 16/05/2007, 21h21
  4. Mauvais tri des String avec des accents
    Par lbreuillard dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 23/09/2005, 12h21
  5. Recherche avec des accents!?
    Par mona dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2005, 20h36

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