Données Excel vers fichier texte pour générer fichier XML
Résolu
malo1974
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
malo1974 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
malo1974 Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais générer un fichier texte à partir de données présentes dans une feuille de calcul afin de pouvoir l'exporter vers un fichier XML.
Mon fichier final devrait faire 1700 lignes, impossible de faire un fichier xml à la main en venant compléter les données entre les balises pour chaque client.
Et impossible de venir faire référence à un schéma xml à partir d'excel je ne sais pas exporter.
Je me suis renseigné, on me réponds : qu'il n'existe pas d'outil qui permette d’exporter les données d’un fichier Excel vers un fichier XML qui répond aux exigences de la déclaration à la Banque Nationale.
Ci-dessous le code qu'il faudrait pouvoir générer
Structure du fichier Excel :
Colonne 1 CustomerSequenceNumber
Colonne 2 CustomerStartDate
Colonne 3 RN
Colonne 4 ContractTypeName
Colonne 5 CustomerBankIdentification (idem au RN)
Colonne 6 RelationSequenceNumber
1 2014-01-01 80010498302 InstalmentLoan 80010498302 1
2 2014-01-01 52081799432 InstalmentLoan 52081799432 2
3 2014-01-01 53051999271 InstalmentLoan 53051999271 3
4 2014-01-01 55110299580 InstalmentLoan 55110299580 4
5 2014-01-01 57040799718 InstalmentLoan 57040799718 5
Merci de votre aide
Je souhaiterais générer un fichier texte à partir de données présentes dans une feuille de calcul afin de pouvoir l'exporter vers un fichier XML.
Mon fichier final devrait faire 1700 lignes, impossible de faire un fichier xml à la main en venant compléter les données entre les balises pour chaque client.
Et impossible de venir faire référence à un schéma xml à partir d'excel je ne sais pas exporter.
Je me suis renseigné, on me réponds : qu'il n'existe pas d'outil qui permette d’exporter les données d’un fichier Excel vers un fichier XML qui répond aux exigences de la déclaration à la Banque Nationale.
Ci-dessous le code qu'il faudrait pouvoir générer
<Customer CustomerSequenceNumber="1" CustomerBankIdentification="52082299872"> <CustomerIdentification> <NaturalPersonId> <RRNIdentification>52082299872</RRNIdentification> </NaturalPersonId> </CustomerIdentification> <CustomerActions> <AddAction> <Contracts> <Contract RelationSequenceNumber="1"> <ContractTypeName> <InstalmentLoan/> </ContractTypeName> <CustomerStartDate>2014-01-01</CustomerStartDate> </Contract> </Contracts> </AddAction> </CustomerActions> </Customer>
Structure du fichier Excel :
Colonne 1 CustomerSequenceNumber
Colonne 2 CustomerStartDate
Colonne 3 RN
Colonne 4 ContractTypeName
Colonne 5 CustomerBankIdentification (idem au RN)
Colonne 6 RelationSequenceNumber
1 2014-01-01 80010498302 InstalmentLoan 80010498302 1
2 2014-01-01 52081799432 InstalmentLoan 52081799432 2
3 2014-01-01 53051999271 InstalmentLoan 53051999271 3
4 2014-01-01 55110299580 InstalmentLoan 55110299580 4
5 2014-01-01 57040799718 InstalmentLoan 57040799718 5
Merci de votre aide
A voir également:
- Créer un fichier xml
- Fichier bin - Guide
- Creer un fichier .bat - Guide
- Créer un compte google - Guide
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
Bonjour,
Qu'as tu essayé ?
Sur quoi bloques tu ?
Car visiblement, une boucle sur chaque ligne de ta feuille permettrait de générer assez facilement le xml attendu puis de l'écrire dans un nouveau fichier.
Un truc du genre
Qu'as tu essayé ?
Sur quoi bloques tu ?
Car visiblement, une boucle sur chaque ligne de ta feuille permettrait de générer assez facilement le xml attendu puis de l'écrire dans un nouveau fichier.
Un truc du genre
Sub test() Dim xml As String Dim CustomerSequenceNumber As String Dim CustomerStartDate As String Dim CustomerBankIdentification As String xml = "" ' variable qui contiendra le résultat final 'Exemple de boucle de la ligne 1 à 20 de ta feuille For i = 1 To 20 'exemple pour trois de tes variables.. à toi de compléter le reste CustomerSequenceNumber = Cells(i, 1).Value CustomerStartDate = Cells(i, 2).Value CustomerBankIdentification = Cells(i, 5).Value xml = xml & "<Customer CustomerSequenceNumber='" & CustomerSequenceNumber & "' CustomerBankIdentification='" & CustomerBankIdentification & "'>" _ & " <CustomerIdentification>" _ & " <NaturalPersonId>" _ & " <RRNIdentification>52082299872</RRNIdentification>" _ & " </NaturalPersonId>" _ & " </CustomerIdentification>" _ & " <CustomerActions>" _ & " <AddAction>" _ & " <Contracts>" _ & " <Contract RelationSequenceNumber='1'>" _ & " <ContractTypeName>" _ & "<InstalmentLoan/>" _ & "</ContractTypeName>" _ & "<CustomerStartDate>" & CustomerStartDate & "</CustomerStartDate>" _ & "</Contract>" _ & "</Contracts>" _ & "</AddAction>" _ & "</CustomerActions>" _ & "</Customer>" Next 'Pour afficher le résultat dans la console Debug.Print xml 'A la place, prévoir la génération d'un fichier text contenant ton xml. (fichier text que tu peux nommer en .xml lors de la création ) ' Voir : https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/createtextfile-method End Sub
Bonjour,
tu peux le faire directement d'Excel sans passer par un fichier texte:
tu peux le faire directement d'Excel sans passer par un fichier texte:
Option Explicit Sub vba_code_to_convert_excel_to_xml() Dim wb As Object Set wb = Workbooks.Open("C:\Users\LePivert\Documents\Customers.xlsx") wb.SaveAs Filename:="C:\Users\LePivert\Documents\Customers.xml", FileFormat:= _ xlXMLSpreadsheet, ReadOnlyRecommended:=False, CreateBackup:=False End Sub 'adapter les chemins
Cela génère bien ce que je souhaite obtenir mais tout est mis à la suite dans la fenêtre d'exécution.
Comment faire pour avoir un retour à la ligne à la fin de chaque ligne (après le > )
Désolé je ne sais pas comment faire.
Merci de votre aide
Si ça peut servir à quelqu'un
J'ai ajouté & vbCrLf comme suit
mais je n'ai que les 10 derniers (de 190 à 200) dans la fenêtre d'éxécution ce qui représente 200 lignes dans mon fichier xml
Il y a t-il une limite de ligne dans la fenêtre d'exécution ?