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 :

Fenêtre d'importation d'un fichier xml dans un classeur avec mappage créé sous excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Fenêtre d'importation d'un fichier xml dans un classeur avec mappage créé sous excel
    Bonjour,

    Je ne m'en sors pas avec mon code vba...
    Je souhaite proposer à mes utilisateur de choisir à l'ouverture d'un fichier excel (qui contient un mappage xml) le fichier xml à importer dans ce mappage... (à l'aide d'une fenêtre du type "ouvrir")
    J'ai fait plusieurs tentatives, mais je pense que je me complique un peu la vie.
    Voici les différentes pistes explorées :

    1ère piste : ouvre une fenêtre d'importation d'un fichier xml.
    problème : s'ouvre dans un nouveau classeur et ne respecte pas le mappage du classeur d'origine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Fenetre()
    NomFichierXML = Application.GetOpenFilename("Fichier XML (*.xml),*.xml", , "Choisir le fichier")
    Set wk2 = Workbooks.OpenXML(Filename:=NomFichierXML, LoadOption:=xlXmlLoadImportToList)
    encore:
    FichierOk = Application.Dialogs(xlDialogOpen).Show
    If Not FichierOk Then
        MsgBox " Vous devez choisir un fichier"
        GoTo encore
    End If
    End Sub

    2ème piste
    :
    Ouvre le fichier dont le chemin est donné (C:\Users\adrienb63\xxx\xxx.xml) avec le bon mappage
    Problème : je ne trouve pas comment ouvrir une fenêtre de choix de fichier qui puisse permettre de modifier automatiquement ce chemin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub ImportXmlFromFile()
         ThisWorkbook.XmlMaps("mesChamps_Mappage").Import ("C:\Users\adrienb63\xxx\xxx.xml")
    End Sub

    3ème piste :
    Extrait les noms de fichiers xml contenus dans le dossier voulu
    Problème : ne sert pas à grand chose en fait...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ListingFichiers()
    Dim Rep As String, Fichier As String
    Dim i As Integer
     
    Rep = "C:\Users\adrienb63\xxx\"
    Fichier = Dir(Rep)
    Do While Fichier <> ""
        i = i + 1
        Sheets("Feuil2").Range("A" & i) = Fichier
        Fichier = Dir
    Loop
    End Sub

    Si quelqu'un pouvait me donner un petit coup de pouce, j'en serais très heureux !

    Merci d'avance

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Bonjour,

    Une piste (non testée):
    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
    Sub ImportXmlFromFile()
      Dim fd As FileDialog
      Dim strFilePath As String
      Dim wbk As Workbook
     
      Set fd = Application.FileDialog(msoFileDialogOpen)
      With fd
        If .Show Then
          strFilePath = .SelectedItems(1)
        Else
          Exit Sub
        End If
      End With
      Set wbk = ThisWorkbook.XmlMaps("mesChamps_Mappage").Import(strFilePath)
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Affaire résolue !
    Bonjour,

    Merci pour ton aide AlainTech.

    J'ai résolu le problème ainsi :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Workbook_Open()
     
    Dim cheminComplet As String
     
    ChDrive "X"
    ChDir "X:\...\dossier\"
    cheminComplet = Application.GetOpenFilename("XMLFiles (*.xml), *.xml")
    ThisWorkbook.XmlMaps("mesChamps_Mappage").Import (cheminComplet)
     
    End Sub

    Les utilisateurs choisissent ainsi le fichier à importer dans le mappage xml défini avec Excel.

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

Discussions similaires

  1. Script d'import d'un fichier XML dans une table SQL-Server
    Par thiersco dans le forum Développement
    Réponses: 2
    Dernier message: 26/11/2013, 09h45
  2. Importer un fichier Xml dans un classeur précis
    Par turbo_sophie dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/11/2010, 11h09
  3. Importation d'un fichier CSV dans un classeur ouvert
    Par mamax29 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/05/2010, 16h03
  4. import de plusieurs fichiers XML dans Access 2003
    Par frdek dans le forum Access
    Réponses: 7
    Dernier message: 09/08/2008, 19h39
  5. Charger Fichiers XML dans une table avec SQL*LOADER
    Par devdev2003 dans le forum SQL
    Réponses: 2
    Dernier message: 14/01/2008, 10h40

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