Bonjour,
Ça :
Private Sub CommandButton1_Click()
TextBox1.Value = ListBox1.Row.Count
End Sub
ça ne peut pas fonctionner...
Il faudrait donc déjà écrire :
Private Sub CommandButton1_Click()
TextBox1.Value = ListBox1.ListCount
End Sub
Mais avec :
Private Sub UserForm_Initialize()
ListBox1.RowSource = "feuil1!a1:a200"
End Sub
le résultat est prévisible et invariable : 200 !
Bien que ta liste comporte 32 éléments, mais si tu la complètes par autant d'éléments pour qu'elle atteigne 200 éléments, c'est que tu veux être sûr d'avoir toujours 200 ! Aucun problème ainsi, pas la peine de calculer le résultat est constant.
J'avais fourni une méthode : donner un nom à la liste (Liste), nom dynamique, l'affecter à la propriété RowSource de la ListBox.
Pas besoin alors d'Initialize, la ListBox sera alimentée par la totalité de la liste à l'ouverture, toujours, toute la liste, et rien que la liste !
Le résultat nombre d'éléments aurait alors été 32, et la liste variant il aurait varié avec...
Là, le calcul aurait également pu être fait par :
Private Sub CommandButton1_Click()
TextBox1.Value = [Liste].Rows.Count
End Sub
S'agissant d'une plage, elle dispose d'une propriété Rows, renvoyant ses lignes, lignes que l'on peut dénombrer avec la propriété Count... Résultat forcément identique à celui fourni par ListBox1.ListCount.
Je ne comprends pas quel objectif tu poursuis en voulant à tout prix avoir des lignes vides dans ta ListBox !
Et tu parles maintenant de deux ListBox et de dates de préremption erronées !??
J'ai beau regarder, je ne vois qu'une ListBox ! Et aucune date !
Cordialement.