Excel : extraire du texte entre guillemets

c_est_pas_gagné -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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 !


A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

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

0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0