Fichier XLM
Bonjour à tous,
J’ai un problème sur un fichier excel.
Description du fichier :
- C’est un fichier de prévision de travail qui sera distribué et donc personnalisé pour 6 personnes.
- Chacun aura donc un fichier nommé avec son nom et l’année.
- Ils auront tous la même présentation.
- J’ai réussi à faire une macro qui m’exporte certaines des données en xml dans un dossier (grâce à des recherches sur le web).
- Le fichier XML porte le même nom que le classeur donc il y aura 6 fichiers XML dans le dossier.
Mon problèmes:
- Je voudrais mettre en place un classeur avec en cellule A1 le mois, en cellule A2 l'année (les deux sous la forme de menu déroulant) jusque-là ce n’est pas trop dur.
- Donc voici la procédure à mettre en place :
1 — entrer le mois exemple "septembre"
2 — entrer l’année exemple "2013"
3 — clic sur un bouton qui va scanner le répertoire "septembre" et importer sur la même feuille tous les fichiers XML avec l’année "2013" dans le nom (les six fichiers).
Ceci pour pouvoir planifier le travail à l’avance.
Cela fait 2 semaines que je me bats avec le fichier et il a toujours gagné alors je sais plus quoi faire.
Je travaille pour le moment sur un mois et je vais l’étendre sur une année ensuite.
Une petite précision le fichier seras sur 9 colonnes (j’exporte juste celle-ci) :
contact, nom, format, pages, quantites, fichiers, livraison, service et imprimerie.
Il ne faut travailler quand macro car le fichier va être utilisé sur plusieurs versions de excel et j’ai déjà eu des problèmes avec la fonction mappage.
À l’avance je vous remercie pour votre aide car je n’y connais rien en macro et tout ce que je fais c’est de prendre des bouts de code à droite et à gauche pour essayer de m’en sortir mais bon pas le top.
je vous joint mon fichier excel avec la macro d'export.
encore merci pour vos réponses
Bonjour,
il faudrait 2 fichiers xlm (qcq lignes bidons mais représentatives des type de données) ainsi que les différents formats du nom, idem pour les noms de répertoires (parties fixes, caractères constants etc)
Par curiosité, pourquoi avoir choisi le format xml ?
eric
bonjour,
le choix du format XML met imposé car les fichiers seront utilisé pour d'autres choses.
la structure des répertoires est le nom de chaque mois donc douze répertoires et dans chaque répertoire 6 fichiers XLM des prévisions du mois.
chaque fichier se nomme: "nom de l'utilisateur"-"année".xml
donc en mettant le mois et l'année ceci permet de trouver le répertoire (mois) et les 6 fichiers à importer dans la feuille (fichier dont le nom contient l'année).
je joint les fichiers xml.
encore merci pour cette réponse.
j'ai oublié les fichiers c'est sa quand on n'a pas de cerveau.
Re,
Tu as oublié de préciser que c'est pour Mac.
On n'arrive pas à ouvrir tes fichiers xml sur excel Windows (sauf à changer des caractères, dont les lettres accentuées), mais surtout ce qui concerne les accès fichier pose des problèmes.
Je crains qu'il ne faille que tu attendes qcq'un qui ait un Mac...
Tu devrais compléter la version sur ton profil.
eric
suite....
J'ai tenté, mais à mon avis il faudra que tu modifies tout ce qui concerne les accès fichiers.
Si tu as accès à un PC tu pourras tester (dans la mesure où tu remplaces les caractères mal-aimés)
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$B$1:$F$1" Then importer: Cancel = True
End Sub
Sub importer()
Dim mois As String, annee As String, derlig1 As Long, derlig2 As Long
Dim chemin As String, Fichier As String
Dim wb As Workbook, sh As Worksheet
Set sh = ActiveSheet
mois = Format([B1], "mmmm")
annee = Format([B1], "yyyy")
Set wb = ThisWorkbook
chemin = wb.Path + "\" & mois & "\"
Fichier = Dir(chemin & "*.xml") ' 1er fichier
Do While (Len(Fichier) > 0)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If Fichier <> ThisWorkbook.Name And Split(Left(Fichier, Len(Fichier) - 4), "-")(1) = annee Then
' traitement
Workbooks.OpenXML Filename:=chemin & Fichier, LoadOption:=xlXmlLoadImportToList
derlig1 = sh.Cells(Rows.Count, "B").End(xlUp).Row
derlig2 = Cells(Rows.Count, "B").End(xlUp).Row
[A2].Resize(derlig2 - 1, 9).Copy sh.Cells(derlig1 + 1, "A").Resize(derlig2 - 1, 9)
'
ActiveWorkbook.Close
End If
Fichier = Dir() ' fichier suivant
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Loop
End SubUn double-clic sur la date en B1 lance la macro.
J'ai fait le choix de ne pas nettoyer la feuille, tout s'ajoute à la fin.
Les mois doivent être des sous-répertoires (au format mois "mmmm" d'excel) du fichier macro.
eric
PS: ajouter peut-être le comptage des fichiers importés pour annoncer le nombre à l'utilisateur.
bonjour,
merci pour le code je vais tester.
je développe le fichier (esthétique et formules) chez moi donc sur mac mais il est destiné à fonctionner sur PC.
donc je fais les modifs nécessaire avant de le mettre à dispo.
voila je teste et je reviens vers toi.
encore merci
Daniel
Rebonjour,
j'ai modifié le fichier pour les chemins d'accès de ce coté là pas de problème.
mais j'ai un message d'erreur et je ne trouve pas pourquoi.
peut-être à cause de la structure du fichier xlm.
je te joint une copie d'écran de celui-ci et du message d'erreur.
de mon coté je cherche aussi.
A plus
Daniel
juste une chose c'est bien left et non right dans le code car j'ai fait un essai et j'ai oublié de le changer.
il ne veut pas l'ouvrir en tant qu'XML mais en tant que TXT????
tu crois que cela marcherais sur PC et que le MAC pose probléme?
peut-être que la façon dont je crée le XML n'est pas bonne?
tu as jeté un oeil sur la macro?
tu crois que cela marcherais sur PC et que le MAC pose probléme?
Si le Mac ne te le propose pas c'est qu'il ne connait pas. Ca confirme l'erreur de la constante inconnue.
peut-être que la façon dont je crée le XML n'est pas bonne?
tu as jeté un oeil sur la macro?Ca ne résoudra pas ton problème sur Mac mais oui tes xml sont non conformes. Et pas que pour excel...
Tu devrais plutôt copier tes données dans un classeur neuf d'une feuille et l'enregistrer au format xml. Je pense que le résultat sera nettement plus propre.
eric
edit: voilà à quoi devrait ressembler ton fichier xml. Ouvre-le à l'éditeur de texte, tu verras qu'il y a beaucoup de différences (sauf si on te demande de respecter scrupuleusement le format que tu as créé).
Si je comprends bien je copie les données qui m’intéressent dans une feuille vierge avec les entêtes nécessaires (contact, nom,….) et j’enregistre la feuille au format xml pour pouvoir les appeler ensuite.
Bon alors je me mets au travail et je crie au secours si j’ai un problème.
Encore merci pour tes conseils.
Daniel
Je pense qu’ils veulent le même format car ils l’utilisent déjà pour d’autre chose.
Il a été créé par un stagiaire d’une école d’ingénieur pour faire des stats et je crois qu’ils vont intégrer mon travail dedans.
J’ai demandé de l’aide mais bon la mentalité est chacun pour soi donc je me débrouille.
Crois-tu qu’il est possible d’utiliser ce format pour l’import des XML ?
Sinon je vais me renseigner au boulot demain pour savoir comment il l’utilise et je te tiens au courant.
je te joint le fichier que je viens de créé après avoir copié les données dans une autre feuille.
De mon côté je vais voir pour continuer dans la voie que tu m’as indiquée au cas ou.
Merci pour toute ton aide.
Daniel
Je pense qu’ils veulent le même format car ils l’utilisent déjà pour d’autre chose.
Il a été créé par un stagiaire d’une école d’ingénieur pour faire des stats
Si il a décrit le format en disant tel en-tête, telle balise pour telle donnée etc alors il faut le respecter.
Il y a des normes pour ces fichiers, mais on peut aussi faire des choix personnels.
Peut-être que le problème d'ouverture sur excel est seulement dû codage des caractères par ton Mac, et qu'il s'ouvrira très bien sur excel windows s'il est généré sur windows.
Si le problème persiste sur windows il sera temps de réfléchir, il y a toujours une solution.
eric
merci je teste demain et je te dis quoi.
Bonjour,
J’ai eu pas mal de taf cette semaine alors j’ai mis du temps avant de tester.
Cela ne va pas j’ai donc eu une réunion avec le service demandeur pour expliquer le problème.
Voilà la conclusion :
Nous avons décidé de partir dans la direction que tu m’as préconisée mais là j’ai essayé de le faire moi-même mais je n’arrive à rien.
C’est pénible de rester bloqué comme ça alors je me tourne vers toi pour voir si tu peux me venir en aide.
Surtout ne te sent pas obligé si cela te fait perdre ton temps tu me le dis et je me débrouillerais autrement.
Je dois donc exporter un fichier XML standard (à l’aide d’une macro sans utiliser le mappage) dans les répertoires suivant :
C :/communication/2013/septembre/ pour le mois de septembre
C :/communication/2013/octobre/ pour le mois d’octobre
etc.... un répertoire par mois (qui correspondent aux 12 onglets)
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 un onglet septembre, copier tous les fichiers XML du répertoire C :/communication/2013/octobre/dans un 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 à toi si tu t'attaque à mon problème car moi je rame depuis deux jours et là je sature.
Daniel
bonjour,
j'ai avancé:
j'arrive à générer les xml qui sont comme si dessous:
<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>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>trombinoscope des élus</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>COM INTERNE</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Guide du conseil en organisation</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>COM INTERNE</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>diplôme maisons fleuries</nom>
<format>A4</format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>ESPACES VERTS</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Flyer source arcier</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>ESPACES VERTS</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>petite école dans la foret</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>ESPACES VERTS</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Forum CCH Clairs So/ Bregille</nom>
<format>calicot+A6+A3</format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>CCH</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>jour de la nuit</nom>
<format>A4 - A6</format>
<pages></pages>
<quantites></quantites>
<fichiers>12/10/2013</fichiers>
<livraison></livraison>
<service>DEV DUR</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Mémento-guide étudiants</nom>
<format>booklet</format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>ENS SUP</service>
<imprimerie>ext</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Besançon clic 2012</nom>
<format>pack complet</format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>TIC</service>
<imprimerie>ext</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>la semaine bleue</nom>
<format>pack complet</format>
<pages></pages>
<quantites>4000</quantites>
<fichiers>15-21 oct</fichiers>
<livraison></livraison>
<service>MDS</service>
<imprimerie>offset</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Tickets loisirs automne</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>SPORTS</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Vital'automne</nom>
<format>3 volets</format>
<pages></pages>
<quantites></quantites>
<fichiers>07/10/2013</fichiers>
<livraison></livraison>
<service>SPORTS</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>SSI droits de l'enfant</nom>
<format>pack complet</format>
<pages></pages>
<quantites></quantites>
<fichiers>16-24 nov</fichiers>
<livraison></livraison>
<service>DVQ - CAB</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>RDV de l'âge</nom>
<format>pack complet</format>
<pages></pages>
<quantites>23000</quantites>
<fichiers>13/11/2013</fichiers>
<livraison></livraison>
<service>MDS</service>
<imprimerie>offset</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>trombinoscope conseil des sages</nom>
<format>A4</format>
<pages>2</pages>
<quantites></quantites>
<fichiers>01/10/2013</fichiers>
<livraison></livraison>
<service>DEMO PART</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>affiches gaspillage alimentaire</nom>
<format>A2</format>
<pages></pages>
<quantites></quantites>
<fichiers>1er octobre</fichiers>
<livraison></livraison>
<service>CBJ</service>
<imprimerie>ext</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Bibliographie club de Planoise - les jeudis</nom>
<format>livret A5 / MP / A3</format>
<pages></pages>
<quantites></quantites>
<fichiers>sept</fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>offset</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Au plaisir d'écouter RDV jeudis</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Charte graphique BIB 2013</nom>
<format></format>
<pages></pages>
<quantites></quantites>
<fichiers>sept</fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>_</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Bibliographie animations du plurilinguisme</nom>
<format>brochure</format>
<pages></pages>
<quantites></quantites>
<fichiers>fin octobre</fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>offset</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>prix franc québec</nom>
<format>A3 / MP</format>
<pages></pages>
<quantites></quantites>
<fichiers>1er octobre</fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>les jeudis des poêtes</nom>
<format>A6-A3</format>
<pages></pages>
<quantites></quantites>
<fichiers>1er octobre</fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Dépliant cinéma mois du documentaire</nom>
<format>dépliant</format>
<pages></pages>
<quantites>3000</quantites>
<fichiers>début novembre</fichiers>
<livraison></livraison>
<service>BIB</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Club de lecture P.Bayle</nom>
<format>A6-A3</format>
<pages></pages>
<quantites></quantites>
<fichiers>1er octobre</fichiers>
<livraison></livraison>
<service></service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Plaquette 3 volets CCAS générique</nom>
<format>10X21</format>
<pages></pages>
<quantites></quantites>
<fichiers>nov 0213</fichiers>
<livraison></livraison>
<service>CCAS</service>
<imprimerie>offset</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>flyer domiciliation SDF</nom>
<format>format poche</format>
<pages></pages>
<quantites></quantites>
<fichiers>octobre 0213</fichiers>
<livraison></livraison>
<service>CCAS</service>
<imprimerie>ext</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Guide des partenaires ASM</nom>
<format>matrice word</format>
<pages></pages>
<quantites></quantites>
<fichiers>octobre 0213</fichiers>
<livraison></livraison>
<service>CCAS</service>
<imprimerie>_</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>marque page CCAS générique</nom>
<format>mp</format>
<pages></pages>
<quantites></quantites>
<fichiers>octobre 0213</fichiers>
<livraison></livraison>
<service>CCAS</service>
<imprimerie>copies</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>dépliant cartographie (encoche)</nom>
<format>dépliant 4 pages</format>
<pages></pages>
<quantites></quantites>
<fichiers>octobre 0213</fichiers>
<livraison></livraison>
<service>CCAS</service>
<imprimerie>ext</imprimerie>
</previsions>
<previsions>
<contact>PAUL</contact>
<confirme>NON</confirme>
<nom>Logo accessibilité commerces</nom>
<format>logo</format>
<pages></pages>
<quantites></quantites>
<fichiers></fichiers>
<livraison></livraison>
<service>Mission Accessibilité </service>
<imprimerie>_</imprimerie>
</previsions>
</septembre>j'ai créé un fichier pour la reception des xml (en piéce jointe)
mais là pas moyen de rapatrier le fichier XML en A8 par macro?
Daniel.
Bonjour à tous,
Je viens de passer la journée sur mes fichiers et toujours rien ne va quand on est nul on est nul.
Je crois que mon problème sort des sentiers battus (le xml n'est pas du standard) alors après concertation avec les utilisateurs je change tout et je recommence en restant dans le standard.
En ma possession et en pièce jointe :
Un fichier export
Un fichier import
Un fichier XSD
POUR L’EXPORT : par macro
1 — je voudrais exporter les cellules a9-j100 sans les lignes vides de chaque feuille (le nom des colonnes est en ligne 8 ).
2 — chaque fichier XML sera exporté dans un répertoire portant le nom de la feuille.
Exemple le fichier XML de la feuille janvier dans un répertoire janvier
3 — même nom pour les fichiers XML quelle que soit la feuille : celui du fichier source.
POUR L’IMPORT : par macro
1 — importer bout à bout tous les fichiers d’un répertoire dans la feuille portant le nom du répertoire.
ceci à partir le la ligne
Exemple les fichiers XML du répertoire janvier dans la feuille janvier,…
à l'avance merci à tous pour votre aide car là je commence à déprimer aprés plusieurs jours à essayer
Bonjour,
désolé de n'avoir pas répondu plus tôt mais le 28 je me suis trouvé hospitalisé suite à une urgence.
J'y suis pour un moment encore...
Je viens de récupéré un netbook.
Je te conseille de démarrer une nouvelle question. Celle-ci a peu de chance d'être lue, étant bien démarrée avec plusieurs réponses.
Et moi je suis dans l'incapacité de continuer, je ne ferais de temps en temps que qcq petites questions ne nécessitant pas de suivi.
eric
ok pas de problème.
bon rétablissement à toi.
daniel
