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 :

Exportation XML [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    MultIT
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : MultIT

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut Exportation XML
    Salut,

    Tout d'abord, il faut que j'explique rapidement le contexte dans lequel je suis :
    Je commence en VBA. Je n'ai pas vraiment touché la programmation depuis la fin de mes études, il y a plus de 15a. J'ai les notions de l'orienté objet, mais aucune expérience sur VBA, à part ce que j'ai appris ces 5 derniers jours. Le fait est que j'ai une feuille excel qu'on m'a demandé de faire selon un timing un peu trop serré, du coup, cela ne me laisse pas le temps de faire quelques tutoriaux quasi obligatoires pour me familiariser avec VBA.
    ... donc j'espère que vous m'excuserez de cette absence de connaissances parfois basiques du VBA que probablement 95% des lecteurs ici présents ont déjà.

    J'ai un fichier .xlms dans lequel j'ai mappé un schéma XSD. Le mappage porte le nom S216_Map (onglet Dev, afficher Source). Il n'est pas gros le XSD, j'ai un header contenant 8 données à stipuler, et j'ai un content avec 2 sections qui contiennent chacune 6 valeurs (qui elles, peuvent être encodées de 1 à X fois par l'utilisateur finale)
    Le but de cette sheet est simple : Elle sert à encoder les données, puis une fois effectué, avoir un bouton pour exporter cela dans un fichier XML avec un nom de fichier qui sera composé en partie de certaines valeurs encodées dans la section header.

    Créer la string qui sera à la base du nom du fichier, je pense que je saurais me débrouiller. Mais avant de faire ça, je voulais que l'export fonctionne, c'est plus important.

    Donc j'ai cherché sans trouver un réel exemple concret, car apparemment, ce ne sont pas des fonctions souvent utilisées(XmlMaps, XmlMap). Enfin je suis tombé sur une ligne de commande qui finalement m'a permis de réussir à exporter le fichier (que j'ai analysé et qui est valide)
    J'ai donc un beau bouton nommé "Exporter", et j'ai dans mon code VBA une Sub on ne peut plus minimaliste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub ExportS216()
     ActiveWorkbook.XmlMaps(1).Export "V:\XML\TestRapport.xml"
    End Sub
    En fait je suis étonné que ca marche ? Et en fait j'ai plein de questions mais je ne sais pas bien par où commencer ni n'ai envie de faire un post trop long.
    - aucune variable à définir ?

    - comment récuperer le RC, avec quel type de Dim

    - Quand je vais sur le site MSDN, ils parlent de XmlMap et XmlMaps, mais aussi de [URL="http://msdn.microsoft.com/fr-fr/library/microsoft.office.interop.excel.ixmlmap(v=office.11).aspxIXmlMaps[/URL], ca a le mérite d'un peu plus me brouiller. J'ai malgré tout essayé de plein de manières différentes de me faire des petites macros pour ne fut-ce que afficher dans une MsgBox certaines properties du mappage de ma feuilles, mais sans succès.

    Dernière question dans ce post décousu : comment, dans mon code, puis-je simplement afficher quelques properties de mon map (le S216_Map que je vois dans sur ma feuille excel) ? J'en ai pas vraiment besoin, mais c'est dans le but de comprendre simplement comment accéder à un objet instancié, ici en l'occurence ce qui représente mon map.
    Quelque chose du genre (ce que j'ai mis en bas à part les Dim n'est pas du code)

    Dim MonMap As IXmlMap
    Dim NomDuMap As String

    MonMap = S216_Map
    NomDuMap = MonMap.RootElementName
    Debug.Print NumDuMap
    etc...

    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim mymap As XmlMaps
    mymap = ActiveWorkbook.XmlMaps(1)
    mymap.Export "V:\XML\SuperRapport.xml"
    ... mais ca marche pas.

    Tout ces problèmes sont clairement liés au fait que je ne connais pas (encore) VBA, du coup, si qqun a un peu de temps à m'accorder sur ce forum, ca serait sympa. Le post est déjà assez long ainsi.

    Merci

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Apparemment tu as un probleme dans le type de variable ainsi que dans son instanciation (http://msdn.microsoft.com/en-us/library/gg469857.aspx)

    C'est a essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim mymap As XmlMap
    Set mymap = ActiveWorkbook.XmlMaps(1)
    mymap.Export "V:\XML\SuperRapport.xml"

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    MultIT
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : MultIT

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut
    Merci Jérome,

    Ca marche en effet, mais il y a un soucis, c'est que si j'exécute 2x la routine il me met une erreur :
    Run-time error '-2147467259 (80004005)': Method 'Export' of object 'XmlMap" failed

    Faut-il libérer les ressources en fin de routine ?

    Merci,

    Edit:
    Ca fonctionne, j'ai un peu cherché et j'ai trouvé un code qui tourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Export216()
     
    Dim returnValue As XlXmlExportResult
    Dim mymap As XmlMap
    Dim NomDuMap As String
     
     Set mymap = ActiveWorkbook.XmlMaps(1)
     returnValue = mymap.Export("V:\XML\SuperRapportBIS.xml", True)
     NomDuMap = ActiveWorkbook.XmlMaps(1).RootElementName
     Debug.Print NomDuMap
     
    End Sub
    Suis déjà bien content avec ça.
    Je continue, si j'ai encore un soucis je repasserai par ici

    Merci

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

Discussions similaires

  1. [XSLT][OpenOffice] Problème filtre d'export XML
    Par Maximil ian dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 04/06/2011, 20h10
  2. [VBA-E]Classe d'export xml
    Par padre03 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/04/2006, 23h28
  3. [Mapping/Import/Export] XML et SGBDR ?
    Par Eric Lavanda dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 18/01/2006, 11h31
  4. Export XML
    Par Nip dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/11/2005, 13h49
  5. pb encodage lors export XML
    Par gemogof dans le forum ASP
    Réponses: 6
    Dernier message: 26/03/2005, 14h13

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