Bonjour tout le monde !
Je ramène mon grain de sel, mais à mon avis aucune des 2 propositions ne fonctionne... Dans la première, avec CodeMinDispo = Nb + Mini tu obtiens potentiellement un nombre déjà existant, et très certainement pas le plus petit. Dans la seconde avec Nb = Nb + start + 1, on ajoute la valeur start à nb à chaque tour de boucle... Donc au lieu d'augmenter de 1 en 1, nb va augmenter de start + 1 ! Autre suggestion :
Public Function CodeMinDispo(ByVal Plage As Range, Optional Start As Long) As Long
Dim Nb As Long, Cel As Range, Existe As Boolean
Nb = Start
Do
Nb = Nb + 1
For Each Cel In Plage
If Cel.Value = Nb Then Existe = True: Exit For
Existe = False
Next Cel
Loop While Existe
CodeMinDispo = Nb
End Function