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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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,
 
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
 
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

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.
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour