J'ai besoin de comparer les valeurs de deux plages dans Excelfeuille et si la valeur trouvée est égale à une autre valeur dans la deuxième plage, j’écris le nombre 1 dans la cellule proche de cette valeur et ainsi de suite augmente de 1 le nombre de chaque valeur trouvée.
Sub tbl()
Dim Range1 As Range
Set Range1 = Worksheets("Sheet1").Range("A1:C10")
Dim Range2 As Range
Set Range2 = Worksheets("Sheet2").Range("A1:A10")
Dim cel As Range
Dim x As Integer
Dim i, j As Integer
For j = 1 To Range1.Count
For i = 1 To Range2.Count
If Range1(j).Value = Range2(i).Value Then
x = x + 1
Dim cel3 As Range
Set cel3 = Range(Range2(i).Address)
cel3.Offset(0, 1).Value = x
End If
Next i
Next j
End Sub
Réponses:
0 pour la réponse № 1Chargez les valeurs pour rechercher dans un tableau et utilisez COUNTIF () sur l'autre plage pour éviter l'une des boucles.
Sub tbl()
Dim Range1 As Range
Dim Range2 As Variant
Dim range3() As Variant, j As Long
Set Range1 = Worksheets("Sheet1").Range("A1:C10")
Range2 = Worksheets("Sheet2").Range("A1:A10")
ReDim range3(1 To UBound(Range2, 1), 1 To 1)
For j = 1 To UBound(Range2, 1)
range3(j,1) = Application.WorksheetFunction.CountIf(Range1, Range2(j,1))
Next j
Worksheets("Sheet2").Range("B1").Resize(UBound(range3), 1).Value = range3
End Sub