Bonjour,
J'ai trouvé cela !
ub Compare()
Dim Ws As Worksheet
Dim J As Long
Dim Chemin As String, Fichier As String
Dim Cel As Range
Application.ScreenUpdating = False
Set Ws = Sheets("Sheet1")
Chemin = ThisWorkbook.Path & Application.PathSeparator
Fichier = "TRPU TT EM017839.txt"
' Ouverture et chargement du fichier texte
Workbooks.OpenText Filename:=Chemin & Fichier, _
Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), TrailingMinusNumbers:=True
' On travaille avec le fichier texte dans la page Excel
With ActiveWorkbook
' On travaile avec la page 1 de ce fichier
With .Sheets(1)
' On décompose la colonne E pour avoir les 2 codes délimités par # dans 2 colonnes différentes
.Columns("E:E").TextToColumns Destination:=.Range("J1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="#", _
FieldInfo:=Array(Array(1, 1), Array(2, xlTextFormat), Array(3, xlTextFormat), Array(4, 1)), _
TrailingMinusNumbers:=True
' On supprime les -
.Range("K2:K" & .Range("K" & Rows.Count).End(xlUp).Row).Replace what:="-", replacement:="", lookat:=xlPart
' On enlève la couleur éventuelle de la page
Ws.Range("A2:O" & Ws.Range("A" & Rows.Count).End(xlUp).Row).Interior.ColorIndex = xlNone
' Pour toutes les lignes
For J = 2 To Ws.Range("C" & Rows.Count).End(xlUp).Row
' Recherche dans le fichier Excel (Texte) le code article
Set Cel = .Columns("K").Find(what:=Mid(Ws.Range("C" & J), 4), LookIn:=xlValues, lookat:=xlWhole)
If Not Cel Is Nothing Then
' Si on a trouvé le code article
' Vérification de la quantité et du lot
If Cel.Offset(0, -5) = Ws.Range("H" & J) And Cel.Offset(0, 1) = Ws.Range("G" & J) Then
' on colorise la ligne
Ws.Range("A" & J & ":O" & J).Interior.ColorIndex = 34
End If
End If
Next J
End With
' Fermeture du fichier Excel contenant le fichier texte
.Close savechanges:=False
End With
End Sub
Cordialement.
Hervé