Je voulais utiliser la fonction InArray, mais =E7a ne marche pas :
[CODE]if cel.Value inarray(tbl) then range("F" & Cel.Row).Value=3D"#" & Str=
date & "#"[/CODE]
Alors j'ai ajout=E9 quelques lignes de codes en plus, pour remplacer le tra=
vail de cette fonction...
Sub Comparer()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim i As Long, j As Long
Dim Tbl() As String, Strg As String, Strdate As String
Dim C As Range, Cel As Range
Set WS1 =3D Sheets("feuil1")
Set WS2 =3D Sheets("feuil2")
Strdate =3D Format(Now, "dd/mm/yy")
'-- Remplir le tableau Tbl par les valeurs de la colonne A correspondan=
te
i =3D 1
For Each C In WS2.Range("F2:F" & WS2.[F65000].End(xlUp).Row)
If C.Value =3D "Done" Then
ReDim Preserve Tbl(i)
Tbl(i) =3D WS2.Range("A" & C.Row)
i =3D i + 1
End If
Next C
'-- Regrouper les valeurs du Tbl dans la chaine Strg pour faciliter la =
comparaison avec InStr
For j =3D 1 To UBound(Tbl)
Strg =3D Strg & Tbl(j) & "|"
Next j
'-- S'il y a une valeur de la colonne A feuille 1 qui corresponde =E0 u=
ne valeur de Tbl
'-- On =E9crit la date d'aujourd'hui dans la colonne F
For Each Cel In WS1.Range("A2:A" & [A65000].End(xlUp).Row)
'if cel.Value inarray(tbl) then range("F" & Cel.Row).Value=3D"#" & =
Strdate & "#"
If InStr(Strg, Cel.Value) =3D 1 Then
Range("F" & Cel.Row).Value =3D "#" & Strdate & "#"
End If
Next Cel
End Sub
1 - Existe-t-il une fonction similaire pour comparer une valeur =E0 toutes =
les valeurs d'un tableau en une seule fois ?
2 - Si mon tableau Tbl comporte 4 valeurs, la derni=E8re boucle du code ne =
consid=E8re la comparaison juste avec Instr que pour la premi=E8re valeur s=
eulement !