Bonjour Forums,
Je dois comparer la cellule dans la colonne D avec des chaines de caractères. Si la condition est valide, je vais copier la ligne sur une autre onglet.
Mais quand il y a beaucoup de termes à comparer, le code devient lourd. Est-ce qu'il y a un moyen de créer une liste des termes ? Et si on veut ajouter une autre terme à vérifier, on doit juste ajouter dans la liste.
Merci bien
Voici mon code : (marché mais moche)
Je dois comparer la cellule dans la colonne D avec des chaines de caractères. Si la condition est valide, je vais copier la ligne sur une autre onglet.
Mais quand il y a beaucoup de termes à comparer, le code devient lourd. Est-ce qu'il y a un moyen de créer une liste des termes ? Et si on veut ajouter une autre terme à vérifier, on doit juste ajouter dans la liste.
Merci bien
Voici mon code : (marché mais moche)
Code:
Sub filter()
Dim sd, sr As Worksheet
'On Error GoTo Alerte
Set sr = Sheets("DATA Import")
Set sd = Sheets("DATA Filter")
i = 3
j = 2
On Error Resume Next
While Not IsEmpty(sr.Range("D" & i).Value)
If Not UCase(sr.Range("D" & i)) Like "*NYL*" Then
If Not UCase(sr.Range("D" & i)) Like "*FILTER*" Then
If Not UCase(sr.Range("D" & i)) Like "*LABEL*" Then
If UCase(sr.Range("D" & i)) Like "*CAB*" Or UCase(sr.Range("D" & i)) Like "*WIRE*" Or UCase(sr.Range("D" & i)) Like "*THERMI*" Or UCase(sr.Range("D" & i)) Like "*FIL*" Then
sd.Range("B" & j & ":AH" & j).Value = sr.Range("A" & i & ":AG" & i).Value
sd.Range("A" & j).Value = i
j = j + 1
ElseIf UCase(sr.Range("D" & i)) Like "*GAINE*" Or UCase(sr.Range("D" & i)) Like "*SHR*" Or UCase(sr.Range("D" & i)) Like "*HEAT-SH*" Or UCase(sr.Range("D" & i)) Like "*SHRINK*" Then
sd.Range("B" & j & ":AH" & j).Value = sr.Range("A" & i & ":AG" & i).Value
sd.Range("A" & j).Value = i
j = j + 1
ElseIf UCase(sr.Range("D" & i)) Like "*W*" And UCase(sr.Range("D" & i)) Like "*UL*" Then
sd.Range("B" & j & ":AH" & j).Value = sr.Range("A" & i & ":AG" & i).Value
sd.Range("A" & j).Value = i
j = j + 1
ElseIf UCase(sr.Range("D" & i)) Like "*GLAND*" Or UCase(sr.Range("D" & i)) Like "*GROMMET*" Or UCase(sr.Range("D" & i)) Like "*JOINT*" Then
sd.Range("B" & j & ":AH" & j).Value = sr.Range("A" & i & ":AG" & i).Value
sd.Range("A" & j).Value = i
j = j + 1
ElseIf UCase(sr.Range("D" & i)) Like "*GASKET*" Or UCase(sr.Range("D" & i)) Like "*PVC*" Or UCase(sr.Range("D" & i)) Like "*FOAM*" Then
sd.Range("B" & j & ":AH" & j).Value = sr.Range("A" & i & ":AG" & i).Value
sd.Range("A" & j).Value = i
j = j + 1
ElseIf UCase(sr.Range("D" & i)) Like "*SEBS*" Or UCase(sr.Range("D" & i)) Like "*EPDM*" Or UCase(sr.Range("D" & i)) Like "*RUBBER*" Then
sd.Range("B" & j & ":AH" & j).Value = sr.Range("A" & i & ":AG" & i).Value
sd.Range("A" & j).Value = i
j = j + 1
End If
End If
End If
End If
i = i + 1
Wend
End Sub