Inserimento di dati in un elenco direttamente dalla ComboBox che riporta l'elenco. - dal 04/09/04 pagina vista: volte Un interessante esercizio per sfruttare la stessa ComboBox come inserimento di dati mancanti nell'elenco dei dati, riportato nella ComboBox. Una idea non mia, ma opportunamente adattata e modificata. Normalmente usiamo ComboBox su Userform, per reperire attraverso la proprietà RowSource della Combo, un elenco di dati (nomi, testo, numeri, ecc.) che possiamo selezionare per rendere il valore selezionato in qualche passaggio dei nostri lavori, per esempio rendere una TextBox uguale ad un nominativo scelto nella lista della combobox, oppure reperire valori da assegnare come variabili ad istruzioni vba, o altro ancora. Ma cosa succede se, nell'elenco della combo, non è presente un valore che ci servirebbe in quel momento? Dovremmo spostarci sul foglio con l'elenco, inserire il dato in una cella vuota del nostro elenco, assicurarci che la cella rientri nel range previsto nel RowSource, altrimenti modificarlo, ritornare sulla Form e nella ComboBox troveremo ora il dato aggiunto. Con le spiegazioni che seguono potremo farlo direttamente dalla Combobox, vediamo i passaggi:
e questo sarà l'effetto che vedremo aprendo il menù a discesa della ComboBox: i nomi già presenti più un certo numero di righe vuote: E questa la routine con relative spiegazioni, che inseriremo nell'evento Click della Combobox. Il concetto è semplice: sfrutteremo la proprietà ListIndex della combo che identifica il numero di Indice riga dei valori presenti (compreso le celle vuote) nella combo, per identificare il numero di riga corrispondente nell'area "nomi". Poichè in genere un Indice in vb parte dallo zero, ggiungeremo 1 per far corrispondere l'indice del valore selezionato al numero riga dell'area "nomi"
Sotto, in sequenza: si seleziona, ad esempio, la seconda riga vuota sotto l'ultimo nome, ed appare la inputbox nella quale introduciamo un nome: questo sarà ciò che vedremo nella combobox, dopo premuto Ok: e questo in nostro elenco "nomi" con il nuovo valore inserito nella riga corrispondente a quella selezionata nella combobox (e in maiuscolo): Ciò che avremmo fatto con il valore selezionato nella combo non riguarda questo esercizio, ma se avessimo voluto rendere il valore selezionato in una textbox, sarebbe stato sufficiente inserire alla fine della routine vista sopra, dopo End If questa semplice istruzione:
Buon lavoro. prelevato sul sito www.ennius.altervista.org |