Bonjour tout le monde !

J'ai un problème avec une userform. La procédure qui suit ne fonctionne pas : elle ne génère pas d'erreur mais pas de résultat non plus... Pour avoir fait différents tests, je sais que "cel.CurrentRegion" fait référence à la bonne plage et "cel.Rows.CurrentRegion.Count - 1" renvoit le bon chiffre. Mais la procédure n'affiche même pas le résultat de la MsgBox. Je crois que le problème vient de l'évènement "Initialize"; peut-être que je l'utilise mal ? Je veux que ces instructions s'effectuent lorsque l'on ouvre la boite de dialogue avec "UserForm3.Show".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Private Sub UserForm_Initialize()
    'A l'ouverture de la boite de dialogue on réinitialize la zone de liste
    Dim i As Integer
    Dim cel As Range
    Set cel = ThisWorkbook.Worksheets("Min & Max").Range("B183")
    MsgBox cel.CurrentRegion.Rows.Count - 1
    For i = 0 To cel.Rows.CurrentRegion.Count - 1
    UserForm3.ListBox1.Clear
    UserForm3.ListBox1.AddItem cel.Offset(i, 0).Value
    Next i
End Sub
J'ai également une autre petite question à propos de la différence entre Hide et Unload : ces deux évènements ferment tous les deux la boite de dialogue mais Hide garde en mémoire les infos associées comme les valeurs qui remplissaient la listbox et on les retrouvera lors de la prochaine ouverture, contrairement à Unload qui ne garde rien en mémoire ? Est-ce bien cela ? Je voudrais être sur d'avoir bien compris...