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