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 :

[E-03] Besoin d'aide pour l'adaptation d'un script vba sur excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut [E-03] Besoin d'aide pour l'adaptation d'un script vba sur excel
    Bonjour,

    j'ai créer avec l'aide de ce forum il y a quelques temps une macro qui permet de compiler un dossier de fichier en retranscrivant toutes lles données dans une seule feuille.
    J'ai besoin de faire la même chose mais avec des fichiers .xml j'aurais quelque peu besoin d'aide.

    Je vous transmet le script
    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
    32
    Sub Compilateur()
     
    Dim tabString() As String
    Dim chemin As String, nomFich As String, myString As String
    Dim i As Long, a As Integer
     
    chemin = "\\'URL'\"
     
    nomFich = Dir(chemin & "*.dta") 'liste les *.dta
     
    'importation des données :
    i = 2
     
    Do While nomFich <> ""
        Open chemin & nomFich For Input As #1 'on ouvre le fichier
        Do While Not EOF(1) 'on boucle dessus jusqu'à sa fin
     
            Line Input #1, myString
            myString = Replace(myString, " ", "") 'sert à virer les espaces inutiles vu que t'as que des nombres
     
            'on ventile en x champs selon les séparateurs ";" et on met dans un tableau
            tabString = Split(myString, ";")
     
            For a = 0 To UBound(tabString)
                Cells(i, a + 1) = tabString(a)
            Next a
            i = i + 1
        Loop
        Close #1
        nomFich = Dir() 'passe au fichier suivant
    Loop
    End sub
    le code pour convertir le xml dans un format lisible est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Workbooks.OpenXML strnomfich, LoadOption:=xlXmlLoadImportToList
    Merci pour votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Explique-nous tout
    Quel est le format d'un fichier ".dta" ? Est-ce un fichier texte ?
    Si oui, quelle est la structure des données à l'intérieur d'un ".dta" ? (Quel est le séparateur de données ? le séparateur décimal ?...)
    Tu dis

  3. #3
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 141
    Par défaut
    Euh le format dta n'est pas intéréssant, c'est le format que j'utilisais pour lla macro d'avant.

    Je vous ais remis la macro de base. la nouvelle dois compiler des fichiers en .xml mais cela ne se fai pas aussi simplement qu'avec le dta.
    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
    32
    33
    34
    Sub Compilateurxml()
     
    Dim tabString() As String
    Dim chemin As String, nomFich As String, myString As String
    Dim i As Long, a As Integer
     
    chemin = "\\...."
     
    nomFich = Dir(chemin & "*.xml") 'liste les *.xml
     
    'importation des données :
    i = 2
     
    Do While nomFich <> ""
        Open chemin & nomFich For Input As #1 'on ouvre le fichier
      '' ligne a vérifier :  Workbooks.OpenXML strnomfich, LoadOption:=xlXmlLoadImportToList
        Do While Not EOF(1) 'on boucle dessus jusqu'à sa fin
     
            Line Input #1, myString
            myString = Replace(myString, " ", "") 'sert à virer les espaces inutiles vu que t'as que des nombres
     
            'on ventile en x champs selon les séparateurs ";" et on met dans un tableau
            tabString = Split(myString, ";")
     
            For a = 0 To UBound(tabString)
                Cells(i, a + 1) = tabString(a)
            Next a
            i = i + 1
        Loop
        Close #1
        nomFich = Dir() 'passe au fichier suivant
    Loop
     
    End Sub
    Celui ci est pour les xml mais il ne fonctionne pas

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok, mais aussi pourquoi parler du dta alors que ton pb concerne les xml
    As-tu testé l'ouverture d'Excel -> Fichier -> Ouvrir -> Ton fichier.xml ?
    C'est une vraie question

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/09/2010, 13h09
  2. Réponses: 0
    Dernier message: 11/03/2010, 09h39
  3. Sessions, besoin d'aide pour une adaptation :)
    Par plex dans le forum Langage
    Réponses: 14
    Dernier message: 07/06/2008, 21h32
  4. Réponses: 11
    Dernier message: 05/06/2008, 10h39
  5. Besoin d'aide pour adapter un script
    Par Marshall31 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 16/05/2008, 09h18

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