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 :

VBA xml process long


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 9
    Par défaut VBA xml process long
    Bonjour,
    J’ai un problème au niveau du temps d’acquisition qui est beaucoup trop long (6 min pour un fichier).
    J’extrais sous vba des données provenant d’un fichier XML.
    Mon process est long car je boucle X fois dans l’intégralité du fichier ! J’aimerais boucler sur un bloc de balise et passer à un autre bloc. Sur l’exemple du fichier donné ci-dessous je voudrais pouvoir boucler dans les balises « balisepere » et pouvoir extraire des valeurs (pas toutes) dans chaque nœud.
    J’ai pu voir sur les forums des méthodes pour rentrer dans les balises excel mais je n’arrive pas à l’adapter.

    Je vous mets aussi un bout de mon programme pour vous montrer la méthode que j’utilise que j’ai « adapté » pour le fichier xml que je vous ai mis.
    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
     
    For Xn = 0 To X - 1
    'obtention des types
     
    genre = oXML.getElementsByTagName("noeud1").Item(Xn).Attributes.getNamedItem("Type").NodeValue
    ActiveSheet.Cells(Xn + i, 1) = genre
     
    'si type = C ou S on recupere les données equipement 
     
    If genre = "Connector" Or genre = "Shell" Then
    equipement = oXML.getElementsByTagName("noeud1").Item(Xn).Attributes.getNamedItem("tag").NodeValue
    ActiveSheet.Cells(Xn + i, 3) = equipement
    End If
    For Yn = 0 To Y - 1 
    If xml_doc.getElementsByTagName("noeud2").Item(Yn).Attributes.getNamedItem("info").NodeValue = equipement Or xml_doc.getElementsByTagName("noeud2").Item(Yn).Attributes.getNamedItem("info2").NodeValue = equipement Then 
    pin = xml_doc.getElementsByTagName("noeud2").Item(Yn).Attributes.getNamedItem("info3").NodeValue
    ref = xml_doc.getElementsByTagName("noeud2").Item(Yn).Attributes.getNamedItem("tag").NodeValue
    End If
    Next Yn
    next Xn
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [OL-2010] VBA XML process trop long
    Par sarahAH dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 25/01/2017, 15h46
  2. vba - Xml et Excel
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/01/2008, 18h13
  3. [vba, xml] modification du ruban office
    Par guyzmot dans le forum Général VBA
    Réponses: 0
    Dernier message: 23/08/2007, 16h41
  4. [VBA][XML] Recherche rapide
    Par DotNET74 dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/03/2007, 06h56
  5. Demande d'aide sur XPDL (XML Process Definition Language)
    Par Bebert71 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 17/02/2006, 09h23

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