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 :

Supprimer les doublons dans une chaine de caractères [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 17
    Points : 5
    Points
    5
    Par défaut Supprimer les doublons dans une chaine de caractères
    Bonjour à tous,

    Cela fait quelques jours que je me prends la tête sur un problème, et je franchi un cap aujourd'hui en vous demandant de l'aide.

    Mon problème est le suivant : j'ai une chaine de caractères (prenons "AACACD"). Je souhaite supprimer les doublons de lettre dans cette chaine et sortir dans cet exemple "ACD" (l'ordre des lettres importe peu).

    après plusieurs tentatives infructueuses j'en suis arrivé là :

    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
    Sub test()
    serie_depart = "AACACD"
    serie_intermediaire = serie_depart
    
    For i = 2 To Len(serie_depart)
        For j = 1 To i
            
            If i <> j Then
                If Mid(serie_intermediaire, i, 1) = Mid(serie_intermediaire, j, 1) Then
                    serie_intermediaire = Replace(serie_intermediaire, Mid(serie_intermediaire, i, 1), "", 1, 1)
                End If
            End If
    
        Next
    Next
    
    MsgBox(serie_intermediaire)
    
    End Sub
    Le 1 en vert c'est pour que la fonction Replace ne remplace qu'une fois dans la chaine le caractère recherché par "".

    Je ne sais même pas si je suis sur la bonne voie et que j'ai raté quelque chose ou bien si je suis dans une voie sans issue..

    Merci d'avance de votre aide !

    Mootchoop

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour
    en gros tu ne veux récupérer que la première occurence d'une lettre
    je ferais plutot ceci

    (je suis encore en train de boire mon café donc test bien le code je ne suis pas sure d'être vraiment reveillé )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub cc()
    Dim ligne1 As String, ligne2 As String, lettre As String
     
    ligne1 = "aacadddadsf"
     
    Do
       lettre = Left(ligne1, 1)
       ligne2 = ligne2 & lettre
       ligne1 = Replace(ligne1, lettre, "")
    Loop Until ligne1 = ""
    MsgBox ligne2
    End Sub
    Le code en bref je prend la première lettre de la ligne je la place dans le résultat et je la supprime de la ligne, puis je passe a la suivante parmis celle qui reste

    edit bon j'ai fini mon/mes café le code a l'air bon par contre il distingue minuscule et majuscule donc Acaa devient Aca si ca pose problème il ya plusieurs solution mettre en tête de module ou alors rajouter avant la boucle pour tout passer en majuscule
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    Bonjour Krovax,

    je n'avais pas pensé à créer une nouvelle variable en y ajoutant chaque lettre une par une, c'est une super idée, bravo et merci beaucoup !

    Mootchoop

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

Discussions similaires

  1. supprimer les doublons dans une table
    Par mavean dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 26/06/2019, 13h26
  2. Supprimer tous les blancs dans une chaine de caractères
    Par joel74 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 20/02/2014, 16h19
  3. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  4. Supprimer les espaces dans une chaine de caractères
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 23/07/2007, 22h24
  5. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12

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