Re,
Option Explicit
Sub joueurs()
Dim i As Long, j As Long, l As Long, p As Long, X As Long, K As Long, V As Long, n As Long, W As Long
X = 3 'permet d'incrémenter la boucle i
K = 2 'permet d'incrémenter la boucle j
V = 2 'permet d'incrémenter la boucle l
Application.ScreenUpdating = False 'désactiver le rafraîchissement de l'écran avant la macro
Sheets("RECHERCHE").Range("A3:G65536").ClearContents 'suppression de la saisie
With Sheets("RECHERCHE")
For i = 3 To 65536
i = X 'garde la valeur de i malgré exit for
For j = 2 To 65536
j = K 'garde la valeur de j malgré exit for
W = 0 'remet la valeur de W qui était à 1 à 0
For l = 2 To 65536 ' boucle pour la feuille (BASE_club)
l = V 'garde la valeur de l malgré exit for
If Sheets("base_Joueur").Cells(j, 1) = "" And .Cells(i + 1, 2) = "" Then 'si feuille(base_joueur)colonne A vide et
'feuille(RECHERCHE)colonne B et une ligne en dessous
For p = 3 To 65536 ' Boucle pour les moyennes
If .Cells(p, 2).Value = "" Then Exit Sub 'si feuille(RECHERCHE)colonne B vide alors sortie
.Cells(p, 7).Value = Application.Average(Range(.Cells(p, 4), .Cells(p, 6))) 'résultat colonne G de la moyenne
'des colonnes D & F
Next p
End If
If Sheets("BASE_club").Cells(l, 2) = "" Then 'si feuille(BASE_club)colonne B vide alors
V = 2 'boucle l revient au début (2)
ElseIf Sheets("BASE_club").Cells(l, 2) = Sheets("base_Joueur").Cells(j, 3) And Sheets("base_Joueur").Cells(j, 1) = 1 Then 'sinon
'si feuille(BASE_club)colonne B = feuille (base_Joueur)colonne C et feuille (base_Joueur)colonne A = 1 alors
.Cells(i, 2) = Sheets("BASE_club").Cells(l, 2) 'feuille(RECHERCHE)colonne B = feuille(BASE_club)colonne B
V = l + 1 'incrémentation de V + 1
Exit For 'sortie de la boucle l
ElseIf Sheets("BASE_club").Cells(l, 2) = Sheets("base_Joueur").Cells(j, 3) And Sheets("base_Joueur").Cells(j, 1) = 2 Then 'sinon
'si feuille(BASE_club)colonne B = feuille (base_Joueur)colonne C et feuille (base_Joueur)colonne A = 2 alors
Exit For 'sortie de la boucle l
Else 'sinon
V = l + 1 'incrémentation de V + 1
End If 'fin si
Next l 'boucle l
If Sheets("base_Joueur").Cells(j, 1) <> 2 Then X = i + 1 'feuille (base_Joueur)colonne A différente de 2 alors incrémentation de X (X+1)
If .Cells(i, 2) = Sheets("base_Joueur").Cells(j, 3) And Sheets("base_Joueur").Cells(j, 1) = 1 Then 'si feuille (RECHERCHE)colonne B
'et = à feuille (base_Joueur)colonne C et feuille (base_Joueur)colonne A = 1 alors
.Cells(i, 3) = Sheets("base_Joueur").Cells(j, 2) & " " & Sheets("base_Joueur").Cells(j, 1) & " " & " N° de maillot" & " " & Sheets("base_Joueur").Cells(j, 7)
'feuille (RECHERCHE)colonne C = feuille (base_Joueur)colonne B et feuille (base_Joueur)colonne A et N° de maillot et feuille (base_Joueur)colonne G
.Cells(i, 4) = (Now() - (Sheets("base_Joueur").Cells(j, 6))) / 365 'feuille(RECHERCHE)colonne D = aujourd'hui-feuille (base_Joueur)colonne F/365
ElseIf Sheets("base_Joueur").Cells(j, 1) = 2 Then 'sinon si feuille (base_Joueur)colonne A = 2 alors
For n = 3 To 65536 'boucle les joueurs de l'index 2
If Cells(n - 1, 2) = "" Then 'si une ligne en moins vide colonne B alors
For p = 3 To 65536 ' Boucle pour les moyennes
If .Cells(p, 2).Value = "" Then Exit Sub 'si feuille(RECHERCHE)colonne B vide alors sortie
.Cells(p, 7).Value = Application.Average(Range(.Cells(p, 4), .Cells(p, 6))) 'résultat colonne G de la moyenne
'des colonnes D & F
Next p
End If
If .Cells(n, 2) = Sheets("base_Joueur").Cells(j, 3) And .Cells(n, 5) = "" Then 'si feuille(RECHERCHE)colonne B = feuille (base_Joueur)colonne C
'et feuille (RECHERCHE)colonne E et vide alors
.Cells(n, 5) = Sheets("base_Joueur").Cells(j, 2) & " " & Sheets("base_Joueur").Cells(j, 1) & " " & " N° de maillot" & " " & Sheets("base_Joueur").Cells(j, 7)
'feuille (RECHERCHE)colonne E = feuille (base_Joueur)colonne B et feuille (base_Joueur)colonne A et N° de maillot et feuille (base_Joueur)colonne G
.Cells(n, 6) = (Now() - (Sheets("base_Joueur").Cells(j, 6))) / 365 'feuille(RECHERCHE)colonne F = aujourd'hui-feuille (base_Joueur)colonne F/365
W = 1 ' pour sortir de la boucle j
Exit For ' sortie de la boucle n
ElseIf .Cells(n, 2) <> Sheets("base_Joueur").Cells(j, 3) And .Cells(n, 2) = "" And .Cells(n, 5) = "" Then 'sinon si
'feuille(RECHERCHE)colonne B <> feuille (base_Joueur)colonne C et feuille (RECHERCHE)colonne B = vide alors
.Cells(n, 2) = Sheets("base_Joueur").Cells(j, 3) 'feuille (RECHERCHE)colonne B = feuille (base_Joueur)colonne C boucle j
.Cells(n, 5) = Sheets("base_Joueur").Cells(j, 2) & " " & Sheets("base_Joueur").Cells(j, 1) & " " & " N° de maillot" & " " & Sheets("base_Joueur").Cells(j, 7)
'feuille (RECHERCHE)colonne E = feuille (base_Joueur)colonne B et feuille (base_Joueur)colonne A et N° de maillot et feuille (base_Joueur)colonne G
.Cells(n, 6) = (Now() - (Sheets("base_Joueur").Cells(j, 6))) / 365 'feuille(RECHERCHE)colonne F = aujourd'hui-feuille (base_Joueur)colonne F/365
W = 1 ' pour sortir de la boucle j
Exit For ' sortie de la boucle n
End If ' fin si
Next n
Else ' sinon boucle j feuille (base_Joueur)
K = j + 1 ' incrémentation de K + 1
End If ' fin si
If Sheets("base_Joueur").Cells(j, 1) = 1 Or W = 1 Then 'feuille (base_Joueur) colonne A = 1 et W = 1 (pour sortir de la boucle j)
K = j + 1 'incrémentation de K + 1
Exit For 'sortie de la boucle j
End If ' fin si
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub