[excel | VB ] Supprimer les éléments d'une zone de liste

cs_GOUGOU1 Messages postés 1 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 21 octobre 2004 - 21 oct. 2004 à 17:11
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 - 21 oct. 2004 à 17:32
Salut tout le monde
Voilà, j'ai un formulaire avec une zone de liste non modifiable dont le paramètre rowsource est vide.
En fiat, ce que je veux faire, c'ets que dès que j'appuie sur un bouton, cela modifie le contenu de la liste. Dans un premier temps, je veux vider la liste, et je fais donc comme çà :

'fonction qui vide une zone de liste
Public Function vide_liste(list As listbox)
'itérateur
Dim i As Integer

'on parcours la liste For i list.ListCount To i 0 Step -1
list.RemoveItem (i)
Next i

End Function

voilà, et j'appele donc ma fonction comme çà :
Private Sub Bt_Candidats_Click()
'on vide l'ancienne liste
If frm_liste_candidats.ls_candidats.ListCount > 0 Then
vide_liste (frm_liste_candidats.ls_candidats)
End If

'on met à jour la liste des noms dans la zone de liste
creer_liste_candidats

'on affiche le formulaire
frm_liste_candidats.Show
End Sub

le pb est que çà plante en m'indiquant que frm_liste_candidats.ls_candidats est égal à NULL, or le formulaire existe et je peux récupèrer les infos de cette zone de liste.
Alors voilà, qu'est-ce que je fais de mal ?

merci.

2 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 oct. 2004 à 17:28
Déjà, pour vider la liste, utilise ceci :

List1.Clear

Cà t'évitera d'appeler une fonction avec une ListBox en paramètre.

Autre chose :
Si vide_liste est une fonction, alors elle doit renvoyer quelquechose.

Ou bien alors (comme c'est préférable ici), il faut la déclarer comme procédure (Sub)

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
21 oct. 2004 à 17:32
Autre chose, je vois que tu fais un 'Show' dans ta procédure Bt_Candidats_Click.

Mais as-tu bien fait un
Load  frm_liste_candidats

auparavant ?

Si ce n'est pas le cas, l'objet frm_liste_candidats.ls_candidats n'est pas chargé en mémoire, et son appel génère systématiquement une erreur.

Manu
0
Rejoignez-nous