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

XML/XSL et SOAP Discussion :

Génération Fichier XML par données Excel (en VBA)


Sujet :

XML/XSL et SOAP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut Génération Fichier XML par données Excel (en VBA)
    Bonjour à tous,

    Je me tourne vers vous car je ne sais pas résoudre mon problème malgré mes recherches intensives sur le net.
    J'ai créé il y a quelques mots du code VBA qui permet de récupérer des données de cellules Excel pour en générer un fichier XML encodé en iso-8859-1
    Cela marchait très bien jusqu'à hier où 2 lignes supplémentaires ont été ajoutées au fichier source Excel et cela me génère une erreur sur l'enregistrement du fichier XML.

    Code VBA : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Sub Import_XML()
     
    Const XML_NAMESPACE_ATTR As String = "xmlns"
    Const XML_NAMESPACE_VALUE As String = "https://www.of.moncompteformation.gouv.fr"
     
    Dim Doc_XML As Object   'Va nous permettre de créer le XML
    Dim Root As Object      '... de créer la racine du XML
    Dim Node As Object      '... de créer les noeuds
    Dim Chemin As String    'Chemin de sauvegarde
     
    'pour indenter le code XML
    Dim rdr As Object
    Dim wrt As Object
    Dim oStream As Object
     
    'Création du XML
    Set Doc_XML = CreateObject("MSXML2.DOMDocument")
     
    'Ajout des données d'encodage/etc...
    Set Node = Doc_XML.CreateProcessingInstruction("xml", "version=""1.0"" encoding=""iso-8859-1""")
    'Ajout des données au fichier
    Doc_XML.Appendchild Node
    'Remise à zéro du noeud
    Set Node = Nothing
     
    'Création d'une racine
    Set Root = Doc_XML.CreateElement("lheo")
    Doc_XML.Appendchild Root
    Doc_XML.DocumentElement.setAttribute XML_NAMESPACE_ATTR, XML_NAMESPACE_VALUE
     
    Set Node = Doc_XML.CreateElement("offres")
    'Ajout de la racine au XML
    Root.Appendchild Node
     
    'génération fichier XML
    TraiterSessions PreparerDonnees(Doc_XML, Node)
     
    '-- Indenter le fichier créé
    'Set rdr = CreateObject("MSXML2.SAXXMLReader")
    'Set wrt = CreateObject("MSXML2.MXXMLWriter")
    'Set oStream = CreateObject("ADODB.STREAM")
    'oStream.Open 'Ouverture objet stream..
    'oStream.Charset = "ISO-8859-1"
    '
    'wrt.indent = True
    'wrt.Encoding = "ISO-8859-1"
    'wrt.Output = oStream ' "Connexion" de l'objet Writer à l'objet Stream
    'Set rdr.contentHandler = wrt
    'Set rdr.dtdHandler = wrt
    'Set rdr.errorHandler = wrt
    'rdr.putProperty "http://xml.org/sax/properties/lexical-handler", wrt
    'rdr.putProperty "http://xml.org/sax/properties/declaration-handler", wrt
    'Print Doc_XML
    'rdr.Parse Doc_XML
    'wrt.flush
     
    'Doc_XML.Save ThisWorkbook.Path & "\" & SIRET & "_CatalogueM2i.xml"
    'Sauvegarde
    Chemin = ThisWorkbook.Path & "\ImportXML_EDOF.xml"  'Chemin de sauvegarde + Nom du fichier
    Doc_XML.Save Chemin
    'oStream.SaveToFile ThisWorkbook.Path & "\" & SIRET & "_CatalogueM2i.xml", 2
     
    'Libération des objets
    'Set wrt = Nothing
    'Set rdr = Nothing
    'Set oStream = Nothing
    Set Node = Nothing
    Set Root = Nothing
    Set Doc_XML = Nothing
     
    MsgBox "Fin de la génération du fichier XML que vous trouverez à l'emplacement :" & vbCrLf & _
    ThisWorkbook.Path & "\" & SIRET & "_CatalogueM2i.xml", vbInformation, "Fin de la génération"
    End Sub

    Initialement, ça bug sur le .Parse (pièce jointe nommée Erreur init.png) et en le mettant en commentaire, l'erreur d’enregistrement (.save) me met l'erreur en pièce jointe nommée erreur.png

    Je comprends bien que c'est l'encodage mais pourquoi cela ne marche plus maintenant...

    HELP !!

    Merci d'avance !
    Images attachées Images attachées   

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Codage pour extraire les données d'un fichier XML par du HTML
    Par Douxnuts dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/12/2018, 19h17
  2. Réponses: 3
    Dernier message: 14/12/2018, 13h37
  3. Réponses: 10
    Dernier message: 13/12/2018, 10h33
  4. [XL-2010] Importer des données de plusieurs fichiers dans une feuille excel en VBA
    Par Alibel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2013, 15h16
  5. [DOM] Erreur lors du parsing d'un fichier XML par l'API DOM
    Par patricetoan dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 26/09/2005, 12h43

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