Extraire mots spécifiques d'une cellule texte

Bonjour,

Pour le contexte, j'ai un fichier Excel dans lequel j'ai extrait plein de messages de Twitter, et je souhaiterais isoler les personnes mentionnées dans ces messages.

J'ai donc dans ma colonne A des cellules texte avec des phrases variées, et je souhaiterais extraire en colonne B tous les mots de A qui commencent par "@" avec des virgules comme séparation.

Exemples:

Si A1= @franceinfo enquête ce soir sur les pratiques manageriales @orange!

Alors B1= @franceinfo, @orange

Si A2= @total: @toyota promet de limiter ses augmentations de prix

Alors B2= @total, @toyota

Si A3= Bonjour @Paul_, @Marie__0 @andré21

Alors B3= @Paul_, Marie__0, @andré21

En somme, les mots pertinents de A à extraire en B:

  • Commencent toujours par @
  • Se terminent toujours par une lettre, un numéro ou le tiret du 8 "_"

Donc, quand les mots pertinents de A sont suivis d'un signe de ponctuation comme dans mes exemples, je ne souhaite pas avoir ces signes de ponctuation en B.

Est-ce que vous avez une solution à proposer ?

Merci beaucoup !

Bonjour,

avec une fonction personnalisée :

Function twitter(s As String) As String
    Const ponctuation As String = ",;:!.?"
    Dim mot, i As Long
    For i = 1 To Len(ponctuation)
        s = Replace(s, Mid(ponctuation, i, 1), " ")
    Next i
    s = Application.Trim(s)
    mot = Split(s, " ")
    For i = 0 To UBound(mot)
        If Left(mot(i), 1) = "@" Then twitter = twitter & ", " & mot(i)
    Next i
    twitter = Mid(twitter, 3)
End Function

eric

35classeur5.xlsm (16.30 Ko)

Bonjour Eric,

Ta solution fonctionne parfaitement, merci beaucoup pour ta rapidité !

Rechercher des sujets similaires à "extraire mots specifiques texte"