IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création d'un fichier XML en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2014
    Messages : 32
    Par défaut Création d'un fichier XML en VBA
    Bonjour à toute et à tous,

    Je viens vous demander de l'aide pour la création d'un fichier xml en VBA.

    J'ai trouvé un code VBA pour la création d'un fichier xml mais je n'arrive pas à le modifier correctement avec ce que j'ai besoin.

    Voici le code du fichier XML que je voudrais créer en VBA.

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <diffusion client_id="1234" enquete_id="1234" diff_id="123456" mail_error="exemple@test.fr" lang_error="en">
    <csv csvfilename="test.csv" delim=";"/>
    </diffusion>

    Voici le code VBA que j'ai trouvé et le résultat de la création du fichier xml en dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Sub testxml()
     
    Dim Doc_XML As Object
    Dim Root As Object
    Dim Node As Object
    Dim Name As Object
    Dim Chemin As String    'Chemin de sauvegarde
     
    Set Doc_XML = CreateObject("MSXML2.DOMDocument")
     
    Set Node = Doc_XML.CreateProcessingInstruction("xml", "version=""1.0"" encoding=""ISO-8859-1""")
     
    Doc_XML.appendChild Node
    Set Node = Nothing
    Set Root = Doc_XML.CreateElement("diffusion")
     
    Root.Text = "client_id=" & "1234" & ""
     
    Doc_XML.appendChild Root
     
        Set Node = Nothing
     
        Chemin = ThisWorkbook.Path & "\FichierSorti.xml"
        Doc_XML.Save Chemin
     
    End Sub
    Le Résultats de la création du XML en vba

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <diffusion>client_id=1234</diffusion>

    Merci a tous pour votre aide

    Jérôme

  2. #2
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 242
    Par défaut
    Hello,
    client_id, enquete_id, diff_idt etc... sont des attributs et il faut utiliser setAttribute pour les insérer dans une balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub TestXML() 
    Dim Doc_XML As Object
    Dim Root As Object
    Dim Node As Object
    Dim Name As Object
    Dim Chemin As String    'Chemin de sauvegarde
     
    Set Doc_XML = CreateObject("MSXML2.DOMDocument")
    Set Node = Doc_XML.CreateProcessingInstruction("xml", "version=""1.0"" encoding=""ISO-8859-1""")
    Doc_XML.appendChild Node
    Set Root = Doc_XML.CreateElement("diffusion")
    Root.setAttribute "client_id", "1234"
    Root.setAttribute "diff_id", "123456"
    Root.setAttribute "mail_error", "exemple@test.fr"
    Root.setAttribute "lang_error", "en"
    Doc_XML.appendChild Root
    Set Node = Doc_XML.CreateElement("csv")
    Node.setAttribute "csvfilename", "test.csv"
    Node.setAttribute "Delim", ";"
    Root.appendChild Node
    Set Node = Nothing
    Set Root = Nothing
    Chemin = ThisWorkbook.Path & "\FichierDeSortie.xml"
    Doc_XML.Save Chemin 
    End Sub
    cela donne :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <diffusion client_id="1234" diff_id="123456" mail_error="exemple@test.fr" lang_error="en"><csv csvfilename="test.csv" Delim=";"/></diffusion>

    Il n'y a pas d'indentation et de retour à la ligne par balise mais le fichier est normalement opérationnel.
    Pour des infos sur la création de fichier xml en VBA voir ici : Création - Modification de fichiers xml par la Library MSXML2

    Ami calmant, J.P

Discussions similaires

  1. [JDOM] Création d'un fichier xml avec jdom
    Par fabricew59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/08/2006, 11h17
  2. [XSD] Création d'un fichier XML
    Par Taylor² dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 06/06/2006, 22h16
  3. Création d'un fichier XML
    Par fantasio31 dans le forum Général Python
    Réponses: 2
    Dernier message: 09/09/2004, 17h06
  4. [XML] Création d'un fichier XML
    Par TheDarkLewis dans le forum Langage
    Réponses: 6
    Dernier message: 24/07/2004, 18h27
  5. ligne d'entête création d'un fichier XML
    Par cduterme dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 23/02/2004, 15h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo