Option Explicit
Public Const WSBase As String = "Feuille3 de Eq1"
Sub Equipe3_A()
Dim Rangebase As String, RangeCopy As String, RowCopy As Integer, Nom As String
Dim nbjoueurs As Byte, nbrencontres As Byte, offsetjoueur As Byte, i As Byte, j As Byte
Application.ScreenUpdating = False
nbjoueurs = 3 'nombre de joueurs
nbrencontres = 3 'nombre de rencontres par joueur
offsetjoueur = 7 'différence de lignes entre 2 joueurs
For i = 1 To nbjoueurs
Rangebase = "c" & (2 + offsetjoueur * (i - 1)) 'C2 puis C9...
'vérification présence nom de joueur
If Not InStr(1, Sheets(WSBase).Range(Rangebase).Value, " ") < 1 Then
With Sheets(WSBase).Range(Rangebase)
Nom = Application.WorksheetFunction.Proper(Left(.Value, InStr(1, .Value, " ") + 1) + ".")
End With
For j = 1 To nbrencontres
'test validité ligne par ligne d'où RangeCount = 1 ligne à la fois, fixe
If Not Range("I" & (4 + offsetjoueur * (i - 1) + j)).Value = "" Then
RangeCopy = "B" & (4 + offsetjoueur * (i - 1) + j) & _
":I" & (4 + offsetjoueur * (i - 1) + j)
Equipe Rangebase, RangeCopy, Nom
End If
Next
End If
Next i
Sheets("Eq3").Activate
Application.ScreenUpdating = True
End Sub