Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Membre chevronné Avatar de issoram
    Homme Profil pro Zeco
    Développeur informatique
    Inscrit en
    janvier 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Nom : Homme Zeco
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : janvier 2009
    Messages : 625
    Points : 739
    Points
    739

    Par défaut suppression accents chaines de caractères

    Bonjour,

    Pour la suppression des accents dans une chaine j'ai trouvé le code suivant dans la FAQ, mais je ne comprends pas son fonctionnement.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Declare Function FoldString Lib "kernel32.dll" Alias _
            "FoldStringA" (ByVal dwMapFlags As Long, ByVal lpSrcStr As Long, _
            ByVal cchSrc As Long, ByVal lpDestStr As Long, ByVal cchdest As Long) As Long
     
    Function OteAccents(ByVal str As String) As String
     
        Dim i As Integer
        OteAccents = Space(Len(str))
     
        For i = 0 To (Len(str) - 1) * 2 Step 2
            FoldString &H40, StrPtr(str) + i, 1, StrPtr(OteAccents) + i, 1
        Next i
     
    End Function
    Pourriez vous me donner quelques explications ?

    Merci d'avance

  2. #2
    Expert Confirmé Sénior

    Homme Profil pro Philippe
    ex Observeur CGG / Analyste prog.
    Inscrit en
    juin 2006
    Messages
    2 545
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : juin 2006
    Messages : 2 545
    Points : 5 874
    Points
    5 874

    Par défaut

    Salut,pour cela tu peux utiliser [f1] et http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx ainsi que Debug.print et la fenêtre d'exécution dans l'environnement VBE : http://silkyroad.developpez.com/VBA/DebuterMacros/

    Un autre exemple peut-être plus accessible

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function SupprimerAccents(ByVal sChaine As String) As String
    Dim sTmp As String, i As Long, p As Long
    Const sCarAccent As String = "ÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ"
    Const sCarSansAccent As String = "AAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy"
        sTmp = sChaine
        For i = 1 To Len(sTmp)
            p = InStr(sCarAccent, Mid(sTmp, i, 1))
            If p > 0 Then Mid$(sTmp, i, 1) = Mid$(sCarSansAccent, p, 1)
        Next i
        SupprimerAccents = sTmp
    End Function

  3. #3
    Membre chevronné Avatar de issoram
    Homme Profil pro Zeco
    Développeur informatique
    Inscrit en
    janvier 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Nom : Homme Zeco
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : janvier 2009
    Messages : 625
    Points : 739
    Points
    739

    Par défaut

    Bonjour,

    Ma question n'est pas:


    Mais bel et bien : Comment fonctionne le code ci-dessus de suppression des accents car (je n'ai pas honte de le dire), je n'ai pas compris le contenu de l'aide.

    Merci bien

  4. #4
    Rédacteur
    Avatar de Ormonth
    Homme Profil pro Didier GONARD
    Formateur Office et développeur VBA en freelance
    Inscrit en
    février 2008
    Messages
    2 773
    Détails du profil
    Informations personnelles :
    Nom : Homme Didier GONARD
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : février 2008
    Messages : 2 773
    Points : 6 138
    Points
    6 138

    Par défaut

    Bonjour,

    il ne s'agit pas de VBA, mais d'utilisation des API...

    Dans le cas présent de "FoldStringA" qui fonctionne ainsi :

    FoldString permet de faire différentes tranformations d'une
    chaîne de caractères, en particulier de scinder les caractères accentués en deux
    caractères successifs (la lettre sans accent et l'accent sans lettre). Ainsi,
    "Du mélèze brûle dans l'âtre" devient "Du me´le`ze bru^le dans l'a^tre". Après,
    il suffit de parcourir cette chaîne en éliminant tous les accents.
    L Longre
    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    N'oubliez pas de mettre : ..quand c'est le cas !

  5. #5
    Membre chevronné Avatar de issoram
    Homme Profil pro Zeco
    Développeur informatique
    Inscrit en
    janvier 2009
    Messages
    625
    Détails du profil
    Informations personnelles :
    Nom : Homme Zeco
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : janvier 2009
    Messages : 625
    Points : 739
    Points
    739

    Par défaut

    Merci pour cette réponse constructive .


    Cordialement.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •