Bonsoir le forum et particulièrement Sylvanu (si tu es en ligne).
Je fais suite à nos échanges ci-dessus.
J’ai commencé à me former au VBA. J’en suis au tout, tout début. Toutefois, afin de conserver la motivation, j’essaie de comprendre et d’adapter le fichier VBA que m’a fourni ce dernier.
Ces modifications sont faites en toute humilité et dans le seul but de comprendre l’information fournie par le forum. N’y voyez svp aucune prétention. On y va.
1/ Dans le fichier d’origine, il y avait en feuille Match2Equipes, colonne C des informations « mois » que j’ai supprimé et remplacé par « Heure ». Par conséquent, j’ai corrigé la ligne Cells(Ligne, "C") = Month(tablo(i, 2)) comme suit : Cells(Ligne, "C") = tablo(i, 3).
2/ En adaptant le code fourni par Sylvanu, j’ai essayé de créer une feuille Domicile comme suit en VBA… qui donne de faux résultats…
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E1")) Is Nothing Then
TrouveMatchs
End If
End Sub
Sub TrouveMatchs()
Dim Ligne%, i%, Eq1$, tablo
Range("A3:H999").ClearContents
Ligne = 3
Application.ScreenUpdating = False
With Sheets("JapanLeague")
DL = .Range("A65500").End(xlUp).Row
tablo = .Range("A2:H" & DL)
End With
Eq1 = [Equipe1]
For i = 1 To UBound(tablo)
If tablo(i, 4) = Eq1 Then
Cells(Ligne, "A") = tablo(i, 1)
Cells(Ligne, "B") = tablo(i, 2)
Cells(Ligne, "C") = tablo(i, 3)
Cells(Ligne, "D") = i + 1
Cells(Ligne, "E") = tablo(i, 5)
Cells(Ligne, "F") = tablo(i, 6)
Cells(Ligne, "G") = tablo(i, 7)
Cells(Ligne, "H") = tablo(i, 8)
Ligne = Ligne + 1
End If
Next i
Application.ScreenUpdating = True
End Sub
Et une autre feuille « Extérieur » (qui semble bien fonctionner) comme suit :
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E1")) Is Nothing Then
TrouveMatchs
End If
End Sub
Sub TrouveMatchs()
Dim Ligne%, i%, Eq1$, tablo
Range("A3:H999").ClearContents
Ligne = 3
Application.ScreenUpdating = False
With Sheets("JapanLeague")
DL = .Range("A65500").End(xlUp).Row
tablo = .Range("A2:H" & DL)
End With
Eq1 = [Equipe1]
For i = 1 To UBound(tablo)
If tablo(i, 5) = Eq1 Then
Cells(Ligne, "A") = tablo(i, 1)
Cells(Ligne, "B") = tablo(i, 2)
Cells(Ligne, "C") = tablo(i, 3)
Cells(Ligne, "D") = i + 1
Cells(Ligne, "E") = tablo(i, 4)
Cells(Ligne, "F") = tablo(i, 6)
Cells(Ligne, "G") = tablo(i, 7)
Cells(Ligne, "H") = tablo(i, 8)
Ligne = Ligne + 1
End If
Next i
Application.ScreenUpdating = True
End Sub
Fichier joint.
Au moment où je poste, il est 23h16. Ceci explique peut-être cela. Mais j’ai l’impression que des déclarations ont été omises par méconnaissance ??
D’avance, je vous remercie tous pour votre aide.
E.