Ajout intenpestif d'un enregistrement vide dans une listbox
cs_Estelle2003
Messages postés24Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention11 septembre 2003
-
6 août 2003 à 11:06
cs_Estelle2003
Messages postés24Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention11 septembre 2003
-
6 août 2003 à 11:53
Bonjour,
Je suis sous Excel 2000.
Mon problème est qu'à chaque ouverture de mon formulaire, un enregistrement vide s'ajoute ma listbox.
Mon code est le suivant:
Les enregistrements sont dans une cellule.
Private Sub MultiPage1_Enter()
'maintenance
Dim tableau() As String
Dim chaine As String
chaine = Sheets("Feuil1").Range("E10").Value
tableau() = Split(chaine, " ")
For i = LBound(tableau) To UBound(tableau)
ListBox1.AddItem (tableau(i))
Next i
End Sub
Private Sub MultiPage1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'*********************************************
Dim Chars, Mylist, Words
For Chars = 0 To ListBox1.ListCount - 1
ListBox1.Selected(Chars) = True
Words = ListBox1.List(Chars, 0)
Mylist = Mylist & " " & Words
Next Chars
Worksheets("Feuil1").Range("E10").Value = Mylist
End Sub
De nouveaux enregistrements s'ajoute grâce à une combobox.
Private Sub ComboBox1_Change()
EntryCount = EntryCount + 1
ListBox1.AddItem (Combobox1.Value)
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'Ensure ListBox contains list items
If ListBox1.ListCount >= 1 Then
'If no selection, choose last list item.
If ListBox1.ListIndex = -1 Then
ListBox1.ListIndex = _
ListBox1.ListCount - 1
End If
ListBox1.RemoveItem (ListBox1.ListIndex)
End If
End Sub
merci d'avance.
Estelle :)
A voir également:
Ajout intenpestif d'un enregistrement vide dans une listbox
Mooiz
Messages postés128Date d'inscriptionmercredi 25 juin 2003StatutMembreDernière intervention 8 juillet 2005 6 août 2003 à 11:27
Trouvé : c'est quand tu ajouteswords à mylist dans la procédure MultiPage1_Exit. En fait ta chainemylist sera :
" mot1 mot2 ..." avec un espace en première position ce qui fait que le split va mettre la première case du tableau vide. Donc soit tu fait une initialisation avant la boucle style :
Mylist = ListBox1.List(0, 0)
For Chars = 1 To ListBox1.ListCount - 1
ListBox1.Selected(Chars) = True
Words = ListBox1.List(Chars, 0)
Mylist = Mylist & " " & Words
Next Chars
Dans la procédure MultiPage1_Exit
soit tu modifies le remplissage de Mylist de cette manière :
Mylist = Mylist & Words & " "
et dans ce cas la dernière case de tableau sera vide