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 vba : 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 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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
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 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 <?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>
Partager