Extraction plusieurs mots entre guillemets

bonjour, je souhaiterai extraire sur Excel tous les mots entre guillemets de ce texte par exemple, qui est en cellule B2, soit dans une autre table soit dans une colonne, je ne sais pas trop, mais j'aimerai qu'il m'extrait "Fonction, DSI FRance, Support etc j'ai essayé avec power query mais je n"y suis pas arrivée, pourriez-vous m'aider ? Merci ?

Sachant que cest des regles qui seront sur plusieurs lignes, et elles seront differentes a chaque fois, en gros j'aimerai qu"il me donne une info si il trouve le mot Fonction par exemple, est-ce qu'un fichier excel pourrait faciliter ma demande ? merci

(user.accountEnabled -eq True) and (user.department -notContains "Fonction") and (user.department -notContains "DSI France") and (user.department -notContains "Support") and (user.jobTitle -notContains "Directeur") and (user.jobTitle -notContains "Support") and (user.jobTitle -notContains "Directrice") and (user.jobTitle -notContains "Associé") and (user.jobTitle -notContains "Associe") and (user.mail -contains "@rsmfrance") and (user.companyName -contains "RSM")

Bonjour,

par exemple en colonne ;

=STXT($B$2;TROUVE("#";SUBSTITUE($B$2;"""";"#";((LIGNE(2:2)-1)*2)-1))+1;TROUVE("#";SUBSTITUE($B$2;"""";"#";(LIGNE(2:2)-1)*2))-TROUVE("#";SUBSTITUE($B$2;"""";"#";((LIGNE(2:2)-1)*2)-1))-1)
excel extraire entre guillemets

merci Doux reveur, top, en revanche j'ai d'autres règles comme celle ci sur d'autres lignes, par exemple dans la cellule B3 j'ai une autre règle et j'aimerai qu'il me mette a la suite les mots qu'ils trouvent entre "" sur toutes les lignes de ma colonne B
regarde sur la feuille 1 ?
du coup sur mes autres feuilles j'ai reussis mais avec power query et c'est un peu artisanal, le but c'est de filtrer par Metiers et d'avoir la regle en face

5fichier-pfa.xlsx (24.72 Ko)

On peut garder la même formule pour d'autres cellules, il suffit de remplacer B2 par B3 ou autre.

Mais si le but est d'éviter de changer ça manuellement, je peux essayer de la modifier pour l'incrémenter vers la droite et avoir des colonnes de mots côte à côte. Ou avoir les mots à droite de chaque cellule contenant une phrase (donc à chaque fois une ligne avec un mot par cellule).

Et Power Query je n'y connais rien.

Ce que je vraiment voulait dire c’est que dans la première solution ça m’a donné la liste de la cellule b2 mais si je veux en dessous la liste de la cellule b3 comment je la mets à la suite je ne sais pas si c’est possible et si je suis claire. Je vais essayer de mieux l’expliquer demain. Merci beaucoup en tout cas du temps pris pour m’aider

Mettre tous les mots à la suite en une formule n'est pas possible, chacune se réfère à une cellule et en extrait les mots.

Pour refaire l'opération sur une autre cellule, on remplace la référence de la cellule (B2, B3, ...).

Mais on peut toujours extraire les mots des cellules sur plusieurs lignes ou colonnes puis créer une autre colonne qui assemble tout.

Bonjour à tous,

J'ai trouvé ceci sur le net :

La chaine à traiter est en A2, résultat la liste à partir de B2.

Sub test()
    Dim a As String, b, i As Long, n As Long, m As Object
    With Sheets(1)
        a = .Cells(2, 1).Value
        ReDim b(1 To 10)
        With CreateObject("VBScript.RegExp")
            .Global = True
            .Pattern = """(.+?)"""
            For Each m In .Execute(a)
                If Trim$(m.submatches(0)) <> "" Then
                    n = n + 1
                    If n > UBound(b) Then ReDim Preserve b(1 To UBound(b) + 100)
                    b(n) = m.submatches(0)
                End If
            Next
         End With
         .Cells(2, 2).Resize(n).Value = Application.Transpose(b)
    End With
End Sub

klin89

re melissarsm69,

Pour répondre aux posts #3 et #5, essaie ceci, résultat en Feuil1 :

1fichier-pfa.xlsm (31.46 Ko)

cellule C2 la liste s'affiche.

Sub test()
    Dim a, b(), i As Long, n As Long, m As Object
    With Sheets("Feuil1")
        a = .Range("b2", .Range("b" & Rows.Count).End(xlUp)).Value
        With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = """(.+?)"""
        For i = 1 To UBound(a, 1)
            For Each m In .Execute(a(i, 1))
                If Trim$(m.submatches(0)) <> "" Then
                    n = n + 1
                    ReDim Preserve b(1 To n)
                    b(n) = m.submatches(0)
                End If
            Next
        Next
        End With
    .Cells(2, 3).Resize(n).Value = Application.Transpose(b)
    End With
End Sub

Edit : fallait quand même comprendre ce que tu entendais par "j'ai d'autres règles", il fallait l'interpréter par "j'ai d'autres cellules

klin89

Re à tous,

On peut disposer les données de chaque ligne en bout de colonnes :

Sub test()
    Dim a, i As Long, t As Long, m As Object
    With Sheets("Feuil1")
        a = .Range("a1").CurrentRegion.Resize(, 2).Value
        With CreateObject("VBScript.RegExp")
            .Global = True
            .Pattern = """(.+?)"""
            For i = 2 To UBound(a, 1)
                t = 2
                For Each m In .Execute(a(i, 2))
                    If Trim$(m.submatches(0)) <> "" Then
                        t = t + 1
                        If t > UBound(a, 2) Then ReDim Preserve a(1 To UBound(a, 1), 1 To t)
                        a(i, t) = m.submatches(0)
                    End If
                Next
            Next
        End With
        With .Cells(1, 1)
            .CurrentRegion.ClearContents
            .Resize(UBound(a, 1), UBound(a, 2)).Value = a
        End With
    End With
End Sub

klin89

Rechercher des sujets similaires à "extraction mots entre guillemets"