PDA

Visualizza versione completa : Eliminazione di una riga selezionata in una ListBox


Gabry
27-05-2004, 19.21.54
Buongiorno.

Ho il seguente quesito da porvi:

ho un database-articoli in un foglio Excel.

Ho creato una UserForm in cui posso gestire l'eventuale inserimento di un nuovo articolo.

Nella UserForm ho una ListBox che popolo dandogli le coordinate immettendoli nella casella RowSource presente nella lista Propietà.

Ora vorrei gestire anche l'eventuale cancellazione di un articolo, cancellando l'intera riga che contiene i suoi dati, e vorrei gestire la cancellazione sempre dalla medesima UserForm che utilizzo per l'inserimento di un nuovo articolo, selezionando l'articolo da cancellare dalla ListBox che popolo con la propieta RowSource.

L'ho spiegato bene l'arcano?

Grazie a chi risponde.

Ciao

MrVortex
04-06-2004, 09.45.46
allora se non ho capito male vuoi eliminare una riga dal database, quindi dal foglio e dalla listbox relativa?

Bhe per la listbox si fà così:
Caso 1 (se conosci la posizione nella listbox):

listbox.removeitem posizione

caso 2 (se non conosci la posizione ma vuoi eliminare quella selezionata):

listbox.removeitem listbox.listindex

*: ricorda che esistono due parametri discordanti il primo è listcount che rappresenta il contatore di oggetti presenti nella listbox.

es: inserisco 3 nomi nella listbox.
listbox.additem "Mario"
listbox.additem "Peppe"
listbox.additem "Ciccio"

*: additem serve ad inserire un testo nella listbox o una combobox

se volessi selezionare col muose "peppe", esso non rappresenterebbe la posizione 2, poikè tutte le listbox e le combobox hanno come indice iniziale il vallore "0", nel nostro caso "peppe" sarebbe 1.

Per fare una ricerca tra il primo e l'ultimo di questa list dovresti scrivere:

For indice=0 to listbox.listcount-1
if listbox.list(indice)="Peppe" then
istruzione 1... iscruzione x
endif
next

la proprietà list(indice) rappresenta il contenuto della riga il cui indice è la proprietà listindex (cioè quella selezionata).

*: Ricorda se per un qualsiasi motivo fai un refresh di una listbox, combobox, dirbox, drivebox, filebox, opure eliminando una riga delle stesse (valido solo per combobox e listbox), la proprietà listindex (cioè quella che tu hai selezionato col mouse o hai fatto selezionare impostandone un valore compreso tra 0 e il listcount-1), diverrà -1, creandoti non poki problemi, ti consiglio quindi dopo un "resfresh" o un removeitem di effettuare un controllo di listindex<>-1 oppure di impostare immediatamente dopo il listindex a 0. Dipende da quello che fai.

Pace a te, spero di essere stato utile a te e a quanti altri.

Gabry
04-06-2004, 10.37.38
Utilissimo grazie.