Parcourir et extraire

Bonjour à tous,

petit problème pas très simple à comprendre.

Dans mon tableau, la colonne A contient des fichiers xml et je souhaite en extraire des informations.

Dans ma colonne B, j'arrive à chercher une balise de mon xml, et à en extraire le contenu (à base de fonction cherche et stx).

Par contre, excel n'arrive à me remonter que la valeur de la première occurrence du mot recherché. Je souhaiterais parcourir l'ensemble de ma cellule A et extraire toutes les balises portant un nom précis.

Par ex, dans mon xml, j'ai 4 fois la balise <nom>xxxx</nom>

Avec ma formule, j'arrive à extraire le premier nom qu'il trouve, mais pas les trois autres.

Une idée pour faire un espèce de truc recursif ?

Avec un split qui donnera toutes les occurrences (Ubound occurrences)

Mais n'y a t 'il pas moyen d'utiliser plutôt getElementById à la place de la manipulation des strings ?

pas sur de comprendre cette réponse, split est une fonction en VBA ?

pour le moment je ne suis pas du tout passé par les macros

Bonjour, (et Salut Steelson)

Rien compris à ce que tu fais !... mais si tu mets une formule dans une cellule tu ne peux avoir qu'un résultat ! Quoi de plus normal ?

Pour avoir plusieurs résultats il faut mettre la formule dans plusieurs cellules (autant que de résultats) et valider matriciellement pour obtenir l'ensemble des résultats...

à condition bien sûr que ta matière s'y prête !

Cordialement.

D'accord avec MFerrand ... peux-tu nous mettre un bout de fichier ?


exemple

97balises.xlsx (8.58 Ko)

re,

le petit balise.xlsx est un bon exemple. plusieurs balises similaires dans la meme cellule, je veux en extraire la valeur pour chaque balise. Du coup je pense que ca répond à ma question je vais étudier les formules.

Si j'ai bien compris le principe, tu cherches le mot clé, à partir de la position 1, puis tu cherches à nouveau à partir de la position du 1er résultat. c'est tellement évident maintenant que tu me l'as dit

Je cherchais bêtement une formule du genre extrait moi toutes les occurrences du mots "nom"... mais comme l'a très bien fait remarqué l'un de vous, une formule = un resultat

C'est un fichier qui contient des données médicales, je ne peux malheureusement pas le partager

En VBA ce serait quand même plus simple et plus facile à faire ... dans ce cas présent !

J'avais aussi traité les résultats d'une enquête sur le stress au travail ... mais cela se présentait sous forme de page html

j'y connais pas grand chose, mais je suis preneur d'idées

Un exemple de lecture d'un fichier xml

Essaie avec le fichier suivant https://www.w3schools.com/xml/cd_catalog.xml

Sub lire_XML()
Dim XMLdoc As Object

    Set XMLdoc = CreateObject("MSXML2.DOMDocument")
    XMLdoc.async = False: XMLdoc.validateOnParse = False
    XMLdoc.Load (ThisWorkbook.Path & "\cd_catalog.xml")

    Set lists = XMLdoc.DocumentElement

    ligne = 1
    For Each listNode In lists.ChildNodes
        Cells(ligne, "A") = "------"
        ligne = ligne + 1
        For Each fieldNode In listNode.ChildNodes
            Cells(ligne, "A") = fieldNode.BaseName
            Cells(ligne, "B") = fieldNode.Text
            ligne = ligne + 1
        Next fieldNode
    Next listNode

    Set XMLdoc = Nothing
End Sub

Bonjour à tous,

Tu travailles avec Excel 2016 : Tu peux donc utiliser Power Query pour récupérer et, transformer un fichier ou plusieurs fichiers dans un répertoire.

Ci dessous le fichier de Steelson (que je salue) traité avec Power Query et le résultat de sa procédure VBA.

Bon je n'ai peut-être pas compris l'objectif.

Cdlt.

44kokop.xlsm (32.03 Ko)

merci pour tous ces retours.

Je vais regarder le script vba

Pour ce qui est du Power querry, je ne suis pas sur que cela puisse m'aider, jen 'ai pas les xml, juste leur contenu que je récupère par business object.

D'ailleurs, à terme, tout devra être porté sur BO, je me fais la main sur excel avant pour les formules

Encore merci à tous

un dernière petite question rapide, existe t'il une formule excel pour compter combien de fois j'ai le mot "toto" dans une meme cellule ?

[edit] : j'ai trouvé pour celle là

Rechercher des sujets similaires à "parcourir extraire"