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 :

Génération XML dynamique & trame XSD


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut Génération XML dynamique & trame XSD
    Bonjour tout le monde,

    aujourd'hui petit problème de génération..

    Je souhaite créer un fichier XML structuré. (pour lequel j'ai effectivement une trame XSD si ça peux servir)

    Ce fichier peut être généré une centaine de fois pour des produits différents.

    Ces produits ont leur caractéristiques renseignés chacun dans un classeur excel différent.

    J'ai donc ma trame de code xml, et mes valeurs à implémenter dans un excel connu.

    Comment puis je, avec une macro VBA, générer un fichier XML reprenant les valeurs présentes dans mon fichier excel de données?


    est il possible dans un code macro d'écrire en dur tout mes codes de ma trame XML avec des liens à l'intérieur?

    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
    Sub(test)
    
    Dim chemin As String
    Dim MonfichierXML as string
    
    
    MonfichierXML=
    
    'trame xml
    
    <prd:ProductT>
    <prd:ProductId=range.(A1)>
    
    <prd:ProductValue ProductValueId="range.(B7)> ProductAttributeProductTypeId="tutu1">
    <prd:ListValue>range.(C41)></prd:></prd:ProductTypeAttributeValue>
    
    
             
    chemin = "C:\Users\Desktop\"
      Open chemin & "testexport.xml" For Output As #1
      Print #1, Worksheets("code").MonfichierXML
      Close
     End sub
    le code ci dessus est juste pour illustrer, il n'est pas fonctionnel. Est ce que ce type de code est possible?

    D'avance merci pour vos contributions

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Voir le lien ci-dessous pour la gestion des fichiers '*.xml':
    http://arkham46.developpez.com/artic...ge=page_4#L5-A

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut
    ha génial ! je vais essayer ça de suite. merci

    peux tu me dire ce que signifie : Print #fic,

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ça veut dire:

    Print -> écrire
    #fic, -> dans le fichier '#fic'
    "<?xml version=""1.0"" encoding=""ISO-8859-1""?>" -> Le texte suivant

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut
    ok, donc l'incrémentation ligne après ligne est implicite dans ce code?

    [EDIT]

    pourquoi... ne puis je pas mettre une valeur de cellule à la place de "test élément 1" par exemple.

    si je met une ligne de type range().value ça bug..

  6. #6
    Invité
    Invité(e)
    Par défaut
    Fais voir le bout de code qui bloque.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut
    oc,

    dans ce bout de code , j'aimerais qu'il récupère la valeur de la cellule A1..
    comment faudrait il l'écrire?

    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
     
     
    Function CreateXMLFileVBA()
    Dim fic As Integer
     
     
     
    fic = FreeFile
    Open "C:\XMLFileVBA.xml" For Output As #fic
    Print #fic, "<?xml version=""1.0"" encoding=""ISO-8859-1""?>"
    Print #fic, "<racine>"
    Print #fic, "    <info1>"Range(A1).Value"</info1>"
    Print #fic, "    <info2>test élément 2</info1>"
    Print #fic, "    <info>"
    Print #fic, "        <subinfo1>test sous-élément 1</subinfo1>"""
    Print #fic, "        <subinfo2>test sous-élément 2</subinfo2>"
    Print #fic, "    </info>"
    Print #fic, "</racine>"
    Close #fic
    End Function

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ça devrait mieux se passer comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Print #fic, "    <info1>" & Range(a1).Value & "</info1>"

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut
    ça ne tourne pas chez moi erreur 1004,
    la methode range de l'objet _global a échoué.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Si c'est la valeur de la cellule A1 qui t’intéresse alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Print #fic, "    <info1>" & [A1].Value & "</info1>"

  11. #11
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut
    et hop ça tourne ! merci

    le succès était dans les guillemets ! merci encore.

    petite question complémentaire, comment fait on pour maitriser la norme d'encoding? si je veux la passer en UTF-8 par exemple.
    c'est juste ma façon d'écrire les lignes de codes qui changera ça? ou est ce plus général?

  12. #12
    Invité
    Invité(e)
    Par défaut
    En remplaçant 'ISO-8859-1' par 'UTF-8' ça devrait fonctionner.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Juin 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 104
    Points : 19
    Points
    19
    Par défaut
    si c'est écris en dur je pense pas qu'il y ai une grande interaction avec le contenu. on va partir comme ça dans un premier temps.

    un grand merci en tout cas.

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

Discussions similaires

  1. Génération XML - XSD et Table Hyperfile
    Par _shuriken_ dans le forum WinDev
    Réponses: 3
    Dernier message: 23/07/2015, 09h59
  2. [XSL] Génération menu dynamique d'un site : PHP & XSL & XML
    Par kaboume dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 24/11/2009, 17h48
  3. xml dynamique
    Par alamihamza dans le forum XMLRAD
    Réponses: 1
    Dernier message: 11/03/2005, 00h51
  4. xml dynamique
    Par mat10000 dans le forum XMLRAD
    Réponses: 2
    Dernier message: 24/06/2004, 11h44
  5. Réponses: 2
    Dernier message: 27/05/2004, 00h40

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