PDA

View Full Version : [VBA/EXCEL '07] - Eliminare ultima riga da list box


leomac
12-03-2010, 12:42
Salve a tutti,
popolo una listbox con diverse voci. Ora per eliminare una di queste voci dalla suddetta listbox carico il segunte codice:

Private Sub CommandButton58_Click()
If ListBox6.ListCount = 0 Then Exit Sub
If ListBox6.ListIndex = -1 Then
Exit Sub
Else: ListBox6.RemoveItem (ListBox6.ListIndex)
ListBox8.RemoveItem (ListBox8.ListIndex)
ListBox9.RemoveItem (ListBox9.ListIndex)
ListBox11.RemoveItem (ListBox11.ListIndex)
ListBox12.RemoveItem (ListBox12.ListIndex)
End If
End Sub


Il tutto funziona correttamente per tutte le voci tranne che per l'ultima. Difatti se la voce da eliminare è l'ultima della listbox, il codice sovra postato non la elimina ma toglie quella prima. Solamente se le cancello tutte, cliccando più volte il button, mi cancella, infine, anche l'ultima.
Come risolvo?
Grazie mille per eventuali risposte.

leomac
12-03-2010, 13:15
ho capito dove toppo. il codice che segnalo sopra lavora in "contemporanea" con:

Private Sub ListBox6_Change()
ListBox8.ListIndex = ListBox6.ListIndex
ListBox9.ListIndex = ListBox6.ListIndex
ListBox11.ListIndex = ListBox6.ListIndex
ListBox12.ListIndex = ListBox6.ListIndex
End Sub
Private Sub ListBox8_Change()
ListBox6.ListIndex = ListBox8.ListIndex
ListBox9.ListIndex = ListBox8.ListIndex
ListBox11.ListIndex = ListBox8.ListIndex
ListBox12.ListIndex = ListBox8.ListIndex
End Sub
Private Sub ListBox9_Change()
.... x le latre listbox


di conseguenza quando elimina la riga della listbox6 mi cancella l'ultima voce di list box 6 slittando però alla riga precedente. Quindi con l'evento change mi cambia l'index delle altre listbox che si spostano alla penulitma riga eliminando quella... :doh: