importer données xml

laurent999

XLDnaute Occasionnel
Bonsoir,

Dans le cadre de mon travail je reçois chaque jour des commandes qui ont déjà étaient traitées.

Ce que je reçois est un fichier xml.

J'ai réussi grâce à vous à faire en sorte que dès réception du mail les fichiers xml soient envoyés directement dans un fichier nommé "pj"

Voilà mon problème, chaque fichier xml est un tableau de 4 ligne.
Les colonnes sont toujours identique.

Je souhaiterais que de mon classeur actif, je puisse en cliquant sur un bouton importer les fichiers l'un après l'autre.

Exemple: je parts de ma feuille 1 vierge, je clic sur le bouton.

La macro va dans le dossier pj prend le 1er fichier xml et intégre les données à partir de A1 avec l'intitulé des colonnes puisque c'est la première importation.
puis prend le fichier2 de pj est l'importe à partir de la dernière ligne du tableau.ici A5

Je sais le faire avec des données classique mais avec un fichier xml, je n'y arrive pas .

Voici comment je fais avec des données classiques :

Sub import()
Application.ScreenUpdating = False
Sheets("BDD").Select
Range("Tableau1[]").Select
Selection.ClearContents
Application.DisplayAlerts = False
Dim Repertoire As String, FichS As String, FichD As Workbook
Repertoire = ThisWorkbook.Path & "\new\"
Set FichD = ActiveWorkbook
FichS = Dir(Repertoire & "*.xlsm")
Do While FichS <> ""
Derlign = ActiveSheet.Range("A60000").End(xlUp).Row + 1
Workbooks.Open Repertoire & FichS
Sheets("BDD").Select
Sheets("BDD").Range("Tableau1[]").Copy FichD.Sheets("BDD").Range("A" & Derlign)
Application.CutCopyMode = False
Workbooks(FichS).Close
FichS = Dir
Loop
end sub.

J'aimerais avoir le même principe avec des fichiers xml.

Si quelqu'un peut m'aider c'est la première fois que je dois manipuler se genre de fichiers.

Merci d'avance,

Laurent.
 

JNP

XLDnaute Barbatruc
Re : importer données xml

Bonjour Laurent999 :),
En modifiant
Code:
FichS = Dir(Repertoire & "*.[B][COLOR=red]xml[/COLOR][/B]")
et au lieu d'ouvrir un fichier, tu utilises une feuille du classeur pour faire l'importation, du style
Code:
Application.DisplayAlerts = False
Sheets("Feuil2").Select
Sheets("Feuil2").Cells.Clear
    ActiveWorkbook.XmlImport URL:=Repertoire & FichS, ImportMap:= _
        Nothing, Overwrite:=True, Destination:=Range("$A$1")
Sheets("Feuil1").Select
Application.DisplayAlerts = True
à adapter ;).
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth