PB de calcul à partir d'une colonne
Bonjour
J'ai un tableau de suivi pour les résultats des matchs de foot à la MT. Les scores donnent un résultat aux 2 équipes traduit par soit un V, N ou D.
Dans le tableau récap j'avais 2 colonnes et tout fonctionnait bien :
Record saison : on vient compter le nb de matchs max sans Nul à la MT
En cours : On compte le nb de matchs sans nul à la MT en cours
J'ai voulu insérer une colonne en D, avec des données rentrées manuellement.
Le pb vient du décompte des 2 colonnes qui commencent à compter à partir de la colonne D et j'aimerais que le décompte se fasse à partir de la colonne E.
J'ai essayé de changer le code sans succès.
J'aurais besoin d'un coup de pouce
Code avant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iRow%, iCol%, iColT%
'
On Error Resume Next
Application.EnableEvents = False
'
If Not Intersect(Target, Range("D3:AO22")) Is Nothing Then
iRow = Target.Row
iColT = [D2].End(xlToRight).Column + 1
iCol = Range("D" & iRow & ":AP" & iRow).Find(what:="N", lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Column + 1
iCol = IIf(iCol = 0, 4, iCol)
Range("C" & iRow).Value = WorksheetFunction.CountA(Range(fctCol(iCol) & iRow).Resize(1, iColT - iCol))
Range("B" & iRow).Value = WorksheetFunction.Max(Range("B" & iRow).Value, Range("C" & iRow).Value)
If Range("C" & iRow).Value = 0 Then Range("C" & iRow).Value = ""
End If
'
Application.EnableEvents = True
'
End Sub
Public Function fctCol(ByVal iCol%) As String
'
fctCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
'
End Function |
code après :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iRow%, iCol%, iColT%
'
On Error Resume Next
Application.EnableEvents = False
'
If Not Intersect(Target, Range("E3:AP22")) Is Nothing Then
iRow = Target.Row
iColT = [E2].End(xlToRight).Column + 1
iCol = Range("E" & iRow & ":AQ" & iRow).Find(what:="N", lookat:=xlWhole, LookIn:=xlValues, searchdirection:=xlPrevious).Column + 1
iCol = IIf(iCol = 0, 4, iCol)
Range("C" & iRow).Value = WorksheetFunction.CountA(Range(fctCol(iCol) & iRow).Resize(1, iColT - iCol))
Range("B" & iRow).Value = WorksheetFunction.Max(Range("B" & iRow).Value, Range("C" & iRow).Value)
If Range("C" & iRow).Value = 0 Then Range("C" & iRow).Value = ""
End If
'
Application.EnableEvents = True
'
End Sub
Public Function fctCol(ByVal iCol%) As String
'
fctCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
'
End Function |
Merci