Changement d'encodage fichier XML en VBA

Bonjour à tous,

je souhaite importer (ouvrir) un fichier xml dans un classeur excel en VBA. C'est une opération que je suis parvenu à faire. Par contre avant l'import je souhaite modifier l'encodage dans l'entête du fichier XML (remplacer le "UTF-8" par "ISO-8859-1") en VBA également. C'est une opération que je fais régulièrement d'où la volonté de l'automatisation.

Donc si je reprends mon besoin: en VBA depuis un fichier excel, ouvrir un fichier xml (avec un éditeur de texte par exemple), remplacement de l’encodage UTF-8--> ISO-8859-1, fermeture du fichier.

Je vous remercie d'avance,

bonjour,

voici une macro

Sub aargh()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "fichier XML à adapter"
        .Filters.Clear
        .Filters.Add "XML files", "*.XML*"
        If .Show = True Then
            fn = .SelectedItems(1)

        Else
            MsgBox "pas de fichier sélectionné"
        End If
    End With
    Open fn For Input As 1
    r = Input$(LOF(1), #1)
    Close 1
    r = Replace(r, "UTF-8", "ISO-8859-1")
    Open fn For Output As 1
    Print #1, r
    Close 1
End Sub

Bonjour,

Je te remercie énormément pour ton aide et ta réponse. J'ai testé et ça fonctionne. Je n'ai pour autant pas imaginé le truc comme ça. J'ai donc une question stp: Serait-il possible de le faire sans l'ouverture de la boite de dialogue et la sélection du fichier?? (donner le chemin et le nom du fichier en entrée directement dans le code).

Je te remercie encore une fois ,

bonsoir

voici le code adapté, mettre le nom du fichier dans la variable fn

Sub aargh()
fn="d:\repertoire\nomdefichier.xml"
    Open fn For Input As 1
    r = Input$(LOF(1), #1)
    Close 1
    r = Replace(r, "UTF-8", "ISO-8859-1")
    Open fn For Output As 1
    Print #1, r
    Close 1
End Sub

Bonjour,

comme demandé en MP

pour choisir le fichier à ouvrir et sauvegarder la modification sous un nom fixe.

Sub aargh()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "fichier XML à adapter"
        .Filters.Clear
        .Filters.Add "XML files", "*.XML*"
        If .Show = True Then
            fn = .SelectedItems(1)          
        Else
            MsgBox "pas de fichier sélectionné"
        End If
    End With
    Open fn For Input As 1
    r = Input$(LOF(1), #1)
    Close 1
    r = Replace(r, "UTF-8", "ISO-8859-1")
    fn = "d:\repertoire\nomdefichier.xml" ' nom du fichier modifié à adapter
    Open fn For Output As 1
    Print #1, r
    Close 1
End Sub
Rechercher des sujets similaires à "changement encodage fichier xml vba"