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 :

Extraction chaine de caractères entre caractères spéciaux [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Avril 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Avril 2012
    Messages : 113
    Par défaut Extraction chaine de caractères entre caractères spéciaux
    Bonjour à tous,

    J’ai un fichier Excel de plusieurs centaines de lignes dans lesquelles j’aimerais extraire des chaines de caractères bien précises. Voici un exemple d’une ligne (en gras ce dont j'ai besoin) :

    546#mot clef truc#1034#mot clef machin#2027#mot clef bidule#20#mot clef tralala

    En fait, chaque mot clef à un numéro identifiant qui le précède, les mots clés et les numéros étant tous séparés par des #. Ce que j’aimerais, c’est lister dans une autre colonne d’Excel tous les mots clefs contenus dans toutes les lignes de la colonne A, sachant que :

    - Les numéros identifiants sont de longueur variable
    - Les mots clefs sont de longueur variable également, et peuvent comporter des chiffres, des espaces, voir même des caractères spéciaux (mais jamais de #, ça j’en suis sure)

    J’ai déjà trouvé des macros toutes simples pour extraire avant ou après une chaîne de caractère, mais là c’est un peu plus complexe du fait qu’aussi bien les numéros qui ne m’intéressent pas, que les mots clefs dont j’ai besoin, sont placés entre #...

    Une idée, un début de piste, un petit coup de main ?

    Merci beaucoup d’avance !

  2. #2
    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,

    Tu pourrais essayer quelque chose comme ceci
    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
        Dim I As Long, J As Long, LigneDest As Long
        Dim nbLignes As Long
        Dim Texte As String
        Dim Tablo
     
        nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
        LigneDest = 1
     
        For I = 1 To nbLignes
            Texte = Range("A" & I)
            Tablo = Split(Texte, "#")
     
            For J = 0 To UBound(Tablo)
                If Not IsNumeric(Trim(Tablo(J))) Then
                    Range("B" & LigneDest) = Trim(Tablo(J))
                    LigneDest = LigneDest + 1
                End If
            Next
        Next

  3. #3
    Membre confirmé
    Femme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Avril 2012
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Avril 2012
    Messages : 113
    Par défaut
    Impeccable, exactement ce qu'il me fallait ! Merci beaucoup, et bon après midi

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

Discussions similaires

  1. Extraction chaine de caractères entre deux |
    Par urbanspike dans le forum Débuter
    Réponses: 3
    Dernier message: 04/10/2012, 16h46
  2. Réponses: 11
    Dernier message: 26/02/2009, 08h50
  3. recupérer une chaine de caractères entre guillements
    Par glouffy6 dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2007, 15h08
  4. Réponses: 3
    Dernier message: 08/06/2007, 14h16
  5. passer une chaine de caractère entre client et serveur COM
    Par ali.ensi dans le forum Visual C++
    Réponses: 7
    Dernier message: 28/03/2007, 17h30

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