Excel : extraire du texte entre guillemets

c_est_pas_gagné -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour à tous,

J'ai un (long) fichier dans lequel je dois extraire le texte entre guillemets, tel que :

company_created: "L'entreprise %{name} a bien été créée."
=> je veux extraire L'entreprise %{name} a bien été créée.

company_removed: "L'entreprise %{name} a bien été supprimée."
company_updated: "L'entreprise %{name} a bien été mise à jour."
company_is: "Entreprise : %{name}"
company_links: "Liens relatifs à l'entreprise"
company_type: "Type d'entreprise"
confirm: "Continuer ?"
...

Bien évidemment, dans chaque cellule, le texte à garder (et celui à supprimer) est différent et de longueur variable...
J'ai beau chercher, je n'arrive pas à trouver quelle macro je peux utiliser. Je trouve des exemples similaires, mais suffisamment différents pour que je ne puisse pas résoudre le problème des guillemets.

Est-ce que quelqu'un aurait une solution ?

Je remercie par avance tous ceux qui pourront m'aider...
bonne journée !

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    là comme ça, à première vue, je te dirai de regarder du côté des expressions régulières ( les regex ).

    0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Avec la méthode Split. Faire une boucle sur la colonne concernée:

    https://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-I

    le texte est en A1:

    Sub extractionMots()
        Dim Tableau() As String
        Dim i As Integer
        Dim chaine As String
        chaine = Range("A1").Value
        'découpe la chaine en fonction des  "
        'le résultat de la fonction Split est stocké dans un tableau
        Tableau = Split(chaine, """") 'double cote
        
        'boucle sur le tableau pour visualiser le résultat
        For i = 0 To UBound(Tableau)
            'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros
            Debug.Print Tableau(i)
        Next i
        MsgBox Tableau(1) 'remplacer le MsgBox par une cellule
    End Sub

    0