Zackarry
Messages postés28Date d'inscriptionvendredi 13 juillet 2001StatutMembreDernière intervention 1 février 2002
-
22 janv. 2002 à 13:53
khitan72
Messages postés12Date d'inscriptionjeudi 5 juillet 2007StatutMembreDernière intervention 5 janvier 2009
-
29 janv. 2008 à 22:32
slt à celui qui lit ce msgbox
bon j voudrais savoir si il est possible de convertir des données contenu dans un classeur excel au format xml. Je crois savoir que c possible sous excel 2002 mais est ce possible avec la version 2000 via VBA.
merci
xzonz
Messages postés103Date d'inscriptionmardi 13 janvier 2004StatutMembreDernière intervention23 novembre 2022 26 avril 2005 à 17:36
Salut , bon .... je vais essayer de pas de donner une reponse a la con
du genre de nos compères Zackarry et chipaolee .... qui visiblement n'ont
aucune idée de la methode pour y arriver !!
tout ce que tu as à faire est de copier tout ca ( ce qui n'est pas en gras) dans excel dans un module VBA et puis executer comme une macro .... si tu as des soucis pour la faire fonctionner n'hesite pas a me dire ;-) ....... si tu respecte les quelques contraintes .... ca marche impécable ...... testé et certifié ......... bonne prog........ FRANCK
sub convert_to_xml()
reponse = MsgBox("voulez vous generer un fichier xml ?", vbYesNo)
If reponse = vbYes Then
FullPath = InputBox("entrez un chemin complet")
ExportToXML (FullPath), "loto"
MsgBox ("fichier XML généré à l'emplacement suivant:" & vbCrLf _
& vbCrLf & FullPath)
End If
If reponse = vbNo Then End
end sub
'----------------------------------------------------------------------------------------------
'Fonction pour convertir le fichier excel en fichier xml
'----------------------------------------------------------------------------------------------
'PARAMETRES: FullPath: chemin complet de destination du fichier a exporter
' RowName: nom de balise XML donnée à chaque ligne
'RETURN: renvoie vrai si execution OK , faux sinon
'
'EXEMPLE: ExportToXML "C:\Documents and Settings\franck\Bureau\test\loto\mysheet.xml", "loto"
'
' 1) Concue pour etre utilisée comme une macro
' 2) la fonction fonctionne par defaut sur la premiere
' feuille du classeur
' si vous voulez une variable pour designer la feuille,
' vous pouvez ajouter un nombre en parametre
' exemple : worksheets(2) si c'est la deuxieme feuille
' 3) le nom de la feuille sera le premier niveau de
' l'arborescence XML
' 4) la premiere ligne doit contenir les entetes de colonne
' les lignes suivantes doivent contenir les valeurs
' 5) IMPORTANT:
' pas d'espaces blancs dans les entetes de colonne
' pas d'accents dans la feuille
Public Function ExportToXML(FullPath As String, RowName _
As String) As Boolean
On Error GoTo ErrorHandler
Dim colIndex As Integer
Dim rwIndex As Integer
Dim asCols() As String
Dim oWorkSheet As Worksheet
Dim sName As String
Dim lCols As Long, lRows As Long
Dim iFileNum As Integer
Set oWorkSheet = ThisWorkbook.Worksheets(1)
sName = oWorkSheet.Name
lCols = oWorkSheet.Columns.Count
lRows = oWorkSheet.Rows.Count
ReDim asCols(lCols) As String
iFileNum = FreeFile
Open FullPath For Output As #iFileNum
For i = 0 To lCols - 1
If Trim(Cells(1, i + 1).Value) = "" Then Exit For
asCols(i) = Cells(1, i + 1).Value
Next i
If i = 0 Then GoTo ErrorHandler
lCols = i
Print #iFileNum, "<?xml version=""1.0""?>"
Print #iFileNum, "<" & sName & ">"
For i = 2 To lRows
If Trim(Cells(i, 1).Value) = "" Then Exit For
Print #iFileNum, "<" & RowName & ">"
For j = 1 To lCols
If Trim(Cells(i, j).Value) <> "" Then
Print #iFileNum, " <" & asCols(j - 1) & "><![CDATA[";
Print #iFileNum, Trim(Cells(i, j).Value);
Print #iFileNum, "]]></" & asCols(j - 1) & ">"
DoEvents 'OPTIONAL
End If
Next j
Print #iFileNum, " </" & RowName & ">"
Next i
Print #iFileNum, "</" & sName & ">"
ExportToXML = True
ErrorHandler:
If iFileNum > 0 Then Close #iFileNum
Exit Function
glad777
Messages postés44Date d'inscriptionjeudi 19 août 2004StatutMembreDernière intervention20 mars 2008 26 mai 2005 à 15:26
Bonjour a tous, hello [auteurdetail.aspx?ID=216498 xzonz] j ai essayé ton code avec excel 2002 et j ai u quelque soucis,
Deja une fois la macro creer elle ne vaus pas s executer car il manque
un end fonction a la fin ( toi c est un exit fonction) j ai donc
remplacer le exit par end et la ca ne plantait plus.
Parcontre maintenant une fois la macro executé il me demande le chemin
je lui donne et apres il me dit que e fichier xml a été creer a l
endroit indiqué ce qui n est pas
le cas je n ais pas de fichier dans le repertore de destination.
Merci de bien vouloir me dire si chez toi ca marche réelement et si tu a deja u ca
carpe diem
khitan72
Messages postés12Date d'inscriptionjeudi 5 juillet 2007StatutMembreDernière intervention 5 janvier 2009 29 janv. 2008 à 22:32
Hello xzonz,
merci pour ce code, ca repond parfaitement à ce que je voulais, créer un fichier xml a partir d'excel et par macro
remarque perso sur ce code :
quand on est dans le brouillard, et qu'on nous donne la lumiere au fond du tunnel, le tunnel est encore a franchir :)
merci d'avoir fait connaitre de nouvelle fct à un debutant
cdlt