[Excel Vba] Un expert pour m'expliquer ce problème d'encodage ?

Salut-les-khey
2021-08-21 13:09:09

J'ai créer un script qui me permet de virer les nom de marque dans un tableau.

Le problème est que l'orsque j'alimente ma collection listeNoir avec une fichier txt présent sur mon pc, je n'ai pas l'encodage utf8 du coup les marque comprenant des accents ne sont pas prise en compte.

Voici le code


Sub Supprimer_indesirables()
Application.ScreenUpdating = False


'Création de la collection liste noir
Dim listNoir As Collection
Set listNoir = New Collection
Dim FSO As New FileSystemObject
Dim fichiertxt As Object
Set fichiertxt = FSO.OpenTextFile("C:\Users\valbe\Desktop\fichiertxt.txt", ForReading, False, TristateUseDefault)
While Not fichiertxt.AtEndOfStream
listNoir.Add (fichiertxt.ReadLine)
Wend
fichiertxt.Close

'Création du tableau mémoire
Dim tb() As Variant
Dim h_tb As Double: Dim l_tb As Byte
h_tb = Range("a1").End(xlDown).Row
tb = Range("a1" & ":" & "h" & h_tb)

'Process
Dim filterTab()
Dim m As Integer
Dim n As Integer
n = 1
l_tb = Range("a1").End(xlToRight).Column
ReDim filterTab(1 To h_tb, 1 To l_tb)
Dim matchBl As Double
matchBl = 0
Dim j As Double: Dim k As Integer
For j = LBound(tb, 1) To UBound(tb, 1)
For k = 1 To listNoir.Count
If tb(j, 1) Like "*" & listNoir(k) & "*" Then
matchBl = 1
Exit For
End If
Next
If matchBl = 0 Then
For m = LBound(tb, 2) To UBound(tb, 2)
filterTab(n, m) = tb(j, m)
Next
n = n + 1
Else
matchBl = 0
End If
Next

Sheets.Add.Name = "Tableau_filtrer"

Range("a1" & ":" & "h" & h_tb) = filterTab

End Sub

J'ai test avec les propriété Tristate qui permettent de régler le format du fichier, mais même en le réglant sur unicode ( TristateTrue ) Mais ça ne fonctionne toujours pas :(

https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/opentextfile-method

Rupo
2021-08-23 20:27:00

T'as essayé d'importer directement le fichier texte dans un classeur tampon ?

J'aurai essayer depuis l'enregistrement de macro, d'importer ton fichier et de regarder quels encodages correspond au mieux à ce que tu veux

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.