Bonjour mounny,
bien qu'avec beaucoup de retard, voici l'explication demandée :
1) Sub Essai()
Application.ScreenUpdating = 0 :
désactive la mise à jour de l'écran ➯ ça accélère la macro
Job 2 : ça appelle la sub Job() avec le paramètre 2
Job 7 : ça appelle la sub Job() avec le paramètre 7
en fait, le paramètre est ici le n° de la colonne "Clt" (Classement) :
2 = colonne B ; 7 = colonne G
2) Sub Job(col As Byte)
elle reçoit dans col la valeur de la colonne : 2 ou 7
Dim dlig&, lig& : idem que Dim dlig As Long, lig As Long :
dlig et lig sont 2 variables entières de type Long
dlig = Cells(Rows.Count, col).End(3).Row :
.End(3) : idem que .End(xlUp) ; dernière ligne, selon colonne col
c'est donc la dernière ligne utilisée de la colonne "Clt"
For lig = 5 To dlig .. Next lig :
boucle For, de la ligne n° 5 à la dernière ligne dlig
c'est ça qui va faire le travail pour toutes les lignes
(même si tu ajoutes d'autres lignes)
With Cells(lig, col) .. End With :
ça référence la cellule qui est à l'intersection de la ligne lig, colonne col
donc chaque cellule de la colonne B ou G, selon col
If IsEmpty(.Offset(, 1)) :
.Offset(, 1) : par rapport à la cellule référencée par le With :
c'est la cellule qui est sur la même ligne, 1 colonne à droite
cellule de la même ligne, colonne "NOM Prénom"
si cette cellule est vide :
Then .ClearContents :
alors effacer la cellule référencée par le With
si besoin, n'hésite pas à demander plus d'infos.
bonne chance pour tes modifs !
dhany