[VBA] Insertion code par fichier texte et caractères accentués

ThierryP

XLDnaute Occasionnel
Bonjour,

J'insère du code dans des fichiers Excel créés par un ERP, pas de problème !
Le code se trouve dans un fichier .txt, créé par le bloc-notes.

Le petit souci, c'est qu'à l'insertion du code dans les différents modules, les caractères accentués sont remplacés : le é devient é etc...
Comment dire à VBA de changer de type d'encodage au moment de l'insertion des lignes de ce fichier texte ?

Merci d'avance,
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai trouvé ça :
VB:
En utilisant un objet ADODB.stream, ajouter pour cela la référence à "Microsoft ActiveX Data Object " version 2.5 ou supérieure.

' Ajouter la référence Microsoft ActiveX Data Objects 2.5 ou +
Dim stream As New ADODB.stream
stream.Charset = "UTF-8"
stream.Open
stream.LoadFromFile "c:\tmp\testUTF8.txt"
MsgBox stream.ReadText
stream.Close
 

ThierryP

XLDnaute Occasionnel
Mon fichier texte en P.J. ! et ma procédure d'ajout de code :
VB:
Sub Ajout_Code_Depuis_Fichier_INV()
NbLigne = 0
IndexFichier = FreeFile()
Open "I:\Informatique\0 - Sauvegardes Programmes Office\Excel\Code_Feuille_INV.txt" For Input As #IndexFichier
While Not EOF(IndexFichier) '
    Line Input #IndexFichier, Ligne_Active
    NbLigne = NbLigne + 1
    ActiveWorkbook.VBProject.VBComponents("Feuil1").CodeModule.InsertLines NbLigne, Ligne_Active
Wend
End Sub

Je suis tombé également sur ce fil, me reste à comprendre comment ça fonctionne , et à mixer mon code avec ta proposition !
Merci pour ton suivi,
 

Pièces jointes

  • Code_Feuille_INV.txt
    1.6 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai modifié votre txt en rajoutant : ' é è ç à â ê ï ô ù î
J'ai fait ce petit prog :
VB:
Sub EssaidecodTxt()
Dim stream As New ADODB.stream
stream.Charset = "UTF-8"
stream.Open
stream.LoadFromFile "C:\Users\PC_PAPA\Desktop\Code_Feuille_INV.txt"
MsgBox stream.ReadText
stream.Close
End Sub
Il me répond :
Decode.jpg

Il a l'air de bien décoder les lettres accentuées.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Thierry,
VB:
Sub EssaidecodTxt()
Dim stream As New ADODB.stream   ' Faire le Dim camme d'hab.

' A mettre là vous vous voulez récupérer le texte'
stream.Charset = "UTF-8"
stream.Open
stream.LoadFromFile "C:\Users\PC_PAPA\Desktop\Code_Feuille_INV.txt"


stream.ReadText contient le texte avec caractères accentués

'A mettre après le traitement du texte.
stream.Close
End Sub
 

Discussions similaires

Réponses
2
Affichages
98