Ajout d'enregistrements dans un fichier (vba)
Bonjour alors voilà j'aimerais avec vba (macro excel) pouvoir ouvrir mon fichier sonde.xml et y ajouter des mesures/Statut a chaque fois que le fichier excel est ouvert.
Voilà ce que j'ai pour l'instant sous vba :
Code:
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
| Sub Export()
Set xmldoc = CreateObject("Microsoft.XMLDOM")
Set oCreation = xmldoc.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'")
xmldoc.InsertBefore oCreation, xmldoc.ChildNodes.Item(0)
Set root = xmldoc.createElement("Sonde")
xmldoc.appendChild (root)
Set MesureElement = xmldoc.createElement("Mesure")
Set LocElement = xmldoc.createElement("Loc")
LocElement.Text = "Sonde11"
MesureElement.appendChild (LocElement)
Set StatutElement = xmldoc.createElement("Statut")
StatutElement.Text = "test"
MesureElement.appendChild (StatutElement)
root.appendChild (MesureElement)
Set rdr = CreateObject("MSXML2.SAXXMLReader")
Set wrt = CreateObject("MSXML2.MXXMLWriter")
Set oStream = CreateObject("ADODB.STREAM")
oStream.Open
oStream.Charset = "ISO-8859-1"
wrt.indent = True
wrt.Encoding = "ISO-8859-1"
wrt.output = oStream
Set rdr.contentHandler = wrt
Set rdr.errorHandler = wrt
rdr.Parse xmldoc
wrt.flush
oStream.SaveToFile "C:\temp\sonde.xml", 2
Set rdr = Nothing
Set wrt = Nothing
Set xmldoc = Nothing
End Sub |
Ce que j'obtiens comme fichier :
Code:
1 2 3 4 5 6 7
| <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Sonde>
<Mesure>
<Loc>Sonde11</Loc>
<Statut>test</Statut>
</Mesure>
</Sonde> |
Mais mon code ne me permet pas d'ajouter plus d'enregistrements, ce que je veux dire c'est que je voudrais pouvoir avec l'aide d'une variable insérer a chaque fois avant ou après dans le fichier c'est égal des enregistrements en plus. Sans avoir a rajouter du code. J'ai vu quon pouvait faire des recordsets,mais vba n'étant pas mon point fort je préfère avoir vos avis. MERCI a vous !
Le résultat que j'aimerais avoir sur le fichier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<Sonde>
<Mesure>
<Loc>Sonde11</Loc>
<Statut>Eteinte</Statut>
</Mesure>
<Mesure>
<Loc>Sonde27</Loc>
<Statut>Démarré</Statut>
</Mesure>
<Mesure>
<Loc>Sonde45</Loc>
<Statut>Démarré</Statut>
</Mesure>
</Sonde> |