/ / Comparer les valeurs de deux plages de la feuille de calcul et compter les valeurs en double - excel, vba, excel-vba, range

Comparer les valeurs de deux plages dans la feuille de calcul et compter les valeurs en double - excel, vba, excel-vba, range

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

entrer la description de l'image ici

Réponses:

0 pour la réponse № 1

Chargez 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