Bonjour paladin, le forum
Pour savoir si une liste est vide, je bouclerai sur chaque élément de cette liste, si un élément de cette liste est vide, j'incrémente un compteur et enfin si le compteur est égale au nombre d'élement de la liste, c'est que celle-ci est vide.
En imaginant une liste nommée toto, ca pourrait donner ceci :
Sub Bouton3_QuandClic()
Dim c As Range
Dim compteur As Byte
For Each c In Range('toto')
If c = '' Then compteur = compteur + 1
Next c
If compteur = Range('toto').Count Then
MsgBox 'la liste toto est vide.'
End If
End Sub
Sinon, pour en revenir à ton souci de combobox
La méthode rowsource n'est pas très adapté aux userforms (problème de compatibilité mac, puis pénible à manoeuvrer lorsque tu veux enlever des éléments de la combobox)
je présume, aussi, que tu utilises une liste et la fonction décaler pour adapter ta liste aux nombres d'élément.
Je te propose donc une autre synthaxe en utilisant la méthode additem, et rendant par contre ta liste inutile :
Private Sub UserForm_Initialize()
Dim i As Integer
'pour i = 1 jusqu'a la derniere cellule non vide de la colonne A
For i = 1 To Range('a65536').End(xlUp).Row
If Range('a' & i) <> '' Then 'si la cellule (A et i) n'est pas vide, alors ....
ComboBox1.AddItem Range('a' & i) ' on remplit la combobox de la valeur de (A et I)
End If ' fin de condition
Next i ' incrémentation de I
End Sub
Code a placer dans le module de l'userform.
salut