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 :

import fichiers XML


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    responsable imprimerie municipale
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : responsable imprimerie municipale

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut import fichiers XML
    bonjour à tous,

    je dois importer plusieurs fichiers XML d'un même répertoire bout à bout dans une feuille excel.

    voici le code qui fonctionne pour un fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub ImportJanvier()
    '
    ' ImportJanvier Macro
    ' Macro enregistrée le 30/09/2013 par plancotd
    '
     
    '
        Sheets("janvier").Select
        Range("B8").Select
     
        ActiveWorkbook.XmlMaps("Root_Mappage").Import URL:= _
            "N:\MOYENS GENERAUX\Imprimerie\FichiersXMLindicateurs\XML\COM-2013\janvier\sandra.xml"
      '  ActiveWindow.SmallScroll Down:=2
    End Sub
    comment le modifier pour qu'il importe les autres fichiers du répertoire à la suite?

    merci

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    en adaptant l'exemple de l'aide de la fonction Dir

    Sinon il y a aussi la Manipulation des fichiers en VBA même si Dir doit suffire.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 101
    Par défaut
    Bonjour,

    Il te suffit de récupérer la ligne de la dernière cellule remplie de la feuille à chaque fois que tu changes xml, par exemple (et à adapter):

    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 ImportJanvier()
    '
    ' ImportJanvier Macro
    ' Macro enregistrée le 30/09/2013 par plancotd
    '
    Dim myWS as worksheet 
    '
        Set myWS = activeworkbook.worksheets("janvier")
        myWS.range("B8").Select
     
        ActiveWorkbook.XmlMaps("Root_Mappage").Import URL:= _
            "N:\MOYENS GENERAUX\Imprimerie\FichiersXMLindicateurs\XML\COM-2013\janvier\sandra.xml"
     
     
     
    ' Ces deux lignes sont à répéter autant de fois qu'il y aura de fichier à coller à la suite
     
            myWS.range("B"&myws.usedrange.rows.count+1).Select    
            "N:\MOYENS GENERAUX\Imprimerie\FichiersXMLindicateurs\XML\COM-2013\janvier\XXXXXX.xml"
     
     
     
     
     
    End Sub

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Oui effectivement, j'avais oublié l'ajout bout à bout …

  5. #5
    Membre confirmé
    Homme Profil pro
    responsable imprimerie municipale
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : responsable imprimerie municipale

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut
    j'ai une erreur de syntax sur la derniére ligne?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2013
    Messages : 101
    Par défaut
    Essaie ça:

    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
    27
    28
    29
    30
    31
    Sub test()
        Dim oFSO As Scripting.FileSystemObject
        Dim oFld As Scripting.Folder
        Dim oFile As Scripting.File
        Dim strChemin As String
        Dim IsFirstLoop As Boolean
     
        strChemin = "N:\MOYENS GENERAUX\Imprimerie\FichiersXMLindicateurs\XML\COM-2013\janvier\"
        firstLoop = True
        Set oFSO = New Scripting.FileSystemObject
        Set oFld = oFSO.GetFolder(strChemin)
     
        For Each oFile In oFld.Files
            If oFile.Name Like "*.xml" Then
                If IsFirstLoop = True Then
                    Sheets("janvier").Select
                    ActiveSheet.Range("B8").Select
                    ActiveWorkbook.XmlMaps("Root_Mappage").Import URL:=strChemin & oFile.Name
                    IsFirstLoop = False
                Else
                    Sheets("janvier").Select
                    ActiveSheet.Range("B" & Sheets("janvier").UsedRange.Rows.Count + 1).Select
                    ActiveWorkbook.XmlMaps("Root_Mappage").Import URL:=strChemin & oFile.Name
                End If
            End If
        Next oFile
        Set oFSO = Nothing
        Set oFld = Nothing
        Set oFile = Nothing
     
    End Sub

  7. #7
    Membre confirmé
    Homme Profil pro
    responsable imprimerie municipale
    Inscrit en
    Septembre 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : responsable imprimerie municipale

    Informations forums :
    Inscription : Septembre 2013
    Messages : 64
    Par défaut
    je viens d'essayer:

    message d'erreur sur les 3 premiéres ligne:


    type defini par l'utilisateur non defini

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

Discussions similaires

  1. important fichier XML+ code Java
    Par nonna dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 09/02/2008, 13h09
  2. Réponses: 3
    Dernier message: 20/04/2007, 09h46
  3. VBScript : création base Access pour import fichier XML
    Par abertaud dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/04/2007, 14h35
  4. VBScript : création base Access pour import fichier XML
    Par abertaud dans le forum VBScript
    Réponses: 1
    Dernier message: 02/04/2007, 14h34
  5. Importation fichier xml
    Par kastor_lapon dans le forum WinDev
    Réponses: 1
    Dernier message: 01/07/2005, 11h54

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