Sub test_calculateval()
Dim rnData, r As Range, ThisYearID, LR, FR, EndR, HomeCount, AwayCount, DrawCount, i As Long, Hometeam As String
ThisYearID = Sheet5.Cells(2, 1).Value - 1
Hometeam = Sheet5.Cells(2, 5)
HomeCount = 0
With Sheet1
Set rnData = Range(Range("A2"), Range("R2").End(xlDown))
With rnData
Rows("1:1").Select
Selection.AutoFilter
ActiveSheet.Range(Range("A2"), Range("R2").End(xlDown)).AutoFilter Field:=1, Criteria1:=">" & ThisYearID - 5
ActiveSheet.Range(Range("A2"), Range("R2").End(xlDown)).AutoFilter Field:=5, Criteria1:=Hometeam
LR = Range("A" & Rows.count).End(xlUp).Row
Set r = ActiveSheet.Range("A2:R" & LR).Rows.SpecialCells(xlCellTypeVisible)
FR = r.Row
EndR = Range("A" & FR).End(xlDown).Row
For Each rngarea In .SpecialCells(xlCellTypeVisible).Areas
If Range("K2:K" & LR).SpecialCells(xlCellTypeVisible).Value = "H" Then
HomeCount = HomeCount + 1
End If
Next
End With
End With
MsgBox HomeCount
End Sub
Je veux vérifier si chaque cellule de la colonne K (après filtrage) est égale à "H", et les compter. Ce code est de lancer une erreur d'incompatibilité de type, ce qui semble être le problèmevba pour vérifier si chaque cellule dans une colonne est égale à une variable après le filtrage
Essayez le débogage en appuyant sur F8 et savoir quelle ligne de code est l'origine du problème de non-concordance de type? Le plus probablement une variable définie par un entier est assignée à une valeur de chaîne et VBA ne peut pas faire implicitement cette conversion. – jainashish
Je pense que celui-ci: Pour chaque rngarea Dans .SpecialCells (xlCellTypeVisible) .Areas Si Range ("K2: K" & LR) .SpecialCells (xlCellTypeVisible) .Value = "H" Alors HomeCount = HomeCount + 1 End Si – Chadi