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 après :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager