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 :

Gestion fichiers xml [XL-MAC 2011]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut Gestion fichiers xml
    Bonjour à tous,

    j'ai des gros problèmes pour la planification des travaux car ils viennent de six personnes différentes qui utilisent le même fichier excel avec un nom différent. le problème est que la planification se fait à l'orale et il y as des oublis.
    il faut donc mettre en place un export XML pour chacun afin de récupérer les données de tous dans un même fichier pour moi voir en "live" les dossiers à planifier.

    Je dois donc exporter un fichier XML par onglet (à l’aide d’une macro sans utiliser le mappage car il y as des problèmes avec certaines version d'office) dans les répertoires suivant :

    C :/communication/2013/septembre/ pour le mois de septembre (onglet septembre)
    C :/communication/2013/octobre/ pour le mois d’octobre (onglet octobre)

    etc.... un répertoire par mois (qui correspondent aux 12 onglets)
    comme cela j'ai par mois un fichier xml par personne.

    Conditions à respecter pour l’export :

    1 — le fichier doit porter le même nom que le fichier de base mais avec l’extension XML (ceci permet d'utiliser le même fichier avec un nom différent pour chaque utilisateur).

    2 — l’export se fait lors de la fermeture du fichier (pour un éventuel oubli de l’opérateur) ou si pas possible par l'intermédiaire d'un bouton.

    3 — exporter juste les lignes remplies du tableau A9 à J120.

    4 - le nom des colonnes à reprendre pour l’import se trouve de A8 à J8.

    Deuxième étape :

    Conditions pour l’importation des XML :

    1 — faire un fichier de 12 onglets avec dans chaque onglet en ligne 7 le nom des colonnes (en pièce jointe).

    2 — copier tous les fichiers XML du répertoire C :/communication/2013/septembre/dans l'onglet septembre, copier tous les fichiers XML du répertoire C :/communication/2013/octobre/dans l'onglet octobre, etc…… à l'ouverture du fichier excel ou si pas possible par l'intermédiaire d'un bouton.

    Donc on aura par onglet 6 lignes vide, ligne 7 le nom des données et enfin à partir de la ligne 8 les données des différents fichiers XML les uns derrière les autres.

    par avance un énorme merci car moi je rame depuis deux jours et là je sature. je n'ais aucune connaissances en macro alors je bidouille avec des bouts de code mais là la tache est trop dure pour mon petit cerveau.

    je joint un fichier de base utilisé par les 6 personnes pour l'export et le fichier qui serviras pour l'import.

    Daniel

    Pièce jointe 127703

  2. #2
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    ce forum est un Club de développeurs dans lequel des intervenants bénévoles répondent à des questions ponctuelles.
    Certains d'entre eux sont des professionnels, parfois même à leur compte,
    donc ce n'est pas un site où l'on vient passer commande d'un applicatif complet ‼

    Être débutant n'est aucunement une excuse en soi afin de requérir un développement sans s'investir
    et qui plus est dans un cadre professionnel !

    Débutant un jour, débutant toujours ?‼

    Les débutants sont évidemment tolérés s'ils respectent les règles du forum.
    Si une question ponctuelle est suffisamment bien exposée et accompagnée d'un code en rapport avec la question,
    il a des chances d'obtenir au moins une proposition de résolution de son problème.

    Sinon il est dirigé vers les pépites de ce site, les tutoriels et autres FAQ riches et nombreux comme par exemple






    Pour ceux n'ayant pas le temps d'acquérir des compétences, se tourner alors vers les professionnels
    qui seront enchantés de présenter leur devis de développement …

    __________________________________________________________________________________________
    Lire … C'est s'investir !
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    ok merci pour cette réponse claire et précise.

    Juste une chose il y as 6 mois je ne connaissais rien à excel.

    J’ai réalisé un fichier de facturation des travaux avec des formules de 10 kms de long sans l’aide de personne. J’ai passé deux mois dessus et maintenant il fonctionne à merveille.
    J’ai même ajouté des petites macros glanées sur le net et adapté à ma sauce.
    Il gère 4 copieurs, deux machines offset, le stock papier, les commandes et 7 autres machines.

    Donc je fais beaucoup de chose moi-même mais dans ce cas précis je n’y arrive pas.

    Et s’il faut apprendre un langage à chaque fois que l’on veut faire quelque chose on n’en finit plus.

    J’ai fait une demande mais apparemment j’en demande de trop alors laissez tomber je vais chercher pendant un mois ou deux mais je finirais par trouver une solution à mon problème car je suis d’une nature têtue et je ne laisse jamais tomber.

    Sachez que je ne profite pas car cela fait trois semaines ou j’y travaille deux à trois heures par jour plus mon week end mais je n’arrive à pas grand chose.

    Pour vous prouvez que je ne suis pas un "branleur qui profite" j’ai mis en pièce jointe ou j’en suis.

    - J’arrive à exporter un XML mais il n’est pas au format standard mais cela me convient (à l'aide d'une macro).

    - pb*: faire l’export automatique de tous les onglets à la fermeture du fichier

    - J’ai fait juste l’onglet janvier (à étendre aux autres)

    - Mais je n’arrive pas à rapatrier les différents xml dans les onglets ou ils sont destinés.

    Donc voila merci quand même à ceux qui m’ont lu et bonne continuation à tous.

    Daniel

  4. #4
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    Certains ne peuvent pas (ou ne veulent pas pour une raison évidente de sécurité) télécharger des fichiers.
    C'est souvent mon cas en semaine selon le site où je me trouve …

    Sinon rien n'empêche d"exposer une difficulté précise avec le code en rapport. En gros, une discussion ouverte par souci rencontré …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Problème non résolu mais je ferme ce post afin de vous laisser entre "bêtes du VBA" et pas d’inquiétude pour moi je vais continuer à chercher et je suis sûre que dans quelques mois j’aurais trouvé la solution au lieu de quelques heures avec les pros de ce site.

    Je quitte avec un peu d’amertume car je suis graphiste et j’ai déjà fait des dizaines de choses entièrement gratuitement afin d’aider car comme je l'ais dit plus haut on ne peut pas apprendre tout à chaque fois que l’on a un problème mais bon c’est ma philosophie et chacun pense et agit comme il veut.

    Surtout n’oubliez pas que tôt ou tard vous passerez du côté de la barrière "je ne sais pas faire" et là……

    Merci à ceux qui on prit le temps de me lire et bonne continuation à tous.

  6. #6
    Expert éminent sénior
    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
    Points : 18 677
    Points
    18 677
    Par défaut
    Pour rappel, les intervenants de ce forum sont pour parti des professionnels,
    donc le week-end ils ne sont pas forcément disponibles …

    Il aurait mieux fallu attendre lundi soir pour clôturer …

    Rien n'empêche de revenir sur des points précis.
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Non merci je n’aime pas être obligé de pleurer pour avoir quelque chose (moi aussi je suis professionnel avec plusieurs "casquettes" et cela m’arrive fréquemment de travailler le week end pour aider.)

    J’ai résolu la moitié de mon problème en faisant l’export pour l'onglet janvier


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Sub ExportDesDonneesXML()
     
    'On Error Resume Next
     
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Application.DisplayAlerts = False
     
    Dim Chemin As String
    Dim Nom As String
    Dim Fichier As String
    Dim numfile As Integer
    Dim i As Integer
     
    Chemin = "DD MAC:Users:daniel:Desktop:XML:COM-2013:janvier:"
    Nom = ActiveWorkbook.Name
    Nom = Split(Nom, ".")(0)                                            'On prend le nom du fichier courant sans son extension .xls
    Fichier = Chemin & Nom & ".xml"
     
    numfile = FreeFile
    Open Fichier For Output As #numfile
    Print #numfile, "<janvier>"
    i = 9
        While Cells(i, 2) <> ""
            Print #numfile, "<previsions>"
                Print #numfile, "<contact>" & Cells(i, 1) & "</contact>"
                Print #numfile, "<confirme>" & Cells(i, 2) & "</confirme>"
                Print #numfile, "<nom>" & Cells(i, 3) & "</nom>"
                Print #numfile, "<format>" & Cells(i, 4) & "</format>"
                Print #numfile, "<pages>" & Cells(i, 5) & "</pages>"
                Print #numfile, "<quantites>" & Cells(i, 6) & "</quantites>"
                Print #numfile, "<fichiers>" & Cells(i, 7) & "</fichiers>"
                Print #numfile, "<livraison>" & Cells(i, 8) & "</livraison>"
                Print #numfile, "<service>" & Cells(i, 9) & "</service>"
                Print #numfile, "<imprimerie>" & Cells(i, 10) & "</imprimerie>"
            Print #numfile, "</previsions>"
            i = i + 1
        Wend
     
    Print #numfile, "</janvier>"
    Close #numfile
     
    Application.ScreenUpdating = True
    Application.EnableEvents = True
    Application.DisplayAlerts = True
     
    If (Err.Number <> 0) Then GoTo plantage   'gestion des erreurs afin de prévenir l'utilisateur
     
    MsgBox "Les données XML ont bien été exportées.", vbOKOnly + vbInformation, "Message"
     
    Exit Sub
     
    plantage:
    MsgBox "Une erreur s'est produite : l'export des données ne s'est pas passé correctement !", vbCritical
     
    End Sub

    Je vais dupliquer la macro pour les 11 autres et le tour est joué (pas très catholique mais ça fonctionne).

    Le XML n’est pas du standard.


    Code xml : 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
    <janvier>
    <previsions>
    <contact>PAUL</contact>
    <confirme>NON</confirme>
    <nom>lettre petit RPE</nom>
    <format>A5</format>
    <pages>16</pages>
    <quantites>5000</quantites>
    <fichiers>sortie octobre</fichiers>
    <livraison>02/12/2013</livraison>
    <service>P. ENFANCE</service>
    <imprimerie>copies</imprimerie>
    </previsions>
    <previsions>
    <contact>PAUL</contact>
    <confirme>NON</confirme>
    <nom>séminaire des cadres</nom>
    <format>A4</format>
    <pages></pages>
    <quantites></quantites>
    <fichiers>06/09/2013</fichiers>
    <livraison></livraison>
    <service>COM INTERNE</service>
    <imprimerie>copies</imprimerie>
    </previsions>
    </janvier>

    mais tant pis je vais essayer de faire une macro pour l’import des 6 fichiers XML d'un même dossier dans un même onglet.
    Je mettrais le temps qu’il faudra pour y arriver.

    bonne continuation

    Daniel

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si tu veux exporter toutes les feuilles vers un même fichier xml
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub ExportDesDonneesXML()
    Dim Chemin As String, Nom As String, Fichier As String
    Dim Ws As Worksheet
    Dim N As Integer
     
    Chemin = ThisWorkbook.Path & "\"                   '"DD MAC:Users:daniel:Desktop:XML:COM-2013:janvier:"
    Nom = ThisWorkbook.Name
    Fichier = Chemin & Left(Nom, InStrRev(Nom, ".")) & "xml"
     
    N = FreeFile
    Open Fichier For Output As #N
    For Each Ws In ThisWorkbook.Worksheets
        ExportFeuille Ws, N
    Next Ws
    Close #N
    End Sub
     
     
    Private Sub ExportFeuille(ByVal Ws As Worksheet, ByVal N As Integer)
    Dim LeMois As String
    Dim i As Long
     
    With Ws
        LeMois = LCase(Ws.Name)
        Print #N, "<" & LeMois & ">"
        i = 9
        Do While .Cells(i, 1).Value <> ""
            Print #N, "<previsions>"
            Print #N, "<contact>" & .Cells(i, 1) & "</contact>"
            Print #N, "<confirme>" & .Cells(i, 2) & "</confirme>"
            Print #N, "<nom>" & .Cells(i, 3) & "</nom>"
            Print #N, "<format>" & .Cells(i, 4) & "</format>"
            Print #N, "<pages>" & .Cells(i, 5) & "</pages>"
            Print #N, "<quantites>" & .Cells(i, 6) & "</quantites>"
            Print #N, "<fichiers>" & .Cells(i, 7) & "</fichiers>"
            Print #N, "<livraison>" & .Cells(i, 8) & "</livraison>"
            Print #N, "<service>" & .Cells(i, 9) & "</service>"
            Print #N, "<imprimerie>" & .Cells(i, 10) & "</imprimerie>"
            Print #N, "</previsions>"
            i = i + 1
        Loop
        Print #N, "</" & LeMois & ">"
    End With
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    merci

    moins long que moi.

    je teste et je me remet sur l'export.


    cordialement

    daniel

    en fait je veux exporter chaque feuille dans sont dossier:

    la feuille janvier dans le dossier janvier
    la feuille fevrier dans le dossier fevrier .........

    Daniel

  10. #10
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    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
    35
    36
    37
    38
    39
    40
    Sub ExportDesDonneesXML()
    Dim Chemin As String, Nom As String, Fichier As String
    Dim Ws As Worksheet
    Dim i As Long
    Dim N As Integer
     
    Chemin = "DD MAC:Users:daniel:Desktop:XML:COM-2013:"
    Nom = ThisWorkbook.Name
    Nom = Left(Nom, InStrRev(Nom, ".")) & "xml"
     
    For Each Ws In ThisWorkbook.Worksheets
        With Ws
            LeMois = LCase(.Name)
            Fichier = Chemin & LeMois & ":" & Nom
     
            N = FreeFile
            i = 9
            Open Fichier For Output As #N
     
            Print #N, "<" & LeMois & ">"
            Do While .Cells(i, 1).Value <> ""
                Print #N, "<previsions>"
                Print #N, "<contact>" & .Cells(i, 1) & "</contact>"
                Print #N, "<confirme>" & .Cells(i, 2) & "</confirme>"
                Print #N, "<nom>" & .Cells(i, 3) & "</nom>"
                Print #N, "<format>" & .Cells(i, 4) & "</format>"
                Print #N, "<pages>" & .Cells(i, 5) & "</pages>"
                Print #N, "<quantites>" & .Cells(i, 6) & "</quantites>"
                Print #N, "<fichiers>" & .Cells(i, 7) & "</fichiers>"
                Print #N, "<livraison>" & .Cells(i, 8) & "</livraison>"
                Print #N, "<service>" & .Cells(i, 9) & "</service>"
                Print #N, "<imprimerie>" & .Cells(i, 10) & "</imprimerie>"
                Print #N, "</previsions>"
                i = i + 1
            Loop
            Print #N, "</" & LeMois & ">"
            Close #N
        End With
    Next Ws
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  11. #11
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Super-cela fonctionne à merveille je suis trop content.

    J’ai fait l’essai sur mes six personnes et je me retrouve bien avec six fichiers xml dans chaque dossier.

    J’ai ajouté la mise en route de la macro lors de la sauvegarde des fichiers.

    La structure du fichier xml est donc la suivante*:

    Code xml : 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
     <septembre >
    <previsions >
    <contact > PAUL </contact >
    <confirme > NON </confirme >
    <nom > lettre petit bisontin RPE </nom >
    <format > A5 </format >
    <pages > 16 </pages >
    <quantites > 5000 </quantites >
    <fichiers > sortie octobre </fichiers >
    <livraison > 02/12/2013 </livraison >
    <service > P. ENFANCE </service >
    <imprimerie > copies </imprimerie >
    </previsions >
    <previsions >
    <contact > PAUL </contact >
    <confirme > NON </confirme >
    <nom > séminaire des cadres </nom >
    <format > A4 </format >
    <pages > </pages >
    <quantites > </quantites >
    <fichiers > 06/09/2013 </fichiers >
    <livraison > </livraison >
    <service > COM INTERNE </service >
    <imprimerie > copies </imprimerie >
    </previsions >
    </septembre >

    J’ai créé un fichier pour rapatrier les six fichiers xml d’un répertoire dans un même onglet qui porte le nom du répertoire.

    [ATTACH] 127750 [/ATTACH]

    Il me reste plus qu’à chercher pour créer la macro qui va faire le travail.


    Mille mercis pour l’aide précieuse.

    Daniel
    Images attachées Images attachées  

  12. #12
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    voila j'ai mis en place cette macro mais j'ai un message d'erreur sur la ligne 3?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro3()
     
    ThisWorkbook.XmlImport _
    URL:="DD MAC:Users:daniel:Desktop:XML:COM-2013:septembre:paul.xml", _
    ImportMap:=Nothing, _
    Overwrite:=True, _
    Destination:=Worksheets("septembre").Range("$A$8")
     
    End Sub
    Nom : Image 3.png
Affichages : 507
Taille : 16,7 Ko

  13. #13
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si le fichier xml existe bien, ça va fonctionner mais des problèmes d'accents dans le texte xml pourraient apparaitre.

    Edit

    Daniel, j'ai repris la remarque de Marc_L pour t'orienter sur le fait de la non clarté de tes questions. Et sur le fait que pour avoir des réponses ciblée il faudra que la question soit assez explicite. Il est question de pertinence de la demande comme de la réponse.

    Sinon, ici ou ailleurs personne n'est meilleur que d'autres que par l'implication et il est de soit qu'être méthodique dans n'importe quel cas est un préalable à la réussite.

    Voilà, je te mets un +1 pour t'encourager à être plus explicit et j'ai retiré la citation qui t'as dérangé.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  14. #14
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Non ce n’est pas la citation qui me dérange mais le fait que cela fait plusieurs semaines que je tourne en rond avec ces deux fichiers et que là je commence à saturer. Je crois que plus je cherche moins j'avance.

    J’ai cherché hier Après midi et j’y suis depuis ce matin 9 hrs tout sa pour 5 lignes qui ne marche pas.

    J’ai supprimé les accents d’un fichier pour voir mais j’ai toujours le même message d’erreur*:

    compile error
    method or data member not found
    Je vais chercher autre chose car j’ai besoin qu’il traite les accents.

    Tu vois un peu la galère je n’arrive déjà pas à faire un import simple et mon but est d’importer plusieurs fichiers d’un même répertoire mis bout à bout dans une feuille et ceci pour 12 répertoires et donc 12 feuilles.

    Je pense pouvoir m’en servir pour noël.

    Moi aussi j’ai enlevé ma réflexion qui était sur le coup de ma mauvaise humeur.

    Bon, je me remets au travail et je post si j’avance.

    Cordialement

    Daniel

  15. #15
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Manuellement, tu arrives à importer les données que tu as mis tel dans tes fichiers xml?

    La structure du xml est elle adéquate?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  16. #16
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    Plus haut tu as une copie du contenu complet d’un XML.

    Manuellement je l’ouvre dans excel mais en format texte.

    Je suis sous excel mac 2011.
    Il me manque dans les menus (developer) la commande importer du XML???

    Ceci explique peut-être pourquoi je n’arrive à rien ?

    Comme tu l’as vu dans la macro je fais un export particulier donc je pense que le fichier xml n’est pas du standard.

    le fichier est destiné à tourner sur PC.

  17. #17
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Voilà, j'ai fais un test sur XL2010 grâce à l'enregistreur de macro adapté(pour Mac je n'ai pas la possibilité)
    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
    Sub ImportJanvier()
    Dim Fichier As String, LeMois As String
    Dim Xmp As XmlMap
     
    LeMois = "janvier"
    With ThisWorkbook
        For Each Xmp In .XmlMaps
            Xmp.Delete
        Next Xmp
     
        Fichier = "C:\Users\user\Desktop\test-1\" & LeMois & "\PAUL-2013.xml"
     
        .XmlImport URL:=Fichier, ImportMap:=Nothing, Overwrite:=False, Destination:=.Worksheets(LeMois).Range("A9")
        With .XmlMaps(LeMois & "_Mappage")
            .ShowImportExportValidationErrors = True
            .DataBinding.ClearSettings
            .AdjustColumnWidth = False
            .PreserveColumnFilter = True
            .PreserveNumberFormatting = True
            .AppendOnImport = True
        End With
    End With
    End Sub
    Les données avec accent posent problème, il faudra se pencher sur problème
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  18. #18
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    merci pour le code.
    La donnée:

    Représente quoi exactement car la macro se bloque dessus.

    Message d’erreur*:

    compile error
    user-defined type not defined
    D’Après mes recherches c’est une histoire de mappage
    Si c'est le cas excel 2011 mac ne gére pas le mappage et je ne sais pas pourquoi.

    J’ai déjà eu le tour avec un stagiaire qui avait fait un fichier avec un mappage et sur XL mac 2011 le nappage disparaissait et on ne pouvait pas exporter alors il a donc utilisé une macro (du style de celle que j’utilise) pour exporter un xml.
    alors que sur XL 2007 pas de problèmes.

    je vais tester cela demain sur un PC pour voir.

    je n'ais pas le groupe XML dans l'onglet developer d'excel???

    d'aprés mes recherches problème du au manque d'une Bibliothèque d'objets sur mon mac

    bonjour,

    après mon dimanche à chercher et ne rien trouver j'ai complettement refais les fichiers et les macros.

    pour la feuille de janvier:

    macro pour exporter:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub ExportJanvier()
    '
    ' ExportJanvier Macro
    ' Macro enregistrée le 30/09/2013 par plancot daniel
    '
     
    '
        ActiveWorkbook.XmlMaps("Root_Mappage2").export URL:= _
            "N:\MOYENS GENERAUX\Imprimerie\FichiersXMLindicateurs\XML\COM-2013\janvier\sandra.xml"
     
     
     
    End Sub

    fichier mappage:

    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
    <?xml version='1.0' encoding='UTF-16'?>
    <!-- Created from XmlMap.Name: Root_Mappage2 -->
    <!-- XmlMap.DataBinding.SourceUrl:  -->
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    	<xsd:element nillable="true" name="Root">
    		<xsd:complexType>
    			<xsd:sequence minOccurs="0">
    				<xsd:element minOccurs="0" maxOccurs="unbounded" nillable="true" name="Row" form="unqualified">
    					<xsd:complexType>
    						<xsd:sequence minOccurs="0">
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="CONTACT" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="CONFIRME" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="NOM" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="FORMAT" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="PAGES" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="QUANTITES" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="FICHIER" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="LIVRAISON" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="SERVICE" form="unqualified"/>
    							<xsd:element minOccurs="0" nillable="true" type="xsd:string" name="IMPRIMEIRE" form="unqualified"/>
    						</xsd:sequence>
    					</xsd:complexType>
    				</xsd:element>
    			</xsd:sequence>
    		</xsd:complexType>
    	</xsd:element>
    </xsd:schema>


    macro pour importer:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub ImportJanvier()
    '
    ' ImportJanvier Macro
    ' Macro enregistrée le 30/09/2013 par plancot daniel
    '
     
    '
        Range("B8").Select
        ActiveWorkbook.XmlMaps("Root_Mappage").Import URL:= _
            "N:\MOYENS GENERAUX\Imprimerie\FichiersXMLindicateurs\XML\COM-2013\janvier\sandra.xml"
        ActiveWindow.SmallScroll Down:=66
    End Sub
    cela fonctionne à merveille au boulot.
    il y avait bien un problème avec la version MAC (pas de mappage XML?????).

    quelqu'un peu m'expliquer:
    pour l'exportation:

    1 - ne mettre que les lignes pleines dans le fichier XML
    2 - comment donner le nom du fichier source au fichier XML.
    3 - comment appliquer la macro sur mes 12 feuilles pour l'export (janvier, fevrier, mars, ...).
    le nom du fichiers xml ne change pas mais le dossier de destination porte le nom de la feuille.

    pour l'importation:

    1 - rappatrier tout les fichiers XML d'un même dossier bout à bout dans la feuille portant le nom du dossier (ex: les XML du dossier "janvier" dans la feuille "janvier").

    j'ai trouvé des bouts de code pour faire les modif mais à chaque fois plus rien ne marche.

    je mets en piéce jointe mais deux fichiers XL et le mappage.


    fin export.xls

    fin import.xls

    MappageExport.XSD

  19. #19
    Nouveau membre du Club
    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
    Points : 25
    Points
    25
    Par défaut
    je cloture ce post car j'ai 90% de la solution.
    ce qu'il me manque est dans un autre post.

    merci à ceux qui m'ont lu ou m'ont fait avancer.

    Daniel

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/04/2012, 13h53
  2. Gestion fichier xml
    Par AkiraLeChat dans le forum Android
    Réponses: 5
    Dernier message: 15/07/2011, 17h00
  3. Gestion des fichiers XML et ASC3 sous Flex:
    Par silverfab34 dans le forum Flex
    Réponses: 2
    Dernier message: 18/07/2007, 17h34
  4. [PB 7.0] Gestion de fichier XML
    Par ben_ghost dans le forum Powerbuilder
    Réponses: 2
    Dernier message: 25/03/2007, 16h39
  5. Gestion de fichiers xml par php
    Par omman95 dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2006, 07h30

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