Sub CelluleVide(Plage As Range, ByRef LigneCelluleVide, ByRef ColonneCelluleVide)
NbreLignes = Plage.Rows.Count 'le nombre de lignes de la plage
NbreColonnes = Plage.Columns.Count 'le nombre de colonnes de la plage
CelluleVideTrouvée = False 'cette variable va servir à savoir si on a trouvé une cellule vide
'i & j seront les compteurs que l'on va incrémenter pour scruter la plage
'dès que l'on trouve une valeur vide, on arrête la scrutation
j = 1
'tant que l'on n'a pas trouvé de cellule vide et qu'on a pas atteint la fin des colonnes on continue
While Not CelluleVideTrouvée And j <= NbreColonnes
'Dès que l'on change de colonne, on repart de la ligne 1
i = 1
'tant que l'on n'a pas trouvé de cellule vide et qu'on a pas atteint la fin des lignes on continue
While Not CelluleVideTrouvée And i <= NbreLignes
'on teste la cellule qui se trouve sur la ligne i et la colonne j
CelluleVideTrouvée = (Plage.Cells(i, j).Value = "")
'on passe à la ligne suivante
i = i + 1
Wend
'on passe à la colonne suivante
j = j + 1
Wend
'deux cas possibles : on a trouvé une cellule vide, auquel cas on met ses coordonnées dans LigneCelluleVide et ColonneCelluleVide
'ou alors on ne fait rien et les valeurs ne changent pas
If CelluleVideTrouvée Then
LigneCelluleVide = i - 1
ColonneCelluleVide = j - 1
End If
End Sub